【问题标题】:Are PHP scripts run using the "php" command affected by the timeout limit?PHP 脚本是否使用受超时限制影响的“php”命令运行?
【发布时间】:2011-08-27 17:00:50
【问题描述】:

PHP 脚本是否使用“php”命令运行受超时限制影响?我打算使用 cron 来安排 php 脚本。

【问题讨论】:

    标签: php timeout cron crontab


    【解决方案1】:

    是的,但您可以通过将其添加到脚本顶部来设置无限超时:

    set_time_limit(0);
    

    【讨论】:

      【解决方案2】:

      某些系统,例如 Ubuntu,实际上已经在 /etc/php5 中使用单独的 CLI 和 Apache 配置启动。

      ini文件中的相关命令为:

      max_execution_time = 30      ; Maximum execution time of each script, in seconds
      

      但是,如果您由于某种原因无法修改 php.ini,您可以创建一个新的 php.ini,其配置设置有利于命令行,并指向该文件,如下所示:

      php -c /path/to/ini/php.ini -f script.php

      或者,您可以使用 Cailin 的解决方案,并在文件顶部设置时间限制 - 但如果您在启用了 PHP“安全模式”的服务器上运行,那么您将不得不使用自己的 ini 文件。

      【讨论】:

      • 投反对票的原因是?没有反馈就很难改进……
      • 不确定,但可能投票者正在寻找自定义配置文件的内容
      • 我不知道为什么投反对票,但我唯一的想法是如何判断服务器是否处于 PHP 安全模式。希望对@HorusKol 有所帮助
      【解决方案3】:

      视情况而定。如果您的 php 二进制文件是 PHP CLI 接口,则默认 max_execution_time 为零(表示没有限制)。

      另一方面,如果它是旧式 CGI 二进制文件,您将受到 max_execution_time 限制的影响,您需要调用 set_time_limit 来摆脱它(假设您不在可怕的 PHP 安全模式)。

      【讨论】:

        猜你喜欢
        • 2012-11-20
        • 2013-04-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-16
        • 2012-05-03
        • 2015-11-11
        相关资源
        最近更新 更多