我目前正在用Nginx和PHP-FPMtestingSymfony2。 我也使用Xdebug。
Symfony2带有一个Demo包,我想通过在Acme / Demo包中创build一个语法错误来testingSymfony 2.2.0附带的致命错误的新处理。 为什么我这样做,服务器响应是502坏的网关。
但是,如果我在文件app_dev.php中发生语法错误(所以在框架被触发之前),那么Xdebug会告诉我有关致命错误的信息。
令人惊讶的是,如果我解决了这个错误,然后在Acme / Demo包中重新创build语法错误,那么Symfonyerror handling程序就会像预期的那样出现。 最后,如果修复所有拼写错误(页面工作),然后再次创build相同的错字(再次在Acme / Bundle),我得到一个坏的网关。
你有什么线索吗?
这发生在昨天。这是一个从nginx到php5-fpm的错误,结果是php-fpm服务被configuration为在错误的套接字上侦听。
在/etc/php5/php-fpm.conf我改为:
listen = /var/run/php5-fpm.sock
并在所有的/ etc / nginx /确保fastcgi_pass unix:/var/run/php5-fpm.sock
HTH
你可以通过检查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 /套接字,你可以从这个答案)