The scope of this article is to discuss the possible configurations with Apache httpd 2.2 and php. Using mod_php in most cases is not a viable solution, since it introduces scalability issues with the added RAM requirement for each httpd process. Additionally, it precludes the use of threaded MPMs since php extensions are not thread-safe in many cases.

The ideal configuration is a light threaded httpd process that communicates with an external fastcgi server, such as PHP-FPM.

The first recipe uses mod_fastcgi:

Alias /php5.fcgi /var/www/fcgi/php5.fcgi

FastCGIExternalServer /var/www/fcgi/php5.fcgi -flush -host 127.0.0.1:9000

# Invent a new handler name and use it for PHP files

AddHandler my-fastcgi .php

# Requests for *.php are actually fed to php-fastcgi as an argument

Action my-fastcgi /php5.fcgi

<Directory "/var/www/fcgi/">

{{ Order deny,allow}}

{{ Deny from all}}

{{ <Files "php5.fcgi">}}

{{ Order allow,deny}}

{{ Allow from all}}

{{ </Files>}}

</Directory>

Thanks to Guillaume Seigneuret for the kickstart on that recipe!