Instalando PHP / Apache en Windows XP

2

Estoy intentando instalar un servidor web Apache con PHP en mi caja de Windows XP Pro, pero no estoy teniendo suerte.

Estoy tratando de imitar un servidor de producción, así que prefiero no tener lo último. El entorno prod produce 5.3.6; Me conformo con 5.3.5 en mi caja de Windows. * Para Apache, el entorno prod utiliza 2.0.63; He probado tanto la versión 2.0.64 como la 2.2.22 (me parece que coincidir con la versión del idioma es más importante que la versión del servidor web) y obtuve básicamente las mismas fallas. **

He estado siguiendo las instrucciones en esta página, y fallan constantemente cuando llega el momento de agregar este código al archivo httpd.conf:


LoadModule php5_module "c:/php/php5apache2_2.dll"
AddModule application/x-httpd-php .php
PHPIniDir "C:/php"

Las rutas del directorio son correctas, y c:/php/php5apache2_2.dll Es un archivo real. Cuando intento reiniciar / iniciar el servidor Apache, aparece el mensaje "¡La operación solicitada ha fallado!" mensaje pop up. los logs/error.log el archivo no es de ayuda; nada se le está escribiendo. (Por este error, quiero decir. El archivo existe y no está vacío.)

Cuando comento esas tres líneas, se inicia el servidor web, así que estoy bastante seguro de que el problema reside allí.

Estoy bastante seguro de que la instalación de PHP funcionó bien; Obtengo la salida que esperaría cuando corro php -v desde la línea de comandos.

Cualquier consejo sobre lo que estoy haciendo mal es bienvenido y muy apreciado.

'* ¿Por qué? Porque la página de descarga indicó que quería VC6 (no VC9) si lo estoy ejecutando bajo Apache, y la página de archivo no tiene VC6 para 5.3.6; 5.3.5 fue lo más cerca que pude conseguir.

** - La actualización a 2.2.22 fue mi intento más reciente de resolver esto antes de venir aquí, así que eso es lo que estoy ejecutando en este momento. Me encantaría volver a la versión 2.0.64 para replicar mejor el entorno de producción, pero como dije, creo que la versión del idioma es más importante que el servidor web.

BlairHippo
fuente
¿Está php5apache2_2.dll registrado en la máquina? (regsvr32 c: \ php \ php5apache2_2.dll)
TheCompWiz
2
¿Por qué no instalar simplemente usando WAMP?
Bibhas
@TheCompWiz: Al parecer, no, no lo es; ese comando devuelve un mensaje de error emergente: "LoadLibrary (" [file] ") falló: no se pudo encontrar el módulo especificado".
BlairHippo
@Bibhas: ¿Por qué en todas mis búsquedas en Google para instalar Apache y PHP en Windows XP de alguna manera nunca logré notar WAMP? Eso parece extremadamente relevante para mis intereses ...
BlairHippo
@BlairHippo lo tengo.
Bibhas

Respuestas:

1

Los fallos de inicio de Apache, particularmente en la configuración inicial, son a menudo el resultado de que no se encuentra un módulo en el orden de carga de DLL. (Suponiendo que los archivos de configuración están escritos correctamente.)

El primer problema es que está intentando cargar el controlador de Apache 2.2 en Apache 2.0, pero 2.2.22 debería haberse cargado. :-P

¿Qué dice el registro de eventos del sistema? IIRC, la información útil se registra allí cuando Apache no se inicia.

¿Se puede iniciar Apache sin PHP habilitado?

¿Qué hace la salida de httpd -t decir desde un símbolo del sistema? Tendrás que estar en el Apache\bin carpeta para eso.

¿La cuenta con la que está intentando ejecutar Apache tiene acceso de lectura a su carpeta PHP? ¿Tiene acceso de escritura a su carpeta de registro?

¿Estás tratando de cargar alguna extensión de PHP? Si es así, es tu extension_dir establecer correctamente en su php.ini?

Hace php -i ¿Desde una línea de comandos funciona? ¿Cuál es la salida de php --ini? ¿Está encontrando el archivo ini correcto?

No agarraste un nts Versión de PHP (no segura para subprocesos), ¿verdad? Para cargar PHP como un módulo de Apache, necesita la versión segura para subprocesos.

Finalmente, podría valer la pena considerar la ejecución de PHP como CGI en lugar de un módulo de servidor para fines de desarrollo. Hace que sea mucho más fácil cambiar las versiones de PHP para probar los efectos de actualizar el tiempo de ejecución.

- = - = -

Un servidor al que tengo acceso para ejecutar Apache 2.2 y PHP 5.2, usa las siguientes directivas:

LoadModule php5_module "C:/php/php5apache2_2.dll"
AddType application/x-httpd-php .php
PHPIniDir "C:/php"
afrazier
fuente
Como se mencionó, ya no estoy usando Apache 2.0; Lo desinstalé e instalé 2.2.22. Además, como se mencionó, cuando comento esas líneas relacionadas con PHP en httpd.conf, el servidor realmente se inicia. El registro del sistema registra dos entradas de información y un error, que dice "El servicio Apache2.2 terminó con el error específico del servicio 1 (0x1)". httpd -t dice "Comando inválido 'AddModule'" ... hey. Eso se parece sospechosamente a paydirt.
BlairHippo
Asi que. Si "AddModule" es un comando incorrecto de usar, ¿sabe cuál es el correcto?
BlairHippo
Gah, me lo perdí. En mi teléfono ahora. Tal vez AddHandler?
afrazier
Sus AddType.
afrazier
1

Cuesta un poco de dinero ($ 125), pero he aprovechado mucho el uso de WampDeveloper Pro . Para alguien como yo que no es un gran administrador de WAMP, simplificó enormemente el proceso de hacer que todo funcionara en conjunto para que pudiera concentrarme en las aplicaciones web que estaba instalando sobre la pila de software del servidor.

Pero también dijo que necesitaba usar versiones anteriores específicas de algún software, pero no está seguro de si este producto le permitirá hacerlo.

Shannon Wagner
fuente