Installing php-fpm apache 2.4.6 on Centos 7

I am trying to use php-fpm as I have heard it can increase performance on my webserver, and it appears to be working.. but it doesn't look like it has speeded anything up.

I ran through the following steps.

  • Installed php-fpm using yum
  • Configured the php-fpm to use a unix socket and set the [www] listen to apache
  • Renamed 10-php.conf to 10-php.conf.disabled
  • Switched mpm from mpm_prefork_module to mpm_event_module
  • Added the following to all my vhosts underneath the Directory setting:

    # php-fpm
    <FilesMatch "\.php$">
      SetHandler  "proxy:unix:/var/run/php-fpm/php-fpm.sock|fcgi://www/"
    </FilesMatch>
    
  • Restarted/Started everything and enabled php-fpm on boot

I was a bit confused about mod_fcgi, mod_fastcgi and mod_php but haven't changed any of these (other than renaming 10-php.conf). I read something about mod_proxy_fcgi being the modern standard but again haven't explicitly installed or enabled it.

Is this the correct setup, or am I missing something to get any benefit?


This solution doesn't use UNIX sockets (it listens on port 9000), but I give this answer for others who may be looking for a means to install PHP7-FPM on CentOS in an easy manner.

Step 1: Set Up PHP-FPM Daemon

Configure your Software Collections repository, then:

yum install rh-php70 rh-php70-php-fpm
systemctl enable rh-php70-php-fpm
systemctl daemon-reload
systemctl start rh-php70-php-fpm
  • Config is under /etc/opt/rh/rh-php70
  • Logs are under /var/opt/rh/rh-php70/log/php-fpm/www-error.log
  • systemd links /etc/systemd/system/multi-user.target.wants/rh-php70-php-fpm.service to /usr/lib/systemd/system/rh-php70-php-fpm.service
  • The executable lives at /opt/rh/rh-php70/root/usr/sbin/php-fpm

Step 2: Configure Apache FastCGI

ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/var/www/$1

Further reading.