Artykuł powstał w oparciu o dokument: [[http://wiki.apache.org/httpd/php-fcgid]]
====== Instalacja ======
Najprościej instalacja przebiega instalując binarnie paczki:
# pkg install apache22 ap22-mod_fcgid php5
====== Konfiguracja ======
===== Apache =====
W pliku **/usr/local/etc/apache22/httpd.conf** wykonujemy kolejno:
* aktywujemy moduł **fcgid**, dopisując:
LoadModule fcgid_module libexec/apache22/mod_fcgid.so
* dopisujemy obsługę PHP poprzez **fcgid**:
AddHandler fcgid-script .php
FcgidWrapper /usr/local/www/apache22/fcgid-bin/php-wrapper .php
* definiujemy prawa do katalogu w którym będzie wrapper PHP:
AllowOverride None
Options None
Order allow,deny
Allow from all
* dodajemy //index.php// jako domyślny dokument w katalogu poniższe jest do wyedytowania, nie do dodania):
DirectoryIndex index.php index.html index.htm
===== Dodanie wrappera PHP =====
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
====== Korzystanie z PHP ======
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:
ServerAdmin admin@xxx.com.pl
ServerName www.xxx.com.pl
DocumentRoot "/usr/local/www/www.xxx.com.pl"
Options Indexes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
ErrorLog "/var/log/apache/www.xxx.com.pl-error_log"
CustomLog "/var/log/apache/www.xxx.com.pl-access_log" common
Przykładowy plik **.php** sprawdzający czy PHP działa: