【问题标题】:Maximum execution time of 300 seconds exceeded in超过 300 秒的最大执行时间
【发布时间】:2014-06-19 17:41:29
【问题描述】:

我知道这个主题有......很多重复的地方,但相信我,我已经花时间获取这些帖子,我的问题仍然没有答案。

我在 Debian Linux / Nginx / PHP-FPM / APC 上运行 PHP 脚本 / 我想就是这样。

我正在从我的 SSH 终端 (CLI) 执行脚本,例如:> php plzrunthisFscript.php &

它曾经完美地工作,但现在,它返回了这个著名的错误。

我已经尝试过但失败了(我的意思是它没有改变任何东西):

  • 检查 PHP.INI 与 phpinfo() 一起使用的内容;在我的脚本中(它是 /etc/php5/cli/php.ini)
  • 如果我没记错的话,CLI 的最大执行时间被硬编码为 0(意味着没有限制)。
  • 尝试在我的脚本开头添加:set_time_limit(0);
  • 尝试添加:ini_set('max_execution_time', -1);
  • 试图用参数-d max_execution_time=0执行我的php命令
  • 尝试从 Web 界面执行(由 Nginx 提供服务)
  • 尝试从另一个 Web 界面执行(这次是 Apache2 的 SErver)在页面上出现同样的错误。
  • 试图在/etc/php5/cli/php.ini 中配置max_execution_time 15 以检查是否应该使用的php.ini(因为我的脚本中的phpinfo() 是否被忽略:它被忽略了

每次,它都会带来这个错误,有时甚至在我认为超过 300 秒之后,这真的很令人困惑。

如果有人对如何解决此问题有任何想法,或者有一些我可以尝试的方法,请提出建议。

感谢您的宝贵时间。

【问题讨论】:

  • 您是否在安全模式下运行?
  • 嗯我不这么认为,我正在尝试找到一种方法来检查并告诉你。好的,借助一个简单的脚本测试<?php // Check for safe mode if( ini_get(‘safe_mode’) ){ echo “Safe mode is on”; }else{ echo “Safe mode is off”; } ?> 我得到了:安全模式已关闭。
  • 您是否已将您的脚本缩减为与 PHP 等效的 sleep 400 以确保它不是您的脚本中的错误?
  • 我不确定你的意思是什么?你建议我写一个简单的 php 脚本,里面有sleep(400);,然后尝试从 CLI 执行它?
  • 是的,就是这样 - 一个没有错误的简单脚本,耗时超过 300 秒。

标签: linux php command-line-interface


【解决方案1】:

天哪,我终于解决了!

我认为这在某种程度上可以被视为 Magento 错误。 以下是如何重现它:

您有使用 APACHE 2 运行的 Magento(我的版本是 CE 1.7)。 有一天,您决定摆脱 Apache 并尝试采用 Nginx。

您配置了所有内容,并且运行良好,但有一天您会遇到此错误,并像往常一样尝试重建索引。

事情是,当你运行时(例如):php indexer.php --reindex catalog_url & 该脚本包括另一个名为 abstract.php 的脚本,其中包含这个很棒的功能: protected function _applyPhpVariables()

此函数将在您的 Magento 根目录中查找 .htaccess,然后解析每个配置参数,并使用这些参数执行索引脚本。

多么聪明……

无论如何,要解决这个问题,您只需(删除/重命名/刻录)这个.htaccess 文件,然后一切都会恢复正常。

感谢大家的帮助。

【讨论】:

    猜你喜欢
    • 2014-07-05
    • 1970-01-01
    • 2011-12-02
    • 2015-05-14
    • 2020-04-29
    • 2013-04-01
    • 1970-01-01
    • 2019-04-07
    相关资源
    最近更新 更多