Apache 2.x sobre sistemas Unix
Esta sección contiene notas y consejos específicos a las instalaciones de Apache 2.x
de PHP sobre sistemas Unix.
AdvertenciaNo se recomienda utilizar
un MPM threaded en producción con Apache 2. Use MPM prefork, que es
el MPM por defecto en Apache 2.0 y 2.2.
Para información sobre cómo, lea la correspondiente entrada de la FAQ sobre utilizar
Apache2 con un MPM threaded
La » Documentación de Apache
es la fuente de información más autorizada acerca del servidor Apache 2.x.
Ahí se puede encontrar más información acerca de las opciones de
instalación.
La versión más reciente de Apache HTTP Server puede obtenerse del
» Sitio de descargas de Apache,
y una versión apropiada de PHP de los lugares anteriormente mencionados.
Esta guía rápida solamente cubre lo básico para comenzar con Apache 2.x
y PHP. Para obtener más información lea la
» Documentación de Apache.
Los números de versión han sido omitidos aquí, para asegurar que las
instrucciones no sean incorrectas. En los ejemplos siguientes, 'NN' deberá ser
reemplazado con la versión específica de Apache que se está utilizando.
Existen actualmente dos versiones de Apache 2.x - está la 2.0 y la 2.2.
Mientras que existen varias razones para elegir cada una, la 2.2 es actualmente
la versión más reciente, y la que se recomienda, si es que esa opción está
disponible. Sin embargo, las instrucciones aquí funcionarán ya sea para
2.0 ó 2.2.
-
Obténgase el servidor HTTP Apache de la ubicación listada con anterioridad,
y desempáquese:
-
De la misma manera, obtener y desempacar las fuentes de PHP:
-
Compilar e instalar Apache. Consúltese la documentación de instalación de Apache para
mayores detalles sobre la compilación de Apache.
-
Ahora se tiene Apache 2.x.NN disponible debajo de /usr/local/apache2,
configurado con soporte para módulos cargables y con el MPM (Módulo de multiproceso) prefork estándar.
Para probar la instalación úsese el procedimiento para iniciar
el servidor Apache, por ej.:
y deténgase el servidor para proceder con la configuración para PHP:
-
Ahora, configure y compile PHP. Aquí es donde se personaliza PHP
con varias opciones, como qué extensiones se han de habilitar. Ejecute
./configure --help para obtener una lista de opciones disponibles. En el ejemplo
se realiza un simple configure con soporte para Apache 2 y MySQL.
Si se compila Apache a partir de los fuentes, tal como se describe anteriormente, el siguiente ejemplo
coincidirá con la trayectoria para apxs, pero si se ha instalado Apache de alguna otra manera, será
necesario ajustar la trayectoria a apxs apropiadamente. Nótese que algunas distribuciones pueden renombrar
apxs cómo apxs2.
Si se decide a cambiar las opciones de configuración después de la instalación,
se deben volver a ejecutar los pasos configure, make, y make install.
Solamente se necesita
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 indique lo contrario, 'make install' también instalará PEAR,
varias herramientas de PHP tales como phpize, instalará la interfaz de línea de comando (CLI) de PHP, y más.
-
Configurar php.ini
Se puede editar el fichero .ini para fijar las opciones de PHP. Si se prefiere tener
php.ini en otra ubicación, utilice --with-config-file-path=/alguna/trayectoria en el
paso 5.
Si en vez de eso se elige php.ini-production, asegúrese de leer la lista
de cambios al interior, ya que afectan como se comporta PHP.
-
Edítese httpd.conf para cargar el módulo PHP. La trayectoria a la derecha
de la sentencia LoadModule debe apuntar a la trayectoria del módulo PHP
en el sistema. El make install anterior podría ya haber agregado
esto automáticamente, pero asegúrese de revisar.
-
Indicar a Apache que procese ciertas extensiones como PHP. Por ejemplo, hágase que
Apache procese ficheros .php como PHP. En vez de solamente utilizar la directiva de Apache
AddType, se desea evitar subidas de ficheros potencialmente peligrosas y que ficheros
creados tal como exploit.php.jpg sean ejecutados como PHP. Utilizando este
ejemplo, se puede hacer que cualquier extensión o extensiones sean procesadas como PHP simplemente
añadiéndolas. Se agregará .php para demostrarlo.
O, si se deseara permitir que ficheros .php, .php2, .php3, .php4, .php5, .php6, y
.phtml fuesen ejecutados como PHP, pero nada más, se utilizaría esto:
Y para permitir que ficheros .phps sean manejados por el filtro de fuentes de php, y
desplegado como código fuente con sintaxis resaltada, se utiliza esto:
mod_rewrite puede ser utilizado para permitir que cualquier fichero .php arbitrario sea desplegado
como código fuente con sintaxis resaltada, sin tener que renombrarlo o copiarlo
a un fichero .phps:
El filtro de código fuente php no debe habilitarse en sistemas de producción, donde
podría exponer información confidencial o de alguna otra manera sensible incluida en
código fuente.
-
Utilícese el procedimiento normal para iniciar el servidor Apache, por ej.:
O
Siguiendo los pasos anteriores se tendrá corriendo un servidor web Apache2 con
soporte para PHP como un módulo SAPI
. Por supuesto existen
muchas opciones más de configuración disponibles para Apache y PHP. Para más
información teclee ./configure --help en el árbol de fuentes
correspondiente.
Apache se puede compilar con soporte multihilos seleccionando el
worker MPM, en vez del
prefork MPM standard, cuando Apache se compila. Esto se realiza
agregando la siguiente opción al argumento pasado a ./configure, en el
paso 3 anterior:
Esto no debe llevarse a cabo sin ser consciente de las consecuencias de
esta decisión, y tener al menos un ligero entendimiento acerca de
las implicaciones. La documentación de Apache
al respecto de » MPM-Modules
discute los MPM en forma mucho más detallada.
Nota:
Las Preguntas frecuentes
de Apache MultiViews discute acerca del uso de multiviews con PHP.
Nota:
Para compilar una versión multihilo de Apache, el sistema destino debe soportar hilos.
En este caso, PHP también debe compilarse con la opción Zend Thread Safety (ZTS)
experimental. Bajo esta configuración, no todas las extensiones se encontrarán disponibles.
La configuración recomendada es compilar Apache con el MPM-module
prefork por omisión.