php nginx display_error关闭引起的http 500 internal server error_江湖游医
php nginx display_error关闭引起的http 500 internal server error_江湖游医
2011年12月11日
php Nginx display_error关闭引起的http 500 Internal Server Error
今在一程序里,传递某个session_id后竟然返回 nginx 500错误。而传递另外一个session_id则不会出现错误,打开调试模式后才知道。是因为php出现语法错误,且在php.ini中关闭了display_error,并在程序中关闭了错误信息,所以直接返回 500错误给nginx。
php-fpm 文档中有这样解析:
如果被访问的php脚本包含语法错误,并且display_errors设为false,且没有进一步的设置,会立刻返回”HTTP/1.0 500 Internal Server Error”。如果你需要设定一个不同于500的错误码(已经在许多情况下被使用)。或者想要使这个行为独立于display_errors的设置,那么可以使用fastcgi.error_header。如果你同时使用php-5.2.5或以上版本和php-fpm,那么 fastcgi.error_header的优先级更高。
开启调试模式后遂查找到该问题,即解决了此问题。
原文:http://www.sphinxsearch.org/archives/350
参考:http://bbs.chinaunix.net/thread-1700271-1-1.html