chown, chgrp, chmod, ACL: the writable_mode tour
Every PHP app has a handful of directories the web server has to write to. Cache, sessions, log files, image uploads,
compiled views. Deployer logs in as one user (deploy) and unpacks code into a release directory owned by that user.
PHP-FPM runs as a different user (www-data, nginx, apache, depending on the distro) and needs write access to a
subset of that release. How you bridge those two users is writable_mode. Deployer ships six options. This post walks
through what each one does, the syscalls behind it, and where it fits.
