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