22 noviembre 2007

Compilación de php5 como cgi, III, el problema era nginx

Otro día dándole a php y al array $_POST, otro día pensando que había algún error en php, y finalmente llegué a la determinación de que los problems venían de nginx.

Es un poco decepcionante porque realmente nginx me gusta mucho como servidor ligero para reemplazar a apache.

Otra vez comprobé que los formularios que tenía, a los que accedía a través de un dominio funcionaban; efectivamente era así y el array $_POST contenía datos.

El problema surgió cuando intentaba pasar datos por "POST" mediante un fichero html en el que tenía un formulario y que estaba ubicado en mi ordenador local.

La variable pasaba vacía; puse el mismo formulario en el servidor y comprobé que efectivamente también pasaba vacía.
La diferencia con respecto a una petición normal es que en lugar de hacer la petición a un nombre de dominio hacemos la petición a la dirección ip, con lo cual en el fichero de configuración de nginx en el primer host no configuramos nombre de dominio.
Si en lugar del contenido del fichero que tenía que ejecutarse escribía simplemente la función phpinfo() vi que efectivamente php sí que estaba funcionando, pero si volvía a poner el fichero original con "echos" para comprobar si había algo en el array, descubrí que $_POST viajaba vacía.

Instalé la última versión de lighttpd sin recompilar php, y efectivamente los formularios funcionaban como tenían que funcionar.

No me gusta demasiado lighttpd porque trata los errores 404 de una manera un poco especial, y o bien logueo todas las variables de debug de error, o bien no me escribe nada si simplemente tengo activado el debug 404.

Seguramente algo se me escapa y tendré que investigarlo

Voy a poner después este problema en el foro de nginx, no estoy seguro de que sea nginx propiamente o FastCGI, bueno, a ver si alguien me puede iluminar, mientras tanto trataré reemplazar las configuraciones de nginx con lighttpd.


Entradas relacionadas:

No hay comentarios: