Nginx + PHP-FPM产生502错误的网关而不是致命错误?


11

我目前正在使用Nginx和PHP-FPM测试Symfony2。我也使用Xdebug。

Symfony2带有演示包,我想通过在Acme / Demo包中创建语法错误来测试Symfony 2.2.0附带的致命错误的新处理。为什么我这样做,服务器响应是502错误的网关。

但是,如果我在app_dev.php文件中犯了语法错误(因此在触发框架之前),那么Xdebug会告诉我致命错误。

令人惊讶的是,如果我修复了该错字,然后在Acme / Demo捆绑包中重新创建了语法错误,那么Symfony错误处理程序将按预期方式出现。最后,如果修复了所有的错字(页面都可以工作),然后再次重新创建相同的错字(再次出现在Acme / Bundle中),我将得到一个错误的网关。

您对此有任何线索吗?


任何更新?我有同样的问题
Kevin Robatel

这里也有更新
Zaki Aziz

收到错误的网关错误时,nginx error.log中的哪一行显示?指向PHP-FPM套接字的错误有90%。另外,您可以向我们展示您的nginx配置和您使用的PHP-FPM池配置吗?
Bert

Answers:


1

昨天这发生在我身上。从nginx切换到php5-fpm是一个错误,事实证明php-fpm服务配置为侦听错误的套接字。

在/etc/php5/php-fpm.conf中,我更改为:

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

并在所有/ etc / nginx /中确保fastcgi_pass unix:/var/run/php5-fpm.sock

高温超导


不,我的配置正常,因为我可以使用该应用程序。我描述过,仅在这种特定情况下。
jchatard 2013年


0

您可以通过检查nginx日志来跟踪确切的问题。

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

502是因为在连接php-fpm进程时存在一些问题。日志可以为您提供更多详细信息。如果您想隔离日志,请在您的php应用程序的位置下提及单独的error_log,例如

    location <name> {

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

    }

(如果nginx尝试连接到其他端口/ phpfpm / socket,您可以从中获得答案)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.