freebsd:ports:apache_php_cgi
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:
<IfModule mod_fcgid.c> AddHandler fcgid-script .php FcgidWrapper /usr/local/www/apache22/fcgid-bin/php-wrapper .php </IfModule>
- definiujemy prawa do katalogu w którym będzie wrapper PHP:
<Directory "/usr/local/www/apache22/fcgid-bin"> AllowOverride None Options None Order allow,deny Allow from all </Directory>
- dodajemy index.php jako domyślny dokument w katalogu poniższe jest do wyedytowania, nie do dodania):
<IfModule dir_module> DirectoryIndex index.php index.html index.htm </IfModule>
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:
<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(); ?>
freebsd/ports/apache_php_cgi.txt · ostatnio zmienione: 2013/11/13 21:45 przez 127.0.0.1