php app/console cache:clear --env=prod --no-debug
php app/console assetic:dump
php app/console cache:warmup --env=prod --no-debug
chown -R apache:apache . # fix owner
chmod -R u=rwx,g=rwx,o=rx app/cache # fix cache perms
apachectl restart # bounce Apache, otherwise it can throw segfaultsuser: $sitename - the 'owner' of the whole hosted dir. rwX
user: $sitename-PHP - the user that php-fastcgi or whatever runs as, r-X permission on the dir, and write permission on the content uploads directory, but CANNOT write to any plugin install dirs, or upgrade php files.
user: nginx - can read all files except the wp-config.php file, which is limited to only the $sitename group reading it.
then use wp-cli to do automatic upgrades every few hours, and a localhost-only ftp server for wordpress to do plugin installs with. When you try to install a plugin, it asks for a ftp username, host as password. You put in the $sitename user, '127.0.0.1' and $sitename password, and you're set. Those login details are never saved anywhere, so the admin has to put them in each time (or their browser stores them).
Works pretty well for me.
check permissions there sometimes.
NB if anyone has ever run: chmod -R u+x . or equivalent and you run chmod -R u=rwX the files will stay executable...
You can always use find to set all files to +x and directories to -x but then what if some of files needed to be executable?
1. chown -R apache:apache . # Now the webserver will have write access over the whole application!
2. chmod -R u=rwx,g=rwx,o=rx app/cache # Now all files in cache are executable and writable by the webserver!
3. apachectl restart # graceful might be better here.
Securitywise 1 and 2 are not good things to do.