CGI - Interfaz de puerta de enlace común
Apache se puede configurar para invocar el intérprete de php como programa cgi. Esto significa que el binario php-cgi se ejecutará externamente y el script php se ejecutará y la salida se devolverá a apache. Esta es una forma de ejecutar php con apache. Otros métodos incluyen módulo compartido, fastcgi, etc. Lea mi publicación anterior sobre las API del servidor php para obtener más información sobre las diversas opciones para ejecutar php con apache.
Dado que en el modo cgi, php se ejecuta por separado, es posible usar un apache mpm con subprocesos como trabajador. En esta publicación, configuraremos apache y php juntos a través de cgi.
Instalar paquetes
Los paquetes necesarios para instalar incluyen apache, mpm worker, php5, php cgi. Instálalos todos de una vez usando el comando apt-get
# sudo apt-get install apache2 apache2-mpm-worker php5 php5-cgi
Habilitar acciones de modificación en apache.
$ sudo a2enmod actions
Si ya tenía apache y php instalados con mod php, primero debe deshabilitar mod php
$ sudo a2dismod php5
Configurar Apache
Ahora configure apache para ejecutar php como cgi. La configuración se realiza en el bloque vhost correspondiente.
Los archivos de configuración del host virtual de Apache se encuentran en la siguiente ubicación
/etc/apache2/sites-enabled/
El archivo vhost predeterminado es 000-default.conf, que está presente en la mayoría de los sistemas.
Se deben agregar algunas directivas necesarias en el bloque de directorio derecho en el archivo de configuración que le indicará a apache que use el binario php-cgi para ejecutar archivos que terminan en ".php".
Las directivas son AddHandler, Action y ScriptAlias. Una configuración mínima se ve así
<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 línea AddHandler declara un controlador llamado cgi-handler para archivos .php. Esto se puede nombrar a cualquier cosa.
La línea de acción le dice a apache que ejecute cgi-handler usando el programa /local-bin/php-cgi, que es el binario php cgi. Ahora bien, este camino no es real.
La línea ScriptAlias asigna /local-bin a /usr/bin. Entonces la ruta /local-bin/php-cgi se convierte en /usr/bin/php-cgi cuál es la ruta real del binario php-cgi en ubuntu/debian.
Ahora reinicie apache
# service apache2 restart
Coloque un archivo php con phpinfo() en la raíz web y ábralo desde el navegador. La API del servidor se informará como "CGI/FastCGI".