PHP Max执行时错误,即使我从CLI运行

时间:2013-10-29 10:21:25

标签: magento nginx php

我正在尝试使用/ shell中的命令“php indexer.php --reindex catalog_url”通过命令行重新索引我的catalog_url_rewrite表(Magento网站)。我收到以下错误:

PHP Fatal error:  Maximum execution time of 60 seconds exceeded in /var/www/domain.com/lib/Zend/Db/Statement.php on line 141

错误的文件和行有所不同。

我已经仔细检查确认命令行中的php确实使用了php-cli版本(使用“php -i”)并且其配置中没有限制应该产生这样的错误。< / p>

我还环顾四周看看是否有任何magento文件手动设置“set_time_limit”,但找不到任何指向那种方式的文件。我无法在任何地方找到60秒的max_execution_time。

对于发生了什么有任何想法?

编辑:

到目前为止,我已经尝试过:

  • 正在运行“php -d max_execution_time = 0 indexer.php --reindex catalog_url”
  • 设置“set_time_limit(9000);”在indexer.php上直接。
  • 运行“php -i”查看“配置文件(php.ini)Path =&gt; / etc / php5 / cli”&amp; “已加载的配置文件=&gt; /etc/php5/cli/php.ini”
  • 将fpm的php.ini上的max_execution_time设置为61只是为了看它是不是偶然使用它。

2 个答案:

答案 0 :(得分:1)

PHP的cli版本可能使用不同的php.ini,而不是PHP的Web服务器版本。

您可以通过添加此行来删除脚本执行时间限制(在<?php indexer.php之后)

set_time_limit(0);

Src:http://php.net/manual/en/function.set-time-limit.php

答案 1 :(得分:0)

这取决于您的Web服务器安装(Apache2 PHP,FPM ...),但您可能会为CLI执行找到不同的php.ini。只需在cli / php.ini配置文件中设置时间限制,然后重新加载Web服务器配置。