nginx + php5-fpm no funciona correctamente. Solo veo una pantalla blanca

11

Acabo de instalar nginx y php5-fpm y quiero probarlo en el puerto 82. Llamo a http://mysite.com:82/test555.php y no veo nada. Solo una pantalla blanca. Sin errores, sin advertencias, no veo nada en absoluto :) Hay un registro de errores de nginx y un registro de errores de php5-fpm, pero ... No hay ningún error. No entiendo lo que está mal. Por favor, ayúdame a descubrirlo.

root@localhost:# echo "<?php phpinfo(); ?>" > /home/www/public_html/test555.php
root@localhost:# chmod 755 /home/www/public_html/test555.php
root@localhost:# cat /etc/nginx/sites-available/default
server {
        listen 82;
        root /home/www/public_html;
        index index.php index.html;

        server_name mysite.com;
        access_log /var/log/nginx/nginx-access.com.log;
        error_log /var/log/nginx/nginx-errors.com.log;

        location ~ \.php$ {
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                # fastcgi_pass 127.0.0.1:9000;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME   $document_root$fastcgi_script_name;
                fastcgi_param QUERY_STRING              $query_string;
                fastcgi_param REMOTE_ADDR               $remote_addr;
        }
}

root@localhost:# /etc/init.d/nginx status
 * nginx is running

root@localhost:# /etc/init.d/php5-fpm status
 * php5-fpm is running

root@localhost:# ls -la /var/run/php5-fpm.sock
srw-rw-rw- 1 root root 0 Feb  3 01:14 /var/run/php5-fpm.sock

root@localhost:# cat /var/log/php5-fpm.log 
....
[03-Feb-2014 01:14:52] NOTICE: configuration file /etc/php5/fpm/php-fpm.conf test is successful
[03-Feb-2014 01:14:52] NOTICE: fpm is running, pid 19080
[03-Feb-2014 01:14:52] NOTICE: ready to handle connections

root@localhost:# cat /var/log/nginx/nginx-access.com.log
...ip... - - [03/Feb/2014:01:29:44 +0000] "GET /test555.php HTTP/1.1" 200 5 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:26.0) Gecko/20100101 Firefox/26.0"

root@localhost:# cat /var/log/nginx/nginx-errors.com.log

root@localhost:#

¿Qué puedo hacer a continuación para averiguar qué está pasando? Veo que debería funcionar bien. El script PHP me devuelve el código = 200 pero no veo el resultado. Nunca se ha llamado, porque intenté agregar file_put_contents allí y realmente nginx nunca lo llamó.

Yo uso ubuntu 12.04 totalmente actualizado hoy.

JavaRunner
fuente
¿Cuáles son los contenidos de /var/log/nginx/nginx-errors.com.log?
samiam
Vea si esto es relevante: bbs.archlinux.org/viewtopic.php?id=101750
mkc
Tuve un problema similar, nginx estaba procesando una página a la mitad y luego se detenía. No hubo errores en los registros de nginx. Lo arreglé cambiando el buffering nginx fastcgi. Ver stackoverflow.com/a/43294078/1008916
Mugoma J. Okomba

Respuestas:

16

Este SO Q&A parece que podría ser su problema, titulado: nginx que muestra páginas PHP en blanco .

Su locationestrofa debería ser similar a esto:

location ~ \.php$ {
    include /path/to/fastcgi_params;
    fastcgi_pass  127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME /path/to/www/dir$fastcgi_script_name;
}

Debe prestar especial atención a la ruta del script al que hace referencia fastcgi_param.

Referencias

slm
fuente
Sí, fue mi culpa. He agregado una línea: "include fastcgi_params;" a la ubicación y ahora funciona!
JavaRunner
@JavaRunner: ¡me alegra saber que su problema se ha resuelto!
slm
13

Esto podría ser útil para otras personas que enfrentan este problema,

También puede agregar a su archivo nginx conf fastcgi_paramsla siguiente línea, por lo que no necesita especificar la ruta a la variableSCRIPT_FILENAME

fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

Esto es muy útil especialmente cuando tienes muchos hosts virtuales.

Adriano Rosa
fuente
gracias, esto es mucho mejor que incluir un camino diferente todo el tiempo
krdx
1
Esto resolvió mi problema en Ubuntu 14.04 lts una instalación nueva que nginx provenía de repositorios. ¡Gracias!
Arda