【问题标题】:What defines the timeout period in PHP?什么定义了 PHP 中的超时时间?
【发布时间】:2012-11-26 19:54:41
【问题描述】:

说,我在 Apache 上运行 PHP。当有人发出客户端请求时(不管如何),什么定义了客户端等待的时间量,脚本运行? 这个选项是 Apache 的、PHP 的还是客户自己定义的? 另外,如果通过 curl 调用脚本呢?

【问题讨论】:

标签: php apache timeout


【解决方案1】:

见 PHP set_time_limit()

设置允许脚本运行的秒数。如果达到此值,脚本将返回致命错误。默认限制为 30 秒,如果存在,则为 php.ini 中定义的 ma​​x_execution_time 值。

请注意:

当 PHP 在安全模式下运行时,此功能无效。除了关闭安全模式或更改 php.ini 中的时间限制之外,没有其他解决方法。

您可能还对 ma​​x_input_time(通过 php.ini 设置)感兴趣

这设置允许脚本解析输入数据(如 POST 和 GET)的最长时间(以秒为单位)。从接收到服务器上所有数据的那一刻到开始执行脚本的时间。

【讨论】:

    【解决方案2】:

    php.ini中定义,参数称为max_execution_time

    您可以直接使用set_time_limitini_setphp.ini 进行更改。

    但是,其实你问的是

    客户端等待的时间,要运行的脚本

    恕我直言,它是无限的。我从未见过这样的时刻,服务器正在运行脚本并且浏览器拒绝等待。主要是保持脚本在服务器上运行。

    【讨论】:

    • 如果通过 curl 调用脚本会怎样?
    • @NikaGamkrelidze, max_execution_time 也影响 CURL。如果你想通过 CURL 从服务器 B 获取数据到服务器 A,如果服务器 B 运行脚本并且服务器 A 正在等待响应,那么必须在两边都设置 max_execution_time。如果 CURL 从服务器 B 获取的数据太大,但这次服务器 B 没有运行脚本,则仅更改服务器 A 上的限制会有所帮助。
    • @nikoloz :) 你必须明白max_execution_time 是服务器端限制,而不是用户端。如果脚本被调用,它将一直运行直到到达max_execution_time
    • 哦,错过了:cURL 也有 CURLOPT_TIMEOUT 选项。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-29
    • 1970-01-01
    相关资源
    最近更新 更多