0

我正在尝试使用 /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”),并且其配置中没有任何限制会产生这样的错误。

我还环顾四周,看看是否有任何 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) 路径 => /etc/php5/cli” & “加载的配置文件 => /etc/php5/cli/php.ini”
  • 将 fpm 的 php.ini 上的 max_execution_time 设置为 61 只是为了查看它是否是意外使用它。
4

2 回答 2

1

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

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

set_time_limit(0);

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

于 2013-10-29T10:23:26.757 回答
0

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

于 2013-10-29T10:30:06.373 回答