CGI - Interfaccia gateway comune
Apache può essere configurato per invocare l'interprete php come programma cgi. Ciò significa che il binario php-cgi verrà eseguito esternamente e lo script php verrà eseguito da esso e l'output verrà restituito ad apache. Questo è un modo per eseguire php con apache. Altri metodi includono modulo condiviso, fastcgi ecc. Leggi il mio post precedente su API del server php per saperne di più sulle varie opzioni per eseguire php con apache.
Poiché in modalità cgi, php viene eseguito separatamente, è possibile utilizzare un thread apache mpm come worker. In questo post configureremo insieme apache e php tramite il cgi.
Installa pacchetti
I pacchetti necessari per l'installazione includono, apache, mpm worker, php5, php cgi. Installali tutti in una volta usando il comando apt-get
# sudo apt-get install apache2 apache2-mpm-worker php5 php5-cgi
Abilita le azioni mod in Apache.
$ sudo a2enmod actions
Se hai già installato apache e php con mod php, devi prima disabilitare mod php
$ sudo a2dismod php5
Configura Apache
Ora configura Apache per eseguire php come cgi. La configurazione viene eseguita nel blocco vhost pertinente.
I file di configurazione dell'host virtuale Apache si trovano nella posizione seguente
/etc/apache2/sites-enabled/
Il file vhost predefinito è 000-default.conf che è presente sulla maggior parte dei sistemi.
È necessario aggiungere alcune direttive necessarie nel blocco di directory corretto nel file di configurazione che dirà ad Apache di utilizzare il binario php-cgi per l'esecuzione file che terminano con ".php".
Le direttive sono AddHandler, Action e ScriptAlias. Una configurazione minima è simile a questa
<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
La riga AddHandler dichiara un gestore chiamato cgi-handler per i file .php. Questo può essere chiamato a qualsiasi cosa.
La riga Action dice ad Apache di eseguire cgi-handler usando il programma /local-bin/php-cgi, che è il binario php cgi. Ora questo percorso non è reale.
La linea ScriptAlias associa /local-bin a /usr/bin. Quindi il percorso /local-bin/php-cgi diventa /usr/bin/php-cgi che è il percorso effettivo del binario php-cgi su ubuntu/debian.
Ora riavvia Apache
# service apache2 restart
Metti un file php con phpinfo() nella radice web e apri dal browser. L'API del server deve essere segnalata come "CGI/FastCGI".