コマンドラインからのMagento Reindex、まだタイムアウトエラーがあります

magento.stackexchange https://magento.stackexchange.com/questions/10095

  •  16-10-2019
  •  | 
  •  

質問

command "php indencer.php - reindex catalog_url" in /shellを使用して、コマンドラインを使用してCatalog_url_rewriteテーブル(Magento Webサイト)を再インドすることを試みています。次のエラーが発生します。

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 indencer.php -reindex catalog_url"の実行
  • 「set_time_limit(9000);」の設定Indencer.phpで直接。
  • 「php -i」を実行して、「構成ファイル(php.ini)path =>/etc/php5/cli」を表示します。
  • fpmのphp.iniでmax_execution_timeを61に設定して、偶然に使用しているかどうかを確認します。
  • 「set_time_limit(60)」がMagentoフレームワークのどこにもハードコードされていないことを確認しました。
役に立ちましたか?

解決

私はこれに出くわしました。問題は、シェルスクリプトが拡張されることです Mage_Shell_Abstract Magento'sから解析されたPHP INI設定を適用する動作を継承する動作 .htaccess ファイル。

この方法を見てください protected function _applyPhpVariables()shell/abstract.php.

最も簡単な修正は、編集するだけです .htaccess コメントします php_value の指令 execution_time およびまたは memory_limit. 。または、オーバーライドすることでインデクサーを拡張することもできます applyPhpVariables() メソッドとそれを停止します .htaccess.

この「機能」を最初に発見したとき、私は誓いの瓶にかなりの寄付をしました。

他のヒント

Magentoのインストールのルートからこれを実行してみてください。

php -d max_execution_time=0 ./shell/indexer.php --reindex catalog_url

このコマンドが同じエラーで失敗した場合、何か狂ったことが起こっています。 :)

指摘すべきことの1つは、Magento ShellがHTACCESSファイルを解析し、見つけた設定(時間制限など)を適用することです。私はあなたのhtaccessファイルを確認します。

私がしばらく前に書いたこの投稿を参照してください:http://edmondscommerce.github.io/magento/magento-shell-scripts-and-memory-limit-woes-solution.html

ライセンス: CC-BY-SA帰属
所属していません magento.stackexchange
scroll top