【问题标题】:How can I keep the connection between Apache and PHP alive on long running scripts?如何在长时间运行的脚本上保持 Apache 和 PHP 之间的连接?
【发布时间】:2022-02-04 14:58:59
【问题描述】:

所以这是我的问题。我有一个 PHP 脚本,可以将大的 CSV 文件导入数据库,在 Apache 上作为 Cronjob 运行。它工作得很好,但是随着文件变大,我现在得到 FastCGI 错误,并且脚本没有运行到最后。 我问了我的 Web-Hoster,他们告诉我我需要在运行时在我的脚本中使用“KeepAlive”或“Apache Communication”,因为 Apache 会关闭连接,认为 PHP 脚本不再运行,因为脚本只是读取数据从文件,格式化数据,然后将其写入数据库。在该过程中,必须发生超时。 我无法通过 .htaccess 使用“KeepAlive”指令,我尝试在每个处理的行之后回显一些内容,但这没有帮助。而且我无权访问 apache.conf 或 php.conf,但我对 php.ini 的权限有限。 任何帮助都会很棒,因为我现在没有想法。 :/

【问题讨论】:

  • 这能回答你的问题吗? Increase PHP-FPM idle timeout setting
  • 感谢您的链接。不幸的是,我无法访问 Apache 或 PHP 配置,所以我无法尝试解决方案。
  • running as a Cronjob on Apache为什么这是一个http请求而不是调用相关的php脚本?
  • 服务器提供者仅通过 WGET 和 URL 提供 Cronjobs 中 PHP 脚本的执行。

标签: php apache keep-alive


【解决方案1】:

你说你不能修改 PHP ini 文件来增加连接超时时间,所以如果这不是一个选项,你应该将 CSV 文件拆分为更小的文件并相应地修改你的 php 脚本以单独处理 CSV 文件

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-11
    • 1970-01-01
    • 1970-01-01
    • 2019-02-12
    • 2015-08-09
    • 1970-01-01
    • 1970-01-01
    • 2016-11-26
    相关资源
    最近更新 更多