Skip to content

Instantly share code, notes, and snippets.

@jasperf
Last active January 30, 2016 10:41
Show Gist options
  • Star 4 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jasperf/8205124 to your computer and use it in GitHub Desktop.
Save jasperf/8205124 to your computer and use it in GitHub Desktop.
Make WordPress run properly on local MAMP/Macports setup. It can be adjusted to run on a production server as well. In that case the ROOT path and other variables need to be adjusted. #wordpress #security #bash
#!/bin/bash
#
# This script configures WordPress file permissions based on recommendations
# from http://codex.wordpress.org/Hardening_WordPress#File_permissions
#
# Author: Michael Conigliaro <mike [at] conigliaro [dot] org>
#
#Original script https://github.com/shoestrap/shoestrap/wiki/Permissions
#Make sure you name this file whatever.sh and make it chmod 777 before executing it: bash whatever.sh
#
WP_OWNER=www # <-- wordpress owner
WP_GROUP=www # <-- wordpress group
WP_ROOT=/opt/local/www/wordpress # <-- wordpress root directory
WS_GROUP=www # <-- webserver group
# reset to safe defaults
find ${WP_ROOT} -exec chown ${WP_OWNER}:${WP_GROUP} {} \;
find ${WP_ROOT} -type d -exec chmod 755 {} \;
find ${WP_ROOT} -type f -exec chmod 644 {} \;
# allow wordpress to manage wp-config.php (but prevent world access)
chgrp ${WS_GROUP} ${WP_ROOT}/wp-config.php
chmod 660 ${WP_ROOT}/wp-config.php
# allow wordpress to manage .htaccess
touch ${WP_ROOT}/.htaccess
chgrp ${WS_GROUP} ${WP_ROOT}/.htaccess
chmod 664 ${WP_ROOT}/.htaccess
# allow wordpress to manage wp-content
find ${WP_ROOT}/wp-content -exec chgrp ${WS_GROUP} {} \;
find ${WP_ROOT}/wp-content -type d -exec chmod 775 {} \;
find ${WP_ROOT}/wp-content -type f -exec chmod 664 {} \;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment