PHP 解析错误导致连接重置

PHP parsing error causes connection reset

提问人:user3885442 提问时间:7/29/2014 最后编辑:user3885442 更新时间:2/20/2015 访问量:2081

问:

我已经在同一系统上编码了几年,但最近我错过了一个右括号},浏览器给了我一个“连接重置”错误,而不是描述性错误。

这是在localhost(windows vista,PHP版本5.2.5,apache2.2)上,我有display_errors,开发环境,Php.ini文件是错误报告。自此问题发生以来,这些都没有改变。E_ALL & E_STRICT & E_NOTICE

更奇怪的是,我写了一个简单的phpinfo()文件,当我在firefox中点击它时,它会显示,然后在最后重置连接。使用 chrome,似乎有效。

我很困惑,但刚刚注意到当我显示 phpinfo 页面时,error_reporting在 php.ini 文件中为 0,.没有其他东西可以凌驾于此之上。error_reporting=E_ALL & E_STRICT & E_NOTICE

更新:我发现即使是简单的错误(引用不存在的值,E_STRICT打开)也会导致连接重置问题。

更新2:我知道大多数人会认为这个问题已经回答了100次,这是不同的。

2 个文件:

ini_set('display_errors','On');
ini_set('display_startup_errors','On');
error_reporting(E_ALL|E_STRICT);
include("file2.php");

file2.php: 有解析错误

if(isset($x){echo "HI";}

在我的开发服务器上 - 连接重置(错误 500) 在我的生产服务器上 - 显示解析错误。

PHP Apache 错误报告

评论

0赞 Darren 7/29/2014
您介意显示代码和/或错误日志。
0赞 Darren 7/29/2014
你能包括apache fiile的日志吗?error.log
0赞 user3885442 7/29/2014
错误日志未显示任何内容,代码在上面。研究如何强制 apache 写入错误日志,以确保我正在查看写入错误日志。谢谢达伦

答:

0赞 user3885442 7/29/2014 #1

我最终重新安装了 Apache 和 PHP,这解决了问题,但是,当这种情况开始发生时,我没有对 php5apache.dll 或配置文件进行任何更改。如果其他人看到过这个,我很想知道你是否对可能发生的事情有任何想法。

谢谢

0赞 Jonathan Davies 7/30/2014 #2

我今天遇到了完全相同的问题,已升级到 PHP 5.5 并将我的 Apache 保持在 2.2。我花了多次安装才能使PHP按预期工作,所以我不愿意重新安装。

错误日志:

[Wed Jul 30 09:44:32 2014] [error] [client 127.0.0.1] PHP Parse error:  syntax error, unexpected 'require' (T_REQUIRE) in C:\\Apache2.2\\htdocs\\laravel\\site\\public_html\\index.php on line 22
[Wed Jul 30 09:44:32 2014] [notice] Parent: child process exited with status 255 -- Restarting.
[Wed Jul 30 09:44:33 2014] [notice] Apache/2.2.15 (Win32) configured -- resuming normal operations
[Wed Jul 30 09:44:33 2014] [notice] Server built: Mar  4 2010 11:27:46
[Wed Jul 30 09:44:33 2014] [notice] Parent: Created child process 9992
[Wed Jul 30 09:44:33 2014] [notice] Child 9992: Child process is running
[Wed Jul 30 09:44:33 2014] [notice] Child 9992: Acquired the start mutex.
[Wed Jul 30 09:44:33 2014] [notice] Child 9992: Starting 64 worker threads.
[Wed Jul 30 09:44:33 2014] [notice] Child 9992: Starting thread to listen on port 80.

评论

0赞 Jonathan Davies 7/31/2014
我刚刚更新到 Apache 2.4,遇到了同样的问题。我看不出Firefox和其他浏览器有什么区别。对我来说似乎是服务器端。
0赞 Chris Lloyd Sherwood 2/20/2015 #3

我遇到了类似的问题(错误报告未显示在生产环境中)同样在服务器一年的大部分时间里一直是开发环境的相同情况下,我重新安装了 apache 和 php,但在重新安装之前还进行了引导扫描,找到了一个 babylon rootkit。