O nginx + php5-fpm não funciona corretamente. Eu vejo apenas uma tela branca

11

Acabei de instalar o nginx e o php5-fpm e quero testá-lo na porta 82. Então chamo http://mysite.com:82/test555.php e não vejo nada. Apenas uma tela branca. Sem erros, sem avisos, não vejo nada :) Há um log de erros do nginx e um log de erros do php5-fpm - mas ... Não há nenhum erro. Eu não entendo o que está errado. Por favor, ajude-me a descobrir.

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:#

O que posso fazer a seguir para descobrir o que está acontecendo? Eu vejo que deve funcionar bem. O script PHP retorna o código = 200, mas não vejo a saída. Ele nunca foi chamado, porque tentei adicionar file_put_contents lá e nunca foi chamado pelo nginx.

Eu uso o ubuntu 12.04 totalmente atualizado hoje.

JavaRunner
fonte
Quais são os conteúdos /var/log/nginx/nginx-errors.com.log?
samiam 03/02
Veja se isso é relevante: bbs.archlinux.org/viewtopic.php?id=101750
mkc
Eu tive um problema semelhante, o nginx estava processando uma página no meio do caminho e depois parando. Não houve erros nos logs do nginx. Corrigi-o alterando o buffer nginx fastcgi. Veja stackoverflow.com/a/43294078/1008916
Mugoma J. Okomba

Respostas:

16

Esta SO Q&A parece que pode ser seu problema, intitulado: nginx mostrando páginas PHP em branco .

Sua locationestrofe deve ser semelhante a esta:

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;
}

Você deve prestar atenção especial ao caminho para o script ao qual está se referindo fastcgi_param.

Referências

slm
fonte
Sim, isso foi minha culpa. Eu adicionei uma linha: "include fastcgi_params;" para a localização e agora funciona!
JavaRunner 03/02
@JavaRunner - prazer em saber que seu problema foi resolvido!
Slm
13

Isso pode ser útil para outras pessoas que enfrentam esse problema,

Você também pode adicionar ao seu arquivo conf nginx fastcgi_paramsa seguinte linha, para não precisar especificar o caminho para a variávelSCRIPT_FILENAME

fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

Isso é muito útil, especialmente quando você tem muitos hosts virtuais.

Adriano Rosa
fonte
obrigado, isso é muito melhor do que incluir um caminho diferente o tempo todo
krdx
1
Isso resolveu meu problema no Ubuntu 14.04 lts, ​​uma nova instalação que o nginx vinha dos repositórios. Obrigado!
Arda