500 – 内部服务器错误不会出现在error.log(或access.log)

我试图追查我们新的Debiannetworking服务器运行一个PHP / MySQL驱动的网站与Apache的错误或错误的configuration。 我不会在这里迷惑你,但只想问:

有没有人曾经观察到网页浏览器收到“ http 500 inernal服务器错误 ”,而没有什么似乎出现在Apache的错误和访问日志? 这里不涉及细节,只是我相信这种奇怪的行为应该已经走向了正确的方向,因为我不相信有这种可能发生的可能性。

当这个内部服务器错误发生时,PHP脚本继续运行,没有任何失败,但是当然,他们想要传递给浏览器的结果将永远不会出现,因为浏览器已经认为他的内部服务器错误是世界末日如他所知。

任何意见/想法的欢迎,

罗马。

已解决:唉,有一个负载平衡器控制服务器,并负载平衡器设置为停止连接10秒钟左右不活动或等。 现在问题解决了。 500没有出现在apache的error.log中的原因是它是停止连接的“外部”系统(负载均衡器),而不是服务器本身。 谢谢大家的意见和帮助! 希望有一天别人会觉得这种启发。

最好的问候,罗马。

这可能是您的Apache LogLevel指令的一个问题,或者它可能与PHP 运行时error handling有关。

其他的可能性:在你的源文件中寻找@

从php文档中提取

警告
目前,“@”错误控制操作符前缀将甚至禁用将终止脚本执行的严重错误的错误报告。 除此之外,这意味着如果您使用“@”来抑制来自某个函数的错误,并且该错误不可用或者错误input,那么脚本就会在那里死亡,而不会显示原因。

积分去Luc M ,这救了我,还有很多CodeIgniter用户。

它只会显示在Apache错误日志中,如果在Apache代码中引发错误 – 但是如果在PHP代码中设置了状态,您应该仍然可以在访问日志(状态码为500)中看到它。 尽pipe可能会有PHP进程完全崩溃的情况(尽pipe这些情况非常罕见)。

注意,通过代理连接和代理连接也会发生。

500来自另一个主机通过内联文件? 也许你有你的CSS或从另一个盒子来的? 另外尝试添加一个ErrorLog指令。 使用Firebug或Chrome的webdev工具来找出500来自哪里,甚至可以是在网页上的广告或东西。

也可以尝试类似CURL或LWP的请求,看看响应头是什么,例如:

lwp-request -m HEAD -eSsd http://www.google.com/ HEAD http://www.google.com/ --> 200 OK Cache-Control: private, max-age=0 Connection: close Date: Tue, 19 Apr 2011 15:56:26 GMT Server: gws Content-Type: text/html; charset=ISO-8859-1 Expires: -1 Client-Date: Tue, 19 Apr 2011 15:56:26 GMT Client-Peer: 74.125.91.99:80 Client-Response-Num: 1 Client-Transfer-Encoding: chunked Set-Cookie: REF=ID=b4ac3801dfbd939c:FF=0:TM=1303228586:LM=1303228586:S=nU_H2eC3zcLbTKfb; expires=Thu,18-Apr-2013 15:56:26 GMT; path=/; domain=.google.com Set-Cookie: NID=46=dsepCUy0iW9MDD7AkaP1-P4INDfRLTXz7l_TchQFzCGqtP4GU1EFbpn7K-sKq-ujNhpnR Br8Cqgdyd3LyC3mxsRDOCCFoOn2OutZad7VWFs5erWVh0UNgEgkQJGqRe-; expires=Wed, 19-Oct-2011 15:56:26 GMT; path=/; domain=.google.com; HttpOnly X-XSS-Protection: 1; mode=block 

编辑:GF发现了一个错字。

我有同样的问题,这是由PHP中的错误报告设置引起的。 虽然我有E_ERROR | E_WARNING | 在我的.htaccess中的E_PARSE PHP没有将PHP致命错误logging到错误日志中。 accesslog中只有500个。 甚至一半的页面生成(直到我调用该函数的错误)。

对于Symfony项目,不要忘记检查应用程序/日志

你可以在这个问题上find更多的细节:
https://stackoverflow.com/questions/18577003/how-to-debug-500-error-in-symfony-2

顺便说一下,其他框架或CMS可能有类似的行为。