使用PHP脚本的ERR_CONNECTION_RESET

时间:2014-08-19 08:21:25

标签: php ajax google-chrome http reset

我有一个PHP脚本,可以下载和处理一些文件。有时文件的数量非常大,因此需要一些时间。

但是当有大量文件要处理时,连接会因“ERR_CONNECTION_RESET”错误(Chrome)而中断。

这是我的配置:

upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 0
max_input_time = -1
memory_limit = 512M

我有一个共享的hostind。任何人都知道如何解决这个问题?

5 个答案:

答案 0 :(得分:8)

ERR_CONNECTION_RESET通常意味着与服务器的连接已经死亡而没有对客户端的任何响应 - 甚至没有某种HTTP 5xx错误。这意味着整个PHP进程已经死亡而无法正常关闭。

这通常是而不是由超出memory_limit之类的东西引起的,因为PHP可以优雅地处理这些事情。这必须是某种Segmentation Fault或类似的。如果您有权访问错误日志,请检查它们。否则,您可能会得到托管公司的支持。

答案 1 :(得分:2)

如果要处理的文件太多,无论您的配置如何,您最终都会遇到此问题。即使您在服务器端禁用所有超时,客户端本身也有自己的安全功能,并且最终会在一段时间后超时 - 这是您无法控制的。

你做错了”在这里。由于这种协议限制(TCP,HTTP),您无法在HTTP请求中进行任何繁重的计算。

您的请求必须产生某种后台任务,以便不时通知其进度。使用仅使用PHP的共享主机,这可能不容易实现,因此您可能想要找到另一种执行繁重计算的方法。

答案 2 :(得分:1)

我实际上偶然发现了这个问题做了一个非常类似的事情,我的问题(如果它有助于任何人)是我每次调用我的函数时都在创建一个Object,即:

function myFunction($param) {
    ...
    // Create an object
    $obj = new MyObject();
    ...
}

我也改变了它:

function myFunction($param, $obj) {
    ...
    //Do stuff with $obj
    ...
}

// Create an object
$obj = new MyObject();
// Call Function
$myresult = myFunction($params, $obj);

Noob我知道,但希望这有助于其他人。

答案 3 :(得分:0)

当我在Google chrome

上遇到此问题时,清除Cookie已解决问题

答案 4 :(得分:0)

在使用ASP.NET MVC的IIS服务器上,由于我的HTTP状态代码描述包含换行符(ERR_CONNECTION_RESET),我在Google Chrome中意外生成了\r\n错误。

予。即这会产生错误:

public ActionResult Index()
{
    Response.StatusCode = 200;
    Response.StatusDescription = "This is a status code\r\nwith newline.";

    return View();
}

要解决此问题,我只需删除换行符。

另一个问题可能是状态代码说明为too long