Narzędzia użytkownika

Narzędzia witryny


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