Esta sección contiene notas y consejos específicos a instalaciones Apache de PHP sobre plataformas Unix. También se tienen instrucciones y notas para Apache 2 en una página por separado.
Se pueden seleccionar argumentos para agregar a configure en la línea 10 debajo de la lista de opciones principales de configure y de opciones específicas a extensiones descritas en sus respectivos lugares en el manual. Los números de versión han sido omitidos aquí, para asegurar que las instrucciones no sean incorrectas. Se necesita reemplazar las 'xxx' aquí con los valores correctos de los ficheros.
Ejemplo #1 Instrucciones de instalación (Versión de módulo compartido de Apache) para PHP
1. gunzip apache_xxx.tar.gz 2. tar -xvf apache_xxx.tar 3. gunzip php-xxx.tar.gz 4. tar -xvf php-xxx.tar 5. cd apache_xxx 6. ./configure --prefix=/www --enable-module=so 7. make 8. make install 9. cd ../php-xxx 10. Ahora, se configura PHP. Aquí es donde se personaliza PHP con varias opciones, como cuales extensiones se habilitarán. Realizar un ./configure --help para obtener una lista de opciones disponibles. En el ejemplo se realiza un configure simple con soporte para Apache 1 y MySQL. La ruta de acceso a apxs puede diferir del ejemplo. ./configure --with-mysql --with-apxs=/www/bin/apxs 11. make 12. make install Si se decide cambiar las opciones de configure después de la instalación, solamente se necesita repetir los últimos tres pasos. Sólo hace falta reiniciar apache para que el nuevo módulo tenga efecto. Una recompilación de Apache no es necesaria. Nótese que a menos que se mencione lo contrario, 'make install' también instalará PEAR, varias herramientas de PHP tales como phpize, instalará la línea de comando (CLI) de PHP, y más. 13. Preparar el fichero php.ini: cp php.ini-development /usr/local/lib/php.ini Se puede editar el fichero .ini para fijar las opciones de PHP. Si se prefiere php.ini en otra ubicación, utilice --with-config-file-path=/some/path en el paso 10. Si en vez de ello se elige php.ini-production, asegurarse de leer la lista de cambios en el interior, ya que éstos afectan como se comporta PHP. 14. Editar httpd.conf para cargar el módulo de PHP. La ruta de acceso al lado derecho de el enunciado LoadModule debe apuntar a la ruta del módulo de PHP en su sistema. El make install anterior podría haber agregado esto ya por usted, pero asegúrese de revisarlo. LoadModule php5_module libexec/libphp5.so 15. Y en la sección AddModule de httpd.conf, en algún lugar por debajo de ClearModuleList, agregar esto: AddModule mod_php5.c 16. Indicar a Apache que procese ciertas extensiones como PHP. Por ejemplo, hacer que Apache procese la extensión .php como PHP. Se podría hacer que cualquier extensión o extensiones sean procesadas como PHP simplemente añadiendo más, con cada una separada por un espacio. Se agregará .phtml para demostrarlo. AddType application/x-httpd-php .php .phtml También es común configurar la extensión .phps para mostrar fuentes resaltadas de PHP, ésto puede hacerse con: AddType application/x-httpd-php-source .phps 17. Utilice el procedimiento normal para iniciar el servidor Apache. (Se debe detener y reiniciar el servidor, no sólo causar que el servidor recargue utilizando una señal HUP o USR1.)
Alternativamente, para instalar PHP como un objeto estático:
Ejemplo #2 Instrucciones de instalación (Instalación de módulo estático para Apache) para PHP
1. gunzip -c apache_1.3.x.tar.gz | tar xf - 2. cd apache_1.3.x 3. ./configure 4. cd .. 5. gunzip -c php-5.x.y.tar.gz | tar xf - 6. cd php-5.x.y 7. ./configure --with-mysql --with-apache=../apache_1.3.x 8. make 9. make install 10. cd ../apache_1.3.x 11. ./configure --prefix=/www --activate-module=src/modules/php5/libphp5.a (¡La línea anterior es correcta! Sí, ya se sabe que libphp5.a aún no existe en esta etapa. No se supone que deba. Será creado.) 12. make (ahora se debe tener un binario httpd que puede ser copiado al directorio bin de Apache si esta es la primera instalación entonces se necesita dar "make install" también) 13. cd ../php-5.x.y 14. cp php.ini-development /usr/local/lib/php.ini 15. Se puede editar el fichero /usr/local/lib/php.ini para fijar las opciones de PHP. Editar el fichero httpd.conf o srm.conf y añadir: AddType application/x-httpd-php .php
Dependiendo de la instalación de Apache y la variante de Unix, hay muchas maneras posibles de detener y reiniciar el servidor. Abajo hay algunas líneas típicas utilizadas para reiniciar el servidor, para diferentes instalaciones apache/unix. Se debe reemplazar /path/to/ con la trayectoria a estas aplicaciones en el sistema.
Ejemplo #3 Comandos de ejemplo para reiniciar Apache
1. Diferentes variantes de Linux y SysV: /etc/rc.d/init.d/httpd restart 2. Utilizando scripts apachectl: /path/to/apachectl stop /path/to/apachectl start 3. httpdctl y httpsdctl (Utilizando OpenSSL), similar a apachectl: /path/to/httpsdctl stop /path/to/httpsdctl start 4. Usando mod_ssl, u otro servidor SSL, que se quiera detener e iniciar manualmente: /path/to/apachectl stop /path/to/apachectl startssl
Las ubicaciones de los binarios apachectl y http(s)dctl varían frecuentemente. Si el sistema tiene los comandos locate o whereis o which, éstos pueden ayudar en encontrar los programas de control del servidor.
Distintos ejemplos de compilaciones de PHP para apache son como sigue:
./configure --with-apxs --with-pgsql
Esto creará una librería compartida libphp5.so que se carga en Apache utilizando una línea LoadModule en el fichero de Apache httpd.conf. El soporte para PostgreSQL está incluido dentro de esta librería.
./configure --with-apxs --with-pgsql=shared
Esto creará una librería compartida libphp5.so para Apache, pero también creará una librería compartida pgsql.so que se carga en PHP ya sea usando la directiva de extensión en el fichero php.ini o cargándola explícitamente en un script utilizando la función dl().
./configure --with-apache=/path/to/apache_source --with-pgsql
Esto creará una librería libmodphp5.a, un mod_php5.c y algunos ficheros acompañantes y cópiese estos dentro del directorio src/modules/php5 en el árbol de fuentes de Apache. Entonces se compila Apache utilizando --activate-module=src/modules/php5/libphp5.a y el sistema de compilación de Apache creará libphp5.a y lo enlazará estáticamente dentro del binario httpd. El soporte para PostgreSQL se incluye directamente dentro de este binario httpd, así que el resultado final aquí es un binario httpd sencillo que incluye todo Apache y todo PHP.
./configure --with-apache=/path/to/apache_source --with-pgsql=shared
Igual que en el anterior, excepto que en vez de incluir soporte para PostgreSQL directamente en el httpd final se obtiene una librería compartida pgsql.so que puede cargarse dentro de PHP desde ya sea el fichero php.ini o directamente utilizando dl().
Cuando se elige compilar PHP de diferentes maneras, se deben considerar las ventajas y desventajas de cada método. Compilar como objeto compartido significará que se puede compilar apache por separado, y no se tiene que recompilar todo cuando se agrega o se cambia algo en PHP. Compilar PHP dentro de apache (método estático) significa que PHP cargará y ejecutará más rápido. Para más información, ver la » página web de Apache sobre soporte DSO.
Nota:
El httpd.conf por omisión de Apache actualmente se distribuye con una sección que se parece a esto:
A menos que se cambie esto a "Group nogroup" o algo como esto ("Group daemon" es también muy común) PHP no será capaz de abrir ficheros.User nobody Group "#-1"
Nota:
Asegúrese de que se especifica la versión instalada de apxs cuando se utiliza --with-apxs=/path/to/apxs . NO se debe utilizar la versión de apxs que está en las fuentes de apache, si no la que en realidad está instalada en el sistema.