Servidores-Apache 2.0

Esta sección contiene información específica sobre la instalación de PHP con Apache 2.0, tanto para la versión Unix como Windows.

Aviso

No utilizar Apache 2.0 y PHP en sistemas que esten en producción, tanto en Unix como en Windows.

Animamos a que consulteis la Documentación de Apache para que tengais un conocimento básico sobre el servidor Apache 2.0.

Notas de compatibilidad entre PHP y Apache 2.0

Las siguientes versiones de PHP funcionan con las últimas versiones de Apache 2.0:

Estas versiones de PHP son compatibles con Apache 2.0.40 y posteriores.

Nota: El soporte para SAPI en Apache 2.0 empezó con PHP 4.2.0. PHP 4.2.3 funciona con Apache 2.0.39, no usar otra versión de apache con PHP 4.2.3. De todas maneras, la instalación recomendada es PHP 4.3.0 ó posterios con la versión más reciente de Apache2.

Todas las versiones de PHP mencionadas, tambien trabajan con Apache 1.3.x.

PHP y Apache 2 en Linux

Bajarse la versión más reciente de Apache 2.0 y una versión de PHP de uno de los sitios antes mencionados. Esta guia rápida cubre solamente lo básico para poder empezar a usar Apache 2.0 y PHP. Para más información, consultar la documentación de Apache. Los números de versiones han sido omitidos aqui para asegurarse que las instrucciones no son incorrectas, debeis cambiar 'NN' con los valores correctos de vuestros ficheros.

Ejemplo 3-7. Instrucciones de instalación (Apache 2 versión como módulo compartido)

1.  gzip -d httpd-2_0_NN.tar.gz
2.  tar xvf httpd-2_0_NN.tar
3.  gunzip php-NN.tar.gz
4.  tar -xvf php-NN.tar
5.  cd httpd-2_0_NN
6.  ./configure --enable-so
7.  make
8.  make install

    Ahora teneis Apache 2.0.NN disponible en /usr/local/apache2,
    configurado con soporte para módulos y el estandar "MPM prefork".
    Para comprobar que la instalación funciona, podeis usar el
    procedimiento usado normalmente para arrancar el servidor Apache,
    p.ej.: /usr/local/apache2/bin/apachectl start , para configurar
    PHP parar el servidor: /usr/local/apache2/bin/apachectl stop.

9.  cd ../php4-NN
10. ./configure --with-apxs2=/usr/local/apache2/bin/apxs
11. make
12. make install
13. cp php.ini-dist /usr/local/lib/php.ini

    Se puede editar el fichero php.ini para configurar como PHP
    funciona. Si quereis tener este fichero en otra
    localización, podeis usar --with-config-file-path=/path en
    el paso 10.

14. Editar el fichero  httpd.conf y comprobar que estas
    lineas existen y no están comentadas:

   LoadModule php4_module        libexec/libphp4.so
   AddType application/x-httpd-php .php
 
    Podeis elegir la extension que querais aqui, .php es simplemente
    una sugerencia.

    El "path" a la derecha de LoadModule debe de coincidir con el
    "path" del módulo PHP en vuestro sistema. Si habeis seguido
    los pasos desde el punto 1. no necesitais alterar nada.

15. Utilizar el procedimiento habitual que utiliceis para arrancar
    Apache. P.ej.: /usr/local/apache2/bin/apachectl start

Si habeis seguido los pasos de más arriba, deberiais tener un instalación funcionando de Apache 2.0 con soporte para PHP como módulo SAPI. Por supuesto que existen muchas más opciones de configuración disponibles tanto para Apache como PHP. Para más información use ./configure --help en el directorio correspondiente con el código fuente. En el caso que querais crear una versión "multihilos" (multithreaded) de apache 2.0, debeis sobreescribir el módulo estandar MPM prefork con ó worker ó perchild. Para hacer esto añadir a la linea con "configure" en el paso 6 de más arriba, ó bien --with-mpm=worker ó --with-mpm=perchild. Tener cuidado con las consecuencias y entender que estais haciendo. Para más información, leer la documentación de Apache sobre Módulos MPM.

Nota: Para crear una version multihilos de Apache, vuestro sistema debe de tener soporte para hilos (threads). Esto supone que PHP se debe compilar con "Zend Thread Safety (ZTS)", el cual está en fase de experimentación. Por esto mismo, no todas las extensiones pueden estar disponibles. La configuración recomendada es compilar Apache con el módulo estandar MPM prefork.

PHP y Apache 2.0 en Windows

Se recomienda leer las notas específicas sobre Windows y apache 2.0

Aviso

Apache 2.0 está designado para ejecutarse con Windows NT 4.0, Windows 2000 ó Windows XP. Por el momento, el soporte para Windows9x es incompleto y Apache 2.0 no funcionará en estas plataformas.

Bajarse la versión más reciente de Apache 2.0 y una versión de PHP de uno de los sitios antes mencionados. Seguir las instrucciones del Manual de instalación y volver aqui para seguir con la integración de PHP y Apache.

Existen dos maneras de instalar PHP para que funcione con Apache 2.0 en Windows. Una, es usar el binario CGI y la otra, usar el módulo DLL de Apache. En ambos casos debeis de parar el servidor Apache y editar vuestro fichero httpd.conf para configurar Apache con PHP.

Debeis de insertar estas tres lineas en el fichero de configuración de Apache httpd.conf para utilizar el binario CGI :

Ejemplo 3-8. PHP y Apache 2.0, como binario CGI

ScriptAlias /php/ "c:/php/"
AddType application/x-httpd-php .php
Action application/x-httpd-php "/php/php.exe"

Si quereis utilizar PHP como módulo de Apache 2.0, asegurarse de mover php4ts.dll a winnt/system32 (para Windows NT/2000) ó windows/system32 (para Windows XP), sobreescribiendo cualquier fichero anterior. Debeis de insertar estas dos lineas en el fichero de configuración de Apache httpd.conf para configurar PHP como módulo en Apache 2.0:

Ejemplo 3-9. PHP y Apache 2.0, como módulo

LoadModule php4_module "c:/php/sapi/php4apache2.dll"
AddType application/x-httpd-php .php

Nota: Recordar que en los ejemplos anteriores, teneis que sustituir c:/php/ con vuestro "path" al directorio donde hayais instalado PHP. Usar php4apache2.dll y nophp4apche.dll con vuestra directiva LoadModule. La última de las mencionadas está diseñada para funcionar solo con Apache 1.3.x.

Aviso

No mezclar en vuestra instalación, ficheros dll de diferentes versiones de PHP si quereis que PHP funcione.