19. Apache - Instalación y administración de PHP


1. Indicaciones previas

  • Con las versiones actuales de PHP y Apache, se recomienda instalar PHP con MPMs no multihebra. En sistemas Unix/Linux, por ejemplo, utilizar prefork (el MPM predeterminado) y no worker, dado que PHP integra componentes y librerías de terceras partes, y añadir múltiples hebras de ejecución por cada proceso es incluir un elemento desestabilizador en el marco de ejecución de PHP.
  • Para ejecutar configure en la distro de Linux que estemos usando, será necesario tener instalado:
    • El procesador de macros M4, bison y flex, todos ellos descargables desde http://www.gnu.org
    • Los paquetes zlib1g-dev y libxml2-dev.

2. Pasos para habilitar la ejecución de PHP en Apache

  • Descargar y descomprimir el código fuente completo de PHP de http://www.php.net
  • En el directorio en el que se hayan extraído los archivos:
    • Ejecutar ./configure --with-apxs2=/usr/local/apache2/bin/apxs, modificando la ruta hacia apxs si no es ésa.
    • Ejecutar make.
    • Ejecutar sudo make install.
  • El programa de instalación crea una copia del archivo httpd.conf e incluye la siguiente línea (que se encarga de cargar el módulo de php5 de forma dinámica al arrancar el servidor):
LoadModule php5_module modules/libphp5.so
  • Para asociar la extensión .php al módulo de PHP, incluimos una directiva de servidor, servidor virtual, Directory y .htaccess; esto sería de la siguiente forma:
AddType application/x-httpd-php.php
  • Reiniciamos el servicio de Apache.
  • Verificamos el correcto funcionamiento de PHP ejecutando una página .php que contenga:
<? phpinfo(); ?>
  • Ubicamos la copia de la versión de php.ini que deseemos (php.ini-recommended o php.ini-dist) en el directorio en el que -según la página phpinfo-, lo está buscando el módulo de php.

3. Apache y PHP

PHP incluye algunas funciones específicas para Apache, al igual que ocurre con otros programas de código abierto como por ejemplo mysql. Del mismo modo, Apache incluye directivas específicas para PHP.

Por ejemplo: php_flag engine on|off habilita o deshabilita la ejecución de código php en el ámbito de una directiva Directory, Files, Location, de servidor, de servidor virtual o en un archivo .htaccess:

	

php_flag engine off
AddHandler php-deshabilitado.php
Action php-deshabilitado /cgi-bin/php-off.cgi

Siendo el contenido de php-off.cgi:

	

echo “Content-type: text/plain; charset=utf-8”
echo
echo “La ejecución de páginas php está deshabilitada.”


vidalmb_admin – Dom, 22/07/2007 – 12:28