【问题标题】:Fatal error: Maximum execution time of 0 seconds exceeded致命错误:超过 0 秒的最大执行时间
【发布时间】:2011-02-02 00:37:21
【问题描述】:

我的脚本比较了 2 个源代码树,创建了可能更改的文件的映射,比较了 MD5 哈希值并创建了一个差异包。

28000-29000个文件后,PHP终止脚本报错:

致命错误:/root/_PACKER-TESTER/core/diff.class.php 第 67 行的最大执行时间超过 0 秒(标准 in_array() 调用)

我已经尝试将max_input_time 设置为高值(或零) - 什么都没有。

max_execution_time 设置为 99999999999999 什么都不做......同样的错误。

【问题讨论】:

  • 您的 999..999 时间限制大约是 47 位数字,远高于 PHP 的 32 位限制。
  • 您是否在安全模式下运行? (docs for set_time_limit)...
  • Marc B - 对于这篇文章,我只按了 9 次,不计算有多少 :) Ofkz 在代码中我不超过 32 位 :)
  • ircmaxell - 不,我正在以 root 权限从控制台运行。顺便提一句。安全模式已弃用
  • @kiler:我知道它已被弃用,但安全模式与控制台或 root 权限无关。这是一个 php.ini 设置...

标签: php command-line-interface execution-time litespeed


【解决方案1】:

尝试在php.ini 中设置max_input_time = -1,或使用set_time_limit(-1)。这对我有用,而无需重建 PHP。

This article 解释得很好。

【讨论】:

  • 像魅力一样工作,我遇到了同样的错误,设置 max_input_time = -1 完成了工作。谢谢
  • 这不行 - LSAPI_* 设置比 php.ini 具有更高的优先级 - 由于 LSAPI 实施的限制,管理员可以无风险地授予用户访问 php.ini 的某些选项的权限。
  • 只是想补充一点,设置0-1 似乎会产生相同的效果。感谢这一点,更新max_input_time 是必要的(在代码中使用set_time_limit 并没有改变任何与max_execution_time 相关的东西,而max_execution_time 对我来说已经设置为0)。错误消息似乎输出了 max_execution_time 设置的任何内容,即使它实际上是触发超时的 max_input_time 设置。 Ubuntu 14.04 上的 PHP 5.5.9
【解决方案2】:

问题解决了,php 使用 litespeed api (lsapi) 构建有额外的 env 变量来确定 ma​​x 执行时间 - LSAPI_MAX_PROCESS_TIME(默认为 300 秒)。

【讨论】:

  • 请将您自己的答案标记为已接受以帮助他人。我认为如果您将 CLI 环境添加到您的标签/问题中会很酷。
  • 默认为 300,但是否设置为零?
  • MAX_PROCESS_TIME 与 php 设置的时间限制不同。 litespeed 技术添加了最大处理时间,以防止恶意脚本循环数月无所事事[set_time_limit() 是 cpu 时间,而不是实时]。 LSAPI 触发内部 php 超时机制,我将其报告给 LiteSpeed 技术。因此,LSAPI_* env 变量的优先级高于 php 值 - 在共享环境中非常酷,用户无法在全局限制之上运行脚本,除非他获得 LiteSpeed Web 服务器配置文件或 Web 面板访问权限:)
【解决方案3】:

如果您能够设置时间限制,请尝试set_time_limit() 并检查 phpinfo():

set_time_limit(60*60);phpinfo();exit;

【讨论】:

  • set_time_limit() 似乎没有帮助。我m running script from console on dedicated server (Im 根)。
  • 此限制在 CLI 中无效。
【解决方案4】:

我发现“超过 0 秒的最大执行时间”可能是由于代码进入无限循环造成的。

例如:

while (true) { ... }

对我造成了这个错误。

如果它不是环境变量(如前所述),我会检查 php 报告的行号上的错误信息

【讨论】:

  • 无限循环总是一个问题,但有些脚本运行时间很长,而且必须运行很长时间。所以你的答案在这里不合适。
猜你喜欢
  • 2011-01-09
  • 2013-09-03
  • 2014-04-20
  • 2011-12-02
  • 2011-07-07
  • 2015-12-06
相关资源
最近更新 更多