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.