Nginx + PHP-FPM produz 502 gateway ruim em vez de erro fatal?

11

Atualmente, estou testando o Symfony2 com Nginx e PHP-FPM. Eu também uso o Xdebug.

O Symfony2 vem com um pacote Demo, eu queria testar o novo tratamento de erros fatais que vem com o Symfony 2.2.0, criando um erro de sintaxe no pacote Acme / Demo. Por que faço isso, a resposta do servidor é 502 gateway incorreto.

Mas se eu cometer um erro de sintaxe no arquivo app_dev.php (antes de o framework ser acionado), o Xdebug me informará sobre o erro fatal.

E, surpreendentemente, se eu corrigir esse erro de digitação, recrie o erro de sintaxe no pacote Acme / Demo, o manipulador de erros do Symfony será exibido conforme o esperado. E, finalmente, se uma correção de todos os erros de digitação (página funcionar) e recriar novamente o mesmo erro de digitação (novamente em Acme / Bundle), recebo um gateway incorreto.

Você tem alguma pista disso?

jchatard
fonte
Qualquer atualização? Estou com o mesmo problema
Kevin Robatel 20/03/2015
Aqui também para atualizações
Zaki Aziz
Qual linha aparece no seu nginx error.log quando você recebe o erro de gateway incorreto? Isso é 90% errado ao apontar para um soquete PHP-FPM. Além disso, você pode nos mostrar sua configuração do nginx e a configuração do pool PHP-FPM que você usa?
Bert

Respostas:

1

Isso aconteceu comigo ontem. Ocorreu um erro ao passar do nginx para o php5-fpm, e o serviço php-fpm foi configurado para escutar no soquete errado.

no /etc/php5/php-fpm.conf, mudei para:

listen = /var/run/php5-fpm.sock

e em todo o / etc / nginx /, verifique se o fastcgi_pass unix: /var/run/php5-fpm.sock

HTH

Windsor
fonte
Não, minha configuração funciona desde que eu posso usar o aplicativo. É apenas neste cenário específico, eu descrevi.
jchatard
Tente alterar os buffers. stackoverflow.com/questions/27173945/…
Ryan
0

Você pode acompanhar o problema exato verificando os logs do nginx.

/var/log/nginx/sitename.error.log

502 é porque há algum problema na conexão com o processo php-fpm. O log pode fornecer mais detalhes. Se você deseja isolar o log, mencione error_log separado no local do seu aplicativo php, como

    location <name> {

    error_log /var/log/nginx/site_location.error.log;
  #  error_log /var/log/nginx/site_location.error.log debug;

    }

(se o nginx estiver tentando se conectar a uma porta / phpfpm / socket diferente, você poderá obter uma resposta)

Anto
fonte