PHP解析错误导致连接重置

Posted

技术标签:

【中文标题】PHP解析错误导致连接重置【英文标题】:PHP parsing error causes connection reset 【发布时间】:2014-09-20 02:22:29 【问题描述】:

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

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

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

我很困惑,但只是注意到当我显示 phpinfo 页面时,在 php.ini 文件 error_reporting=E_ALL & E_STRICT & E_NOTICE 中 error_reporting 为 0。没有其他东西可以覆盖这一点。

更新:我发现即使是简单的错误(引用不存在的值,打开 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");

文件2.php: 有解析错误

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

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

【问题讨论】:

您介意显示代码和/或错误日志。 你能把来自 apache error.log 文件的日志也包括进来吗? 错误日志没有显示任何内容,代码在上面。研究如何强制 apache 写入错误日志以确保我正在查看写入错误日志。谢谢达伦 【参考方案1】:

我遇到了类似的问题(错误报告未在生产环境中显示)同样在服务器作为开发环境一年的大部分时间的相同情况下,我重新安装了 apache 和 php,但也重装前做了bootscan,发现了babylon rootkit。

【讨论】:

【参考方案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.

【讨论】:

我刚刚更新到 Apache 2.4,我遇到了同样的问题。我没有看到 Firefox 和其他浏览器之间有任何区别。对我来说似乎是服务器端。【参考方案3】:

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

谢谢

【讨论】:

以上是关于PHP解析错误导致连接重置的主要内容,如果未能解决你的问题,请参考以下文章

PHP代码错误导致PHP返回页面空白

解析服务器密码重置电子邮件错误 ios

PHP openssl_public_encrypt 导致页面超时/连接重置?

通过 AWS Amazon 重置密码错误解析服务器

错误报告

PHP 的错误级别