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
<IfModule mod_fastcgi.c> FastCGIExternalServer /usr/sbin/php-fpm -host 127.0.0.1:9000 AddHandler php-fastcgi .php
#<LocationMatch "/status"> # SetHandler php-fastcgi-virt # Action php-fastcgi-virt /usr/sbin/php-fpm.fcgi virtual #</LocationMatch>
Action php-fastcgi /usr/sbin/php-fpm.fcgi ScriptAlias /usr/sbin/php-fpm.fcgi /usr/sbin/php-fpm
<Directory /usr/sbin> Options ExecCGI FollowSymLinks SetHandler fastcgi-script Order allow,deny Allow from all </Directory> </IfModule>
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:
<?php phpinfo(); ?>
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:
<LocationMatch "/status"> SetHandler php-fastcgi-virt Action php-fastcgi-virt /usr/sbin/php-fpm.fcgi virtual </LocationMatch>
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.