wget http://www.fastcgi.com/dist/mod_fastcgi-current.tar.gz
make top_dir=/usr/lib/httpd/
make top_dir=/usr/lib/httpd/ install
Download and build FastCGI for Apache:
wget http://www.fastcgi.com/dist/mod_fastcgi-current.tar.gz
tar -zxf mod_fastcgi-current.tar.gz
cd mod_fastcgi-2.4.6
cp Makefile.AP2 Makefile
make top_dir=/usr/lib64/httpd
Install FastCGI as root:
make top_dir=/usr/lib64/httpd install
Edit /etc/httpd/conf/httpd.conf and comment out any existing references to PHP you might previously have added for testing:
# LoadModule php5_module modules/libphp5.so
# AddType application/x-httpd-php .php
Add the php-fpm configuration to httpd.conf:
LoadModule fastcgi_module modules/mod_fastcgi.so
FastCGIExternalServer /usr/sbin/php-fpm -host 127.0.0.1:9000
AddHandler php-fastcgi .php
#
# SetHandler php-fastcgi-virt
# Action php-fastcgi-virt /usr/sbin/php-fpm.fcgi virtual
#
Action php-fastcgi /usr/sbin/php-fpm.fcgi
ScriptAlias /usr/sbin/php-fpm.fcgi /usr/sbin/php-fpm
Options ExecCGI FollowSymLinks
SetHandler fastcgi-script
Order allow,deny
Allow from all
Start php-fpm and Apache:
service php-fpm start
service httpd start
Test it out with your favorite script or create a file pi.php:
Save it in /var/www/html/pi.php or in $HOME/public_html/pi.php, if you have configured UserDir in httpd.conf.
In a browser load http://localhost/pi.php or http://localhost/~yourname/pi.php.
This will show the PHP configuration values.
To test php-fpm's built-in statistics, edit httpd.conf and uncomment the four lines of the LocationMatch section:
SetHandler php-fastcgi-virt
Action php-fastcgi-virt /usr/sbin/php-fpm.fcgi virtual
Edit /etc/php-fpm.conf and uncomment the line:
pm.status_path = /status
Restart php-fpm and Apache:
service php-fpm restart
service httpd restart
Run some load on the system:
ab -c 10 -t 60 http://localhost/pi.php
Now http://localhost/status gives you the status of the server:
pool: www
process manager: dynamic
start time: 13/Mar/2012:14:25:53 -0700
start since: 26
accepted conn: 50001
listen queue: 0
max listen queue: 6
listen queue len: 128
idle processes: 2
active processes: 1
total processes: 3
max active processes: 5
max children reached: 1
The php-fpm.conf file documents other output formats for the statistics. It also shows the extensive functionality available with php-fpm.