Artykuł powstał w oparciu o dokument: http://wiki.apache.org/httpd/php-fcgid
Najprościej instalacja przebiega instalując binarnie paczki:
# pkg install apache22 ap22-mod_fcgid php5
W pliku /usr/local/etc/apache22/httpd.conf wykonujemy kolejno:
LoadModule fcgid_module libexec/apache22/mod_fcgid.so
<IfModule mod_fcgid.c>
        AddHandler fcgid-script .php
        FcgidWrapper /usr/local/www/apache22/fcgid-bin/php-wrapper .php
</IfModule>
<Directory "/usr/local/www/apache22/fcgid-bin">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>
<IfModule dir_module>
    DirectoryIndex index.php index.html index.htm
</IfModule>
Tworzymy drzewo /usr/local/www/apache22/fcgid-bin a następnie umieszczamy w nim plik php-wrapper o zawartości:
#!/bin/sh # Set desired PHP_FCGI_* environment variables. # Example: # PHP FastCGI processes exit after 1000 requests by default. PHP_FCGI_CHILDREN=4 PHP_FCGI_MAX_REQUESTS=1000 export PHP_FCGI_CHILDREN export PHP_FCGI_MAX_REQUESTS # Replace with the path to your FastCGI-enabled PHP executable exec /usr/local/bin/php-cgi
Zapisujemy i ustawiamy na nim prawa wykonywalne:
# chmod 755 php-wrapper
Aby korzystać z PHP, należy włączyć w obsłudze serwera wykonywanie CGI. Domyślnie jest ono wyłączone i lepiej tak zostawić. Włączenie CGI odbywa się poprzez dodanie do Options wartości ExecCGI. Przykładowa wirtualka apacha z włączonym CGI:
<VirtualHost *:80>
        ServerAdmin admin@xxx.com.pl
        ServerName www.xxx.com.pl
        DocumentRoot "/usr/local/www/www.xxx.com.pl"
        <Directory "/usr/local/www/www.xxx.com.pl">
                Options Indexes ExecCGI
                AllowOverride All
                Order allow,deny
                Allow from all
        </Directory>
        ErrorLog "/var/log/apache/www.xxx.com.pl-error_log"
        CustomLog "/var/log/apache/www.xxx.com.pl-access_log" common
</VirtualHost>
Przykładowy plik .php sprawdzający czy PHP działa:
<?php phpinfo(); ?>