Get [Wordpress|http://wordpress.org/] running on Apache 2.4 using PHP-FPM.
I am running multiple wordpress sites on a single web server, but want to keep them as isolated as possible.
This config emulates the .htaccess setup traditionally found in wordpress sites, but is a lot faster
## No longer needed
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteRule ^ /index.php [L]
Here is the VirtualHost setup:
ServerName blog1.example.com
ServerAlias *.blog1.example.com
DocumentRoot "/var/www/html/blog1.example.com"
Require all granted
DirectoryIndex index.php
AllowOverride FileInfo
FallbackResource /index.php
FallbackResource disabled
ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9001/var/www/html/blog1.example.com/$1
ServerName blog2.example.com
ServerAlias *.blog2.example.com
DocumentRoot "/var/www/html/blog2.example.com"
Require all granted
DirectoryIndex index.php
AllowOverride FileInfo
FallbackResource /index.php
FallbackResource disabled
ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9002/var/www/html/blog2.example.com/$1
My php-fpm setup (should be improved to include chroot) is pretty stock from php.net
Note these are not complete files, but just the main snippets to show what was done
#/etc/php-fpm.conf
include=/etc/php-fpm.d/*.conf
#/etc/php-fpm.d/blog1.conf
[wp_blog1]
listen = 127.0.0.1:9001
listen.allowed_clients = 127.0.0.1
user = wp_blog1
group = apache
...
#/etc/php-fpm.d/blog2.conf
[wp_blog2]
listen = 127.0.0.1:9002
listen.allowed_clients = 127.0.0.1
user = wp_blog2
group = apache
...
Then on my web servers:
useradd -d /var/www/html -s /sbin/nologin -g apache wp_blog1
useradd -d /var/www/html -s /sbin/nologin -g apache wp_blog2