CGI – Common Gateway Interface
Apache lze nakonfigurovat tak, aby vyvolal php interpret jako program cgi. To znamená, že binární soubor php-cgi by měl být spuštěn externě a php skript by měl být spuštěn a výstup by byl předán zpět do apache. Toto je jeden způsob, jak spustit php s apache. Mezi další metody patří sdílený modul, fastcgi atd. Přečtěte si můj předchozí příspěvek o php serveru apis, kde se dozvíte více o různých možnostech spouštění php s apache.
Protože v režimu cgi se php spouští samostatně, je možné použít vláknový apache mpm jako worker. V tomto příspěvku společně nastavíme apache a php prostřednictvím cgi.
Instalovat balíčky
Potřebné balíčky k instalaci zahrnují apache, mpm worker, php5, php cgi. Nainstalujte je všechny najednou pomocí příkazu apt-get
# sudo apt-get install apache2 apache2-mpm-worker php5 php5-cgi
Povolit akce modu v Apache.
$ sudo a2enmod actions
Pokud jste již měli apache a php nainstalované s mod php, musíte nejprve zakázat mod php
$ sudo a2dismod php5
Nakonfigurujte Apache
Nyní nakonfigurujte apache tak, aby spouštěl php jako cgi. Konfigurace se provádí v příslušném bloku vhost.
Konfigurační soubory virtuálního hostitele Apache jsou umístěny v následujícím umístění
/etc/apache2/sites-enabled/
Výchozí soubor vhost je 000-default.conf, který je přítomen na většině systémů.
Do správného adresářového bloku v konfiguračním souboru je třeba přidat několik nezbytných direktiv, které Apache sdělí, aby ke spuštění použil binární php-cgi soubory končící na ".php".
Direktivy jsou AddHandler, Action a ScriptAlias. Minimální konfigurace vypadá takto
<Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all AddHandler cgi-handler .php Action cgi-handler /local-bin/php-cgi </Directory> ScriptAlias /local-bin /usr/bin
Řádek AddHandler deklaruje handler nazvaný cgi-handler pro soubory .php. Toto může být pojmenováno jakkoli.
Řádek Action říká apache, aby spustil cgi-handler pomocí programu /local-bin/php-cgi, což je binární soubor php cgi. Nyní tato cesta není skutečná.
Řádek ScriptAlias mapuje /local-bin na /usr/bin. Tedy cesta /local-bin/php-cgi se změní na /usr/bin/php-cgi což je skutečná cesta binárního souboru php-cgi na ubuntu/debian.
Nyní restartujte apache
# service apache2 restart
Vložte php soubor s phpinfo() do webového kořenového adresáře a otevřete jej z prohlížeče. Server API bude hlášeno jako "CGI/FastCGI".