Sample setup for Apache virtual host and PHP-FPM pool with variables instead hard coded user details.
This could be handy if your are scripting your deploy (e.g. with Ansible).
In our example we are using the following:
Domain: example.com
SFTP user: example.com
Document root: /var/www/vhosts/example.com/httpdocs/
<VirtualHost *:80> ServerName example.com ServerAlias www.example.com DocumentRoot /var/www/vhosts/example.com/httpdocs <Directory /var/www/vhosts/example.com/httpdocs> require all granted Options Indexes AllowOverride All </Directory> ErrorLog "logs/example.com-error_log" CustomLog "logs/example.com-access_log" combined env=!forwarded CustomLog "logs/example.com-access_log" proxy env=forwarded # Configure proxy connector <Proxy "unix:/dev/shm/example.com-php5-fpm.sock|fcgi://php-fpm"> # we must declare a parameter in here (doesn't matter which) or it'll not register the proxy ahead of time ProxySet disablereuse=off </Proxy> # # Redirect to the proxy connector <FilesMatch \.php$> SetHandler proxy:fcgi://php-fpm </FilesMatch> <Directory /var/www/vhosts/example.com/httpdocs/wp-content/uploads> # Important for security, prevents someone from # uploading a malicious .htaccess AllowOverride None SetHandler none SetHandler default-handler Options -ExecCGI php_flag engine off RemoveHandler .cgi .php .php3 .php4 .php5 .phtml .pl .py .pyc .pyo <Files *> AllowOverride None SetHandler none SetHandler default-handler Options -ExecCGI php_flag engine off RemoveHandler .cgi .php .php3 .php4 .php5 .phtml .pl .py .pyc .pyo </Files> </Directory> </VirtualHost>
Create a file called example.com.conf in /etc/php-fpm/pool/
[example.com] listen = /dev/shm/$pool-php5-fpm.sock user = $pool group = $pool listen.owner = $pool listen.group = apache listen.mode = 0666 pm = dynamic pm.max_children = 35 pm.start_servers = 5 pm.min_spare_servers = 5 pm.max_spare_servers = 25 slowlog = /var/log/php-fpm/$pool-slow.log php_admin_value[error_log] = /var/log/php-fpm/$pool-error.log php_admin_flag[log_errors] = on php_value[session.save_handler] = files php_value[session.save_path] = /var/lib/php/session/$pool