english

Miserias con Apache y PHP

Publicado el 18 de Abril, 2007 a las 12:17am por Pi.
Categorías: Desarrollo.

Mantengo un servidor AMP en mi ordenador; AMP significa (A)pache (M)ySQL (P)HP. La variedad más común es de hecho LAMP (L de Linux), donde un servidor con funcionalidad básica se levanta sólo con software gratuito y de código abierto. Sin embargo, nunca me he atrevido a instalar y usar Linux (todavía), así que lo hago en Windows. Sin embargo, me estoy alejando de la historia.

Después de instalar desde cero XP el mes pasado, decidí reinstalar el servidor AMP, en una carpeta llamada Cherokee como he estado haciendo los últimos años (lee Navegante Solar por David Brin). Instalé el último Apache HTTP Server 2.2.4, la última version 4.x de MySQL (ya que no quiero pasar a la 5.x todavía) y PHP 4.4.6 (lo mismo). Instalé y configuré todo, como he hecho bastantes veces más, y pensé que ya estaba todo hecho. Al día siguiente quise empezar la producción, así que arranco AMP… Y nada. No carga. Me encuentro con el temido error no se puede cargar en instalaciones PHP:

httpd.exe: Syntax error on line 188 of C:/Cherokee/Apache2/conf/httpd.conf:
Cannot load C:/Cherokee/php/sapi/php4apache2.dll into server: The specified module could not be found.

Este error es bastante común al configurar PHP con Apache 2.x; hay una dll php4ts.dll que debe estar en algún lugar del path. Algunos copian a la carpeta sapi, o copian la dll sapi a la carpeta principal de PHP, o lo dejan en una carpeta que esté en el path. Vale, yo hice TODAS esas opciones, pero el odiado error seguía apareciendo. Empecé a hacer toda clase de combinaciones, cambiando barras, moviendo dlls, añadiendo carpetas al path, pero nada. Busqué por internet sobre este error, y todo lo que pude encontrar fueron las mismas referencias a php4ts.dll. Me pase como dos horas con esto. Y me rendí, decidí que había algo erróneo en los programas. Creo que algunos de vosotros conocereis esa sensación: estar seguro de que lo que haces está bien echo, pero los putos programas no quieren funcionar.

Decidí cambiar versiones, probablemente volviendo de Apache 2.2.4 a 2.0.x (que fue la última que instalé hace un par de años). Pero antes de hacerlo, busqué incompatibilidades específicas entre 2.2.4 y 4.4.6. PHP.net - nada. Apache.org - niente. Google… Bueno, Google es una herramienta genial, pero tienes que saber cómo usarla. Una vez que me dí cuenta cómo hacer la búsqueda, vi que Apache 2.2.x y 2.0.x necesitan los módulos compilados de manera diferente. PHP viene con módulos compolados para Apache 1.x y 2.0.x, así que uno pensaría que de alguna maneral, los desarrolladores se darían cuenta de la necesidad de un módulo compilado para 2.2.x. La respuesta es sí y no. PHP 5.x viene con un módulo compilado para 2.2.x, pero 4.x NO. ¡Joder, que coño, mierdaputa! Hay un serio problema de compatibilidad, específicamente PHP 4.x no funciona bajo Apache 2.2.x, y no se menciona en NINGUNA PARTE. Si decidieron no dar soporte para 2.2.x para las versiones 4.x, para animar a la gente a actualizarse a 5.x, me parece bien, quizá o incluso probablemente yo habría hecho lo mismo. Pero avisad! No hay nada en los ficheros de instalación sobre esa incompatibilidad, y seguro que no vi nada en todo el sitio de PHP.

PHP es un software fantástico, construido con los esfuerzos de cientos de individuos a lo largo de los años, pero cosas como esta hacen que la gente mate gente. Al final, puedes hacer dos cosas: bajarte un binario no oficial del módulo PHP 4.4.6 php para Apache 2.2.x, y usarlo en vez del que viene con el paquete PHP, o bajar de versión de Apache a la 2.0.x, que debería ser suficiente para todos (de hecho, 1.3 es la versión más recomendada+estable+segura). Yo bajé la versión. Así que gracias, equipo PHP, por ese software tan maravilloso, pero permitidme que os odie un rato por algo realmente estúpido y tonto…

Y para terminar mi historia con un pequeño detalle, me pasé 15 minutos en el sitio de MySQL intentando encontrar una descarga que no incluyese la palabra comprar, hasta que me dí cuenta de que lo que quería era la edición Community. No hacen que destaque mucho…

6 comentarios.

JACINTO

Comment on 12:28am.

NO HAY RESPUESTA, PUESTO QUE LA PREGUNTA NO EXISTE EN UN MODO CONSISTENTE.

Pi

Comment on 8:22am.

¿Cuál era la pregunta? No entiendo tu comentario.

GochitaUcevista

Comment on 6:21pm.

Hola estudio Computación y necesito Instalar el Apache HTTP Server 2.2x.
1.Instalar y configurar el Apache HTTP Server 2.2x en el sistema operativo Windows
2. Hacer pruebas de arrancar y detener el Apache HTTP Server.
3. Configurar la instalación de Apache HTTP Server para que en vez de responder por el puerto 80 (estándar) lo haga por el puerto 8888.
4. Configurar la instalación de Apache HTTP Server para que el DocumentRoot sea el directorio c:\\lab\public_html o /home/lab/public_html según sea el sistema operativo de la instalación. Colocar en dicho directorio una página de prueba elaborada por usted: index.html, y verificar que el url http://localhost:8080 muestra la página en cuestión.

Por favor si puedes ayudarme… ;)

Pi

Comment on 6:27pm.

Nunca he instalado Apache HTTPD 2.2, lo siento. Pero seguro que buscando en Google encuentras varios tutoriales. Además, la documentación del HTTPD es bastante buena.

GochitaUcevista

Comment on 6:38pm.

Gracias!!! seguiré buscando en Google!!! :’(

Jose

Comment on 2:19pm.

Bueno, en todo caso es una respuesta, por lo menos a mi me ha servido para poder saber que no estaba haciendo nada mal… Es lo que tiene ser el 1o Pi!!

Por cierto, a mi tb me pasa lo de la web de mysql, que gañanes!!

Dejar un comentario

Los comentarios pueden contener xhtml. Se requieren nombres y emails (los emails no se muestran), las url son opcionales.




Anuncio »« Diez toneladas de lino
La violencia es el último recurso del incompetente  — Isaac Asimov, de 'Fundación'

Pi in the Sky funciona con WordPress. Vestido con Vistered Little. Alojado en MochaHost.