Gente,
estoy ayudando a un amigo con un viejo drupal 4.6 instalado en dreamhost.com.
Hace un par de semanas, dreamhost upgradeó las versiones de php a 5.2.2 y 4.4.7 y el sitio dejó de funcionar.
Me puse a revisar y googlear y encontré que el culpable es el módulo Textile (del cual no podemos desprendernos ya que TODO el contenido del sitio está escrito en Textile).
Si lo desactivo, el sitio anda (pero, obviamente se ve el fuente de textile y no el texto correctamente formateado).
Si lo activo, cualquier vista que muestre algún nodo, tira un "page not found".
El log del apache tira:
Premature end of script headers: php.cgi
Las referencias que encontré a este problema fueron
http://drupal.org/node/143730
http://drupal.org/node/137225
http://discussion.dreamhost.com/showflat.pl?Cat=&Board=3rdparty&Number=8...
Agregar
<?php
ini_set('pcre.backtrack_limit', '10000');
?>¿Alguien tiene idea de para dónde agarrar?
Desde ya, muchísimas gracias.

Comments
Debug
Yo agarraría un debugger php y le entraría a ver qué pasa con el módulo. Muy posiblemente haya algo medio roto en el textile que andaba porque la versión vieja del PHP le hacía la vista gorda a algún tipo de error... eso o el 5.2.2 tiene algún comportamiento erroneo, que igualmente se podría esquivar encontrando dónde es exactamente que pincha.
Pero eso... por lo que ví en Google el textile supuestamente viene con un test.php que salta con error cuando se ejecuta. O sea que encontrar la línea exacta donde explota debería ser trámite con un debugger.
Drupal 4.6 no anda con PHP 5
Drupal 4.6 no anda con PHP 5
Luego, una pregunta, si se hizo un upgrade a Drupal 4.7, ¿cómo estaba hecho el upgrade a 4.7 (Uds. lo hicieron???).
Aparte, el error de apache indicaría que no tal vez no está instalado php correctamente con mod apache, ya que habla de php.cgi
Victor Kane
http://awebfactory.com.ar
Victor Kane
http://awebfactory.com
Volví atrás...
Víctor,
gracias por el comentario. El php que estoy usando es el 4, no el 5. El upgrade que comento que se hizo es del PHP, no del drupal (que sigue en 4.6), y lo hizo nuestro hoster (dreamhost) no nosotros.
Finalmente, sin tiempo de aprender cómo usar un debugger en php via web, encontré en otro equipo en el mismo proveedor que no había sido actualizado, la versión 4.4.4 que andaba y la copié y referencié desde el directorio donde está instalado el drupal y ahora anda.
De todos modos, por lo que entiendo, el módulo Textile tiene algún problema que salta en los intérpretes más nuevos de php que son más quisquillosos que los anteriores.
De hecho, el autor del módulo Textile reconoció el problema en el backend TextilePHP, pero dice que no tiene tiempo para dedicarle y ofrece el módulo a otro para que lo mantenga: http://drupal.org/node/143730#comment-252878
--
Mariano Absatz - el Baby
--
Mariano Absatz - el Baby
Debug
No, yo no te decía que hagas debug del php en Dreamhost (que ni sé si se puede)... asumí que para desarrollo estabas usando un drupal local, en tu máquina, que es siempre lo más recomendable a la hora de probar cosas.
Para tener un Drupal:
Si tenés Linux, va derecho... Apache+PHP+MySQL+Drupal.
Si tenés Windows, dos buenas opciones:
a) Instalar un VMWare Server (gratuito), y sobre él instalar un Linux con un stack LAMP (yo instalé VMWare más un Ubuntu con la opción LAMP en 15 minutos de tiempo total).
b) Instalar un stack WAMP. Yo uso el "Web-Developer Server Suite" que se baja de acá:
http://www.devside.net/
y con el cual te queda un Apache+MySQL que se activa o desactiva entero desde un panelcito de control muy sencillo. Encima viene con varias aplicaciones php preinstaladas (MediaWiki, Drupal, WorldPress, etc.).
En cualquiera de los dos casos, para tener una copia local del sistema alcanza que transfieras la base de datos y el directorio drupal al LAMP/WAMP local y listo.
Eric