【问题标题】:Maximum execution time of 30 seconds exceeded every time每次超过 30 秒的最大执行时间
【发布时间】:2011-11-05 17:43:21
【问题描述】:

每次我的 php 脚本向我发送“超过 30 秒的最大执行时间”。有没有办法向访问者显示自定义错误而不是这个大错误消息。我的意思是我们可以在这个地方使用我们自己的错误消息吗?

【问题讨论】:

    标签: php


    【解决方案1】:

    您可能在某处有一个无限循环。您可以在自己的机器上调试 PHP(在内部添加调试打印等)

    【讨论】:

    • 但是如何在我自己的机器上调试php
    • 在其上安装 Web 服务器和 PHP 环境。安装 Linux 发行版可能是值得的(因为大多数 Web 服务器都是 Linux 机器)。
    • 但我已经检查了我所有的循环,它们绝对正确。我还有什么问题吗?另一个问题是我正在使用 file_get_contents 获取数据并且它没有提供所有结果。
    • 我不知道。不要忘记循环可能很难找到en.wikipedia.org/wiki/Halting_problem
    • 另外,它可能不是一个无限循环......它可能只是一个需要很长时间才能处理的循环(超过 30 秒超时)。您是否在任何循环中处理大量数据或生成大量输出?这可能是问题所在。
    【解决方案2】:

    在你的 php 脚本的顶部添加这个

    set_time_limit(0);
    ini_set('max_execution_time', 0);
    

    这意味着您的脚本有无限的时间来执行脚本,但是如果您将 0 替换为 500 等秒数,则可以将其限制为 x 秒。但是如果您有错误,例如无限循环脚本永远不会停止,如果 100 的访问者点击脚本,您的服务器可能会死掉。

    【讨论】:

      【解决方案3】:

      通过插入来固定你的无限循环

      die('got here...');
      

      在顶部并在脚本中将其向下移动,您会很快找到有问题的代码。真正的调试更顺畅,但需要一些设置。

      一个功能性的 php 脚本通常需要不到一秒的时间来执行。

      问候,

      ///t

      【讨论】:

        猜你喜欢
        • 2013-04-01
        • 2019-04-07
        • 2018-08-01
        • 2014-01-20
        • 2011-05-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多