Use this script to run Apache 2.x with mod_fastcgi. Install Apache 22 from FreeBSD port or using source code. The script is tested under FreeBSD and Debian / RHEL / CentOS Linux.

How do I use script?

Download the script

Put in cgi-bin directory as php.cgi

Set permission

Configure httpd.conf as follows for mod_fastcgi:

<VirtualHost *:80>
        ServerAdmin webmaster@example.com
        DocumentRoot "/websites/home/example.com/http"
        ServerName example.com
        ServerAlias www.example.com
        ErrorLog "/websites/home/example.com/logs/error.log"
        CustomLog "/websites/home/example.com/logs/access.log" common
        ScriptAlias /cgi-bin/ "/websites/home/example.com/cgi-bin/"

<Directory "/websites/home/example.com/http">
    Options -Indexes FollowSymLinks +ExecCGI
    AllowOverride AuthConfig FileInfo
    AddHandler php5-fastcgi .php
    Action php5-fastcgi /cgi-bin/php.cgi
    Order allow,deny
    Allow from all
</Directory>

<Directory "/websites/home/example.com/cgi-bin">
  AllowOverride None
  Options None
  Order allow,deny
  Allow from all
</Directory>

#SuExecUserGroup exampleUser exampleGroup
</VirtualHost>

 

Sample mod_fastcgi PHP script

#!/bin/sh
#
# Shell Script To Run PHP5 using mod_fastcgi under Apache 2.x
#
# -------------------------------------------------------------------------
# Copyright (c) 2005 nixCraft project <http://cyberciti.biz/>
# This script is licensed under GNU GPL version 2.0 or above
# Comment/suggestion: <vivek@nixCraft.com>
# http://bash.cyberciti.biz/misc-shell/linux-start-stop-restar-toracle-server/
# -------------------------------------------------------------------------

### Set PATH ###
PHP_CGI=/usr/local/bin/php-cgi
PHP_FCGI_CHILDREN=4
PHP_FCGI_MAX_REQUESTS=1000
### no editing below ###
export PHP_FCGI_CHILDREN
export PHP_FCGI_MAX_REQUESTS
exec $PHP_CGI

} else {