意外的连接重置:PHP或Apache问题?

时间:2009-12-26 22:47:48

标签: apache connection php httpd.conf

我有一个PHP脚本,每次都停在同一个地方,我的浏览器报告:

  

重置了与服务器的连接   页面正在加载。

我在Firefox和IE上测试了这个,同样的事情发生了。所以,我猜这是一个Apache / PHP配置问题。以下是我设定的一些内容。

PHP.ini中

max_execution_time = 300000 
max_input_time = 300000
memory_limit = 256M 

Apache(httpd.conf)

Timeout 300000
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 0

以上是否正确?可能导致这种情况的原因以及我可以设置什么?

  

我正在运行PHP(5.2.12.12)   Windows上的Apache(2.2)模块   Server 2003。

这很可能是Apache或PHP问题,因为所有浏览器都做同样的事情。我认为脚本运行完全 10分钟(600秒)。

8 个答案:

答案 0 :(得分:3)

我有一个类似的问题 - 结果是apache2是segfaulting。在Ubuntu 10.04 LTS上,段落错误的原因是5.35-1ubuntu4.14的php5-xdebug。删除xdebug解决了这个问题。

答案 1 :(得分:2)

我今天也遇到了这个问题,在一个带有break;块的函数中,它在PHP代码中(在任何开关或任何循环之外)都是一个迷路的try...catch...finally语句。 / p>

看起来PHP在这种情况下崩溃了:

<?php

function a ()
{
    break;

    try
    {
    }
    catch (Exception $e)
    {
    }
    finally
    {
    }
}

这是PHP 5.5.5版本。

答案 2 :(得分:1)

2个PHP配置之间的差异确实是我这个问题的根本原因。我的应用程序基于NuSOAP库。

在使用PHP 5.2的配置1上,它运行正常,因为PHP的SOAP扩展已关闭。

在使用PHP 5.3的配置2上,当PHP的SOAP扩展开启时,它发出了“连接重置”错误。

关闭扩展程序允许我的应用程序在PHP 5.3上运行,而无需重写所有内容。

答案 3 :(得分:1)

我遇到了一个问题,在某些情况下PHP 5.4 + eAccelerator =连接重置。任何日志文件中都没有错误输出,它只发生在某些URL上,这使得诊断变得困难。事实证明它只发生在某些PHP代码/某些PHP文件中,并且是由于与特定PHP代码和eAccelerator的某些不兼容。最简单的解决方案是通过将以下内容添加到.htaccess文件来禁用该特定站点的eAccelerator

php_flag eaccelerator.enable 0

php_flag eaccelerator.optimizer 0

(或php.ini中的等效行):

eaccelerator.enable =&#34; 0&#34;

eaccelerator.optimizer =&#34; 0&#34;

答案 4 :(得分:1)

这是一篇很老的帖子,我知道,但由于我无法在任何地方找到我的问题的解决方案而且我已经修好了,我会分享我的经验。 我的问题的主要原因是 file_exists()函数调用 该文件实际存在,但由于某种原因,通常在常规浏览器上工作的文件位置(“//”)上的额外正斜杠似乎不适用于PHP。也许你的问题与类似的东西有关。希望这有助于某人!

答案 5 :(得分:0)

我尝试设置所有错误报告选项

-b错误批量中止
-V severitylevel
-m error_level

并将所有输出发送到客户端

<?php
echo "<div>starting sql batch</div>\n<pre>"; flush();
passthru('sqlcmd -b -m -1 -V 11 -l 3 -E -S TYHSY-01 -d newtest201 -i "E:\PHP_N\M_Create_Log_SP.sql"');
echo '</pre>done.'; flush();

答案 6 :(得分:0)

我的PHP是segfaulting,没有关于它的原因的任何其他信息。结果是两个类调用彼此的魔法__call()方法,因为它们都没有调用方法。 PHP只是循环,直到内存不足。但它没有报告通常的“允许的*字节耗尽的内存大小”消息,可能是因为这些方法是“神奇的”。

答案 7 :(得分:0)

我想我也应该增加自己的经历。

我收到相同的错误消息,在我的情况下,这是由于 PHP异常中的错误引起的。

罪魁祸首是一个自定义的异常类,该类在内部进行了一些日志记录,并且该日志记录机制中发生了致命错误。这导致异常未按预期触发,也没有有意义的消息显示。