代码之家  ›  专栏  ›  技术社区  ›  revo shanwije

处理PHP-FPM和PHP文件设置的执行时间

  •  -2
  • revo shanwije  · 技术社区  · 6 年前

    我已经准备好了 request_terminate_timeout PHP-FPM池配置文件中的指令 100s 我准备好了 set_time_limit(600) 600s 从不应用我不期望的东西。

    可以保留吗 请求\终止\超时 在单个PHP文件中为最大执行时间设置更高的值时,是否全局执行?

    1 回复  |  直到 6 年前
        1
  •  3
  •   Lorenzo S    6 年前

    我以前也遇到过类似的问题。 不完全确定它是否适合你的问题,但我试着把所有的东西都记录下来,以确保给出“安全”的提示。

    php-fpm.conf 大部分是不可改变的 ini_set() ,和 set_time_limit 几乎就是一个 convenience wrapper .

    应该只“覆盖” max_execution_time 指令,因为

    它们只影响脚本本身的执行时间

    official documentation ).

    另一方面, request_terminate_timeout 与FPM相关,所以我们在这里讨论的是流程管理级别:

    应在“max\u execution\u time”ini选项未停止时使用 出于某种原因执行脚本。

    所以,为了回答这个问题,我认为问题是你试图把FPM处理的东西混合起来( )以及由PHP本身处理的东西( ).

    用max\u execution\u time代替request\u terminate\u timeout(但用它来表示实际的最大上限),应该可以解决这个问题。

    最长执行时间 官方文件中的描述暗示了这一常见问题,即:

    您的web服务器可以有其他超时配置,这些配置也可能 中断PHP执行。Apache有一个Timeout指令,而IIS有一个Timeout指令 CGI超时功能。两者都默认为300秒。查看web服务器 具体细节文件。

    注意:这个公式中的一些变量甚至可以依赖于Web服务器(例如:读取超时)。