Pasé horas descubriendo cómo instalar Nginx + Ruby Enterprise Edition + PHP5-fpm y MYSQL, finalmente todo está instalado y todo parece haber comenzado bien.
Pero por alguna razón, los archivos php no se están procesando.
Los archivos .html funcionan bien, pero cuando intento ver un archivo .php, parece que no existe, aunque lo haga. Curiosamente, cuando intento ver un archivo .html que no existe, recibo un buen mensaje Nginx 404, pero cuando veo un archivo .php ni siquiera me da eso.
Entonces, para mi novato, parece que hay algo mal con la configuración o que Nginx y PHP-fpm no están hablando entre sí.
He estado viendo muchos otros ejemplos de archivos de configuración nginx y estoy seguro de que ese lado de las cosas está bien. Bueno ... de todos modos, aquí está la parte relevante del archivo conf:
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/eman/$fastcgi_script_name;
include fastcgi_params;
}
Y
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;
Cualquier ayuda es muy apreciada.
editar : Aquí están los encabezados que se devuelven del archivo php de prueba " http://eman.id.au/test.php ":
HTTP/1.1 404 Not Found =>
Server => nginx/0.8.54
Date => Thu, 16 Dec 2010 19:30:30 GMT
Content-Type => text/html
Connection => close
X-Powered-By => PHP/5.3.2-1ubuntu4.5ppa5~lucid1
Si echas un vistazo a los encabezados que responde http://eman.id.au/test.php , verás
X-Powered-By: PHP/5.3.2-1ubuntu4.5ppa5~lucid1
. No mostraría esto si la solicitud no se pasara a PHP. Además, si PHP no puede encontrar la ruta del archivo que se le pasó, se hará eco del errorNo input file specified.
Dado que su sitio genera el encabezado alimentado por y no tiene el
No input file specified.
error, la razón más probable es que tiene un error en su script PHP y tiene errores de visualización desactivados. Esto da como resultado una página en blanco y una entrada en su registro de errores, así que eche un vistazo allí y vea si no se está llenando.fuente
Par de pensamientos:
¿Esto necesita una barra extra
NGINX también tiene un poco de almacenamiento en caché extraño, así que cuando pruebe la URL en su navegador, agregue un? Random = 12391 al final para forzar una actualización. He estado desconcertado durante 30 minutos por una configuración solo para descubrir que funcionaba todo el tiempo, pero el caché me hizo tropezar.
También es probable que desee escapar un poco mejor de su ubicación (aunque esto no está causando el problema que está teniendo) Es mejor práctica:
a
.php $ coincidiría con una solicitud como yourpagephp en lugar de solo yourpage.php
fuente