【问题标题】:PHP Connection Reset on Large File Upload Regardless Correct Setting无论设置是否正确,大文件上传时的 PHP 连接重置
【发布时间】:2011-11-26 07:38:54
【问题描述】:

我遇到了一个非常常见的问题,似乎找到的所有可用解决方案都不起作用。

我们有一个正在接收大量流量的 LAMP 服务器。使用此服务器,我们执行定期文件提交上传。在小文件上传时,它可以完美运行。在大约 4-5MB 的文件上,此提交上传会间歇性地失败(有时它可以工作,但很多时候它失败了)。

我们的 PHP 有以下配置:

max_input_time: 600
max_execution_time: 600
max_upload_size: 10M
post_max_size: 10M

Apache 设置:

Timeout: 600
Keep-Alive Timeout: 15
Keep-Alive: On
Per Child: 1000
Max Conn: 100

因此,我想知道是否有人可以帮助我解决这个问题。我们在网上找到了问题和解决方案,但在我们的案例中都没有。

非常感谢。非常感谢任何输入/反馈!

【问题讨论】:

  • $_FILES 数组应该告诉你错误。
  • @Dagon 不幸的是,我们甚至无法生成 $_FILES,因为在上传过程中,会显示连接重置错误。
  • 如果您使用的是 php-fpm,请在 /etc/php5/fpm/php.ini 内更改 upload_max_filesize = 10M( NOT max_upload_size: 10M)(不是 /etc/php5/cli/php.ini)。如果您正在运行 nginx,请在 http 部分添加 client_max_body_size 200M; /etc/nginx/nginx.conf

标签: php large-data


【解决方案1】:

连接可能会在几个地方终止:

  1. 阿帕奇
  2. php.ini 中的帖子大小限制
  3. php.ini 中的内存限制
  4. 在 php.ini 中输入时间限制
  5. php.ini 或set_time_limit() 内的执行时间限制

我会增加所有这些,看看它是否仍然存在。但是你必须反弹 apache 才能使 php.ini 中的更改生效。

这些还受到最终用户的连接速度的影响,如果某些用户连接失败,那是因为他们的连接速度比其他用户慢,并且他们与服务器的连接正在终止。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-20
    • 2013-10-02
    • 2011-04-25
    • 1970-01-01
    相关资源
    最近更新 更多