9

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

加载页面时重置与服务器的连接。

我已经在 Firefox 和 IE 上测试过了,同样的事情发生了。所以,我猜这是一个 Apache/PHP 配置问题。这是我设置的几件事。

PHP.ini

max_execution_time = 300000 
max_input_time = 300000
memory_limit = 256M 

阿帕奇 (httpd.conf)

Timeout 300000
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 0

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

我在 Windows Server 2003 上运行 PHP (5.2.12.12) 作为 Apache (2.2) 上的一个模块。

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

4

8 回答 8

3

我有一个类似的问题 - 原来 apache2 是段错误。段错误的原因是 Ubuntu 10.04 LTS 上 5.3.2-1ubuntu4.14 的 php5-xdebug。删除 xdebug 解决了这个问题。

于 2012-02-23T01:22:51.060 回答
2

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

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

<?php

function a ()
{
    break;

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

这是 PHP 版本 5.5.5。

于 2013-11-17T21:58:28.013 回答
1

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

php_flag eaccelerator.enable 0

php_flag eaccelerator.optimizer 0

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

eaccelerator.enable="0"

eaccelerator.optimizer="0"

于 2014-03-30T01:14:04.330 回答
1

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

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

在 PHP 5.3 的配置 2 上,由于 PHP 的 SOAP 扩展已打开,它会给出“连接重置”错误。

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

于 2011-01-19T11:22:00.500 回答
1

这是一个旧帖子,我知道,但由于我无法在任何地方找到解决我的问题的方法并且我已经修复了它,我将分享我的经验。我的问题的主要原因是file_exists()函数调用。
该文件确实存在,但由于某种原因,通常在常规浏览器上工作的文件位置(“//”)上的额外正斜杠似乎在 PHP 中不起作用。也许您的问题与类似的事情有关。希望这对某人有帮助!

于 2015-05-27T20:27:31.483 回答
0

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

-b 错误批处理中止
-V 严重级别
-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();
于 2009-12-26T23:45:50.617 回答
0

我的 PHP 在没有任何关于它的原因的额外信息的情况下发生了段错误。原来是两个类调用彼此的神奇 __call() 方法,因为它们都没有被调用的方法。PHP 只是循环,直到内存不足。但它没有报告通常的“Allowed memory size of * bytes exhausted”消息,可能是因为这些方法是“神奇的”。

于 2012-08-31T08:47:55.613 回答
0

我想我也会添加我自己的经验。

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

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

于 2020-11-16T13:43:55.457 回答