Lograr que Apache 2 y PHP 4 funcionen juntos en Windows
Peter Brawley y Arthur Fuller
Apache 2 y PHP son opciones populares (¡y económicas!) para crear sitios Web interactivos. Instalar Apache 2 solo en Windows es fácil, pero instalar PHP 4 para que se ejecute sin restricciones en Apache 2 es complicado.
La sección de instalación de Windows del manual de PHP 4.3 no explica cómo instalar PHP para que funcione con Apache 2, y la sección sobre la instalación de Apache 2 carece de mucha de la información que necesita. Otras guías de instalación publicadas también contienen errores, lo que obliga a algunos instaladores a recurrir a prueba y error, como reemplazar las DLL de PHP con DLL de otras versiones de PHP. Pero en lugar de pasar horas de frustración tratando de resolverlo todo, puede seguir nuestra sencilla guía a través del laberinto.
Obtenga la versión correcta de Windows
Primero, unas pocas palabras sobre la compatibilidad: Apache 2 no se ejecuta en Windows 95, apenas se ejecuta en Windows 98 y no se ejecuta como un servicio en absoluto. PHP tampoco se ejecuta en Windows 95 desde la versión 4.3. Por lo tanto, necesitará usar Windows NT, 2000 o XP antes de continuar.
Apache 2: ¿Fuente o binario?
Si tiene Visual C++ 5.0 o superior o Microsoft Visual Studio, por supuesto puede compilar Apache desde el código fuente, pero esta es definitivamente la forma incorrecta de comenzar a usar Apache. Incluso en el IDE de Visual Studio, el proceso de compilación en Windows es complicado y espeluznante desde la línea de comandos. Entonces, a menos que solo desee crear archivos MAKE, es mejor obtener una distribución binaria de Windows Installer, también conocida como archivo .msi. Cuando sepa lo suficiente sobre Apache y sepa qué personalizaciones necesita, probablemente esté listo para el proceso de compilación de Apache.
Si tiene una versión anterior de Apache 2 instalada y en ejecución, apáguela y desinstálela antes de instalar el nuevo servidor. No pueden coexistir varias versiones de Apache 2.
Haga doble clic en el archivo .msi de Apache 2. Después de aceptar la licencia, verá el cuadro de diálogo que se muestra en la Figura A.
Figura A |
Establezca el dominio y el nombre del servidor en un nombre apropiado (p. ej., localhost funciona bien, suponiendo que no tenga Apache instalado en la máquina remota), ingrese su dirección de correo electrónico en el campo de dirección de correo electrónico del administrador y deje la radio Puerto 80/Opciones de servicio se selecciona el botón. Seleccionar una instalación típica en el siguiente cuadro de diálogo proporcionará una instalación de trabajo fácil.
consejos de instalación
Recomiendo cambiar el directorio de instalación predeterminado de C:\Program Files\Apache Group a C:\Apache, o un directorio similar adecuado para el formato de nombre de archivo 8.3. Hacer esto le ahorrará tener que escribir comillas alrededor de la ruta de instalación de Apache.
Después de unos momentos, el asistente de instalación le indicará que Apache 2 está instalado. Todo lo que queda por hacer es probarlo abriendo un navegador y navegando a localhost. Entonces debería ver la página web predeterminada de Apache 2.
A continuación, puede eliminar todos los archivos de muestra en el directorio del servidor web principal, que es C:\InstallDirectory\Apache\Apache2\htdocs de forma predeterminada. Si tiene un Index.html para copiar aquí, hágalo, o puede crear un archivo básico para usted. Para HTML no iniciado, el siguiente código funciona bien:
title=página del servidor por defecto
Página del servidor predeterminado
Preparando Apache 2 para PHP
A partir de aquí, necesita un enfoque más práctico que simplemente hacer clic en una selección en un cuadro de diálogo. Acostúmbrate, es la forma Apache. Editará el archivo para establecer los cambios de configuración y, si no lo hace correctamente, es posible que sus cambios impidan que Apache se cargue. Si la configuración desencadena un error, el error puede registrarse en el registro de errores de Apache 2 (el valor predeterminado es C:\InstallDir\Apache2\Logs\Error.log). Como dije, hay una posibilidad, pero no mucha. Es más probable que los errores se registren solo en el registro de eventos de Windows (Inicio | Configuración | Panel de control | Herramientas administrativas | Visor de eventos).
Desafortunadamente, el registro de eventos de Windows no es una herramienta muy útil para depurar la configuración de la instalación. Es más satisfactorio probar la carga del servidor Apache en una ventana de línea de comando y verá el informe de error de inmediato. Entonces, después de realizar los cambios de configuración que discutiré, abra una ventana de línea de comando, navegue hasta el directorio binario de Apache (C:\InstallDir\Apache2\bin) e inicie Apache desde allí.
El archivo de configuración de Apache es C:\Apache\Apache2\Conf\Httpd.conf, que se puede editar con su editor de texto favorito. La búsqueda de una configuración llamada DirectoryIndex lo llevará a una línea que se ve así:
ÍndiceDirectorio index.html index.html.var # index.php
Para habilitar el procesamiento de Apache de páginas PHP, elimine el carácter de comentario (#) para que la línea diga:
ÍndiceDirectorio index.html index.html.var index.php
También debe permitir archivos .htaccess en cualquier directorio, así que busque la configuración AllowOverride y cámbiela de Ninguno a Todos. Después de guardar los cambios, es posible que desee mantener el archivo abierto en un editor de texto, ya que deberá editarlo nuevamente cuando instale PHP.
Instalar PHP
Aunque puede descargar el código fuente de PHP, querrá comenzar con el binario como lo haría con Apache. Apache 2 puede ejecutar programas PHP de dos formas: usando la interfaz CGI de Php.exe o internamente (y más rápido) usando la DLL de PHP. Por lo tanto, para cada versión lanzada de PHP, hay dos paquetes binarios de Windows. El más pequeño de los dos, el paquete .msi, instala el ejecutable CGI Php.exe, pero carece de los módulos necesarios para ejecutar scripts PHP a través de Apache DLL. El paquete .zip más grande contiene estos, y deberá obtenerlos de la sección Win32 del sitio web snaps.php.net. Después de descargar el archivo, extráigalo a C:\Php, manteniendo el nombre de la carpeta. A menos que le guste volar a ciegas, también necesitará el manual de PHP, que está disponible en varios idiomas.
Configurar Apache 2 para ejecutar PHP4
Ahora viene la parte divertida: hacer que Apache y PHP trabajen juntos. Primero, copie todos los dlls de C:\Php\Dlls al directorio del sistema de Windows. A continuación, busque la sección en el archivo de configuración de Apache (Httpd.conf) que contiene un montón de comandos AddType y agregue esto:
Aplicación AddType/x-httpd-php.php
Copie C:\Php\Php.ini-recommended a su directorio de Windows, cámbiele el nombre a Php.ini y ábralo en un editor de texto. Edite las líneas que configuran doc_root, extension_dir y session.save_path para que se vean exactamente como se muestra a continuación, reemplazando InstallDir con el nombre del directorio donde instaló Apache 2 anteriormente:
raíz_doc = c:\apache\apache2\htdocs
extension_dir = c:\php\extensiones
sesión.save_path = c:/temp
Puede usar barras diagonales o barras diagonales inversas para session.save_path. El manual de PHP dice que estos parámetros de ruta requieren una barra invertida final, pero esto es incorrecto. En PHP 4.3, este no es el caso. Si C:\Temp aún no existe, debe crearse.
El siguiente paso es permitir que Apache ejecute programas PHP como módulos, lo que implica dos pasos. Primero, copie C:\Php\Php4ts.dll a su carpeta de sistema de Windows. Busque la sección LoadModule en Httpd.conf y agregue la siguiente línea:
LoadModule php4_module «c:/php/php4apache2.dll»
Si por alguna razón necesita habilitar la ejecución de programas PHP en modo CGI (usando Php.exe), comente las líneas anteriores y agregue estas líneas a Httpd.conf:
ScriptAlias /php/ “c:/php/”
acción-aplicación/x-httpd-php «/php/php.exe»
Ahora, ¿funciona?
Después de guardar los cambios, debe responder dos preguntas sobre la configuración de Apache 2/PHP 4 para asegurarse de que todo funcione: ¿Se está cargando Apache y está procesando las páginas PHP correctamente?
Para determinar si Apache está cargado, ingrese en la ventana de línea de comando que tiene abierta:
apache -k inicio
O, si Apache ya se está ejecutando, use el comando de reinicio:
apache -k reiniciar
Lo bueno de iniciar Apache desde la línea de comandos es que si algo sale mal, Apache lo informará de inmediato. Si las cosas no funcionan, su problema más probable es que Apache no puede cargar Php4apache2.dll por alguna razón. Si ve que Apache se queja de este error, intente volver sobre sus pasos para asegurarse de haber ingresado todas las configuraciones que describí anteriormente.
Para determinar si Apache está manejando las páginas PHP correctamente, use su editor de texto para crear una página PHP simple llamada Phptest.php con las siguientes líneas:
phpinfo(); ?>
Guarde el archivo en el directorio de su servidor web principal (C:\InstallDirectory\Apache\Apache2\Htdocs) y navegue hasta él en su navegador. Si todo va bien, verá una página larga con un logotipo de PHP con muchas configuraciones y créditos. Podrá saber si PHP se está ejecutando a través de CGI o dentro de Apache al verificar la variable de entorno orig_script_name. Si PHP se ejecuta a través de CGI, esta variable será /Php/Php.exe. Si Apache ejecuta el script PHP directamente como un módulo, esta variable leerá /Phptest.php.
Si bien la instalación de Apache 2 y PHP en Windows no es necesariamente fácil, no tiene que ser un proceso de prueba y error. Armado con estas instrucciones, está bien encaminado para disfrutar de una de las mejores y, sin duda, una de las carteras de desarrollo web más baratas disponibles para los desarrolladores en la actualidad.