【问题标题】:PHP Fatal error: Max execution time exceeded - EVEN after set_time_limit(0)PHP 致命错误:超过最大执行时间 - 甚至在 set_time_limit(0) 之后
【发布时间】:2014-01-11 19:52:12
【问题描述】:

我在运行我的脚本时不断遇到以下 PHP 错误

致命错误:C:\wamp\apps\sqlbuddy1.3.3\functions.php 第 22 行的最大执行时间超过 30 秒

我已经将它放在我的 PHP 文件中,但我仍然收到此错误消息。

@set_time_limit(0);

我错过了什么吗?

Edit:此错误仅在几分钟后出现,而不是在 30 秒后出现。是不是也有什么东西耽误了它的出现?

【问题讨论】:

  • 永远不要EVER在调试时使用@,尤其是当事情明显不正常时。你相当于把手指塞进耳朵里然后“拉拉拉拉听不到你的声音”。
  • 我不确定你的意思?我应该删除“@”吗?那只是为了调试吗?
  • @ 是错误抑制运算符。如果 set_time_limit 已被禁用,您将收到警告。但是你已经用@ 压制了这个警告,所以是的......“lalalala 听不到你告诉我它不起作用,因为我不想听”

标签: php runtime-error


【解决方案1】:

set_time_limit()在安全模式下运行时无效:

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

您可以使用phpinfo() 检查safe_modemax_execution_time 的值。


鉴于您使用的是 Windows 并且在 30 秒之后遇到超时,您可能在代码中的其他地方重置了超时 (set_time_limit(30)):

set_time_limit() 函数 [..] 只影响脚本本身的执行时间。在确定脚本运行的最长时间时,不包括在脚本执行之外发生的活动所花费的任何时间,例如使用 system() 的系统调用、流操作、数据库查询等。 这在 Windows 上是不正确的,测量的时间是真实的。

在您的代码中搜索:

  • ini_set('max_execution_time', 30)
  • set_time_limit(30)

【讨论】:

  • 您应该在单独的问题中询问(如果尚未回答)。
【解决方案2】:

与其依赖 PHP 文件来更改 php.ini 设置,不如自己动手。找到为 WAMP 保存 php.ini 的位置,并更改/添加此行:

max_execution_time = 500;

【讨论】:

  • 我已经在 php.ini 中修改过了 (max_execution_time = 10000)
【解决方案3】:

有一个PHP 配置不允许脚本更改time_limit

您可以在 php.ini 文件上更改您的 PHP 行为

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-17
    • 2011-01-09
    • 2013-09-03
    • 2014-04-20
    • 2011-12-02
    • 2011-07-07
    相关资源
    最近更新 更多