Frage

Ich versuche, meine Tabelle catalog_url_rewrite (Magento -Website) über die Befehlszeile zu neu zu rücken, indem ich den Befehl "PHP Indexer.php -Reindex Catalog_url" in /Shell. Ich bekomme den folgenden Fehler:

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

Die Datei und Zeile des Fehlers variieren.

Ich habe doppelt überprüft, um zu bestätigen, dass PHP in der Befehlszeile tatsächlich die PHP -CLI -Version verwendet (unter Verwendung von "PHP -i") und dass in seiner Konfiguration keine Grenzen enthalten, die einen solchen Fehler ergeben sollten.

Ich habe mich auch umgesehen, ob eine Magento -Datei die "set_time_limit" manuell festgelegt hat, konnte aber nichts finden, was auf diese Weise zeigt. Ich kann die 60 Sekunden max_execution_time nirgendwo finden.

Irgendeine Idee, was los ist?

Bearbeiten:

Bisher habe ich versucht:

  • Ausführen "php -d max_execution_time = 0 indexer.php --reindex catalog_url"
  • Einstellung "set_time_limit (9000);" auf Indexer.php direkt.
  • Ausführen von "Php -i", um "Konfigurationsdatei (php.ini) path =>/etc/php5/cli" & "geladene Konfigurationsdatei => /etc/php5/cli/php.ini geladen" anzuzeigen.
  • Einstellen von max_execution_time auf fpms php.ini auf 61, um zu sehen, ob es versehentlich verwendet wurde.
  • Stellen Sie sicher, dass "set_time_limit (60)" nirgendwo im Magento -Framework festcodiert ist.
War es hilfreich?

Lösung

Ich bin darauf getroffen. Das Problem ist, dass sich Shell -Skripte erstrecken Mage_Shell_Abstract Verhalten, das PHP INI -Einstellungen anwendet, analysiert von Magento's .htaccess Datei.

Schauen Sie sich die Methode an protected function _applyPhpVariables() in shell/abstract.php.

Die einfachste Lösung ist nur zu bearbeiten .htaccess und kommentieren Sie die php_value Richtlinien für execution_time und oder memory_limit. Alternativ können Sie den Indexer erweitern, indem Sie das überschreiben applyPhpVariables() Methode und stoppen es die Verarbeitung der Verarbeitung der .htaccess.

Ich habe große Spenden an mein Schimpfglas gemacht, als ich diese "Funktion" zum ersten Mal entdeckte.

Andere Tipps

Versuchen Sie, dies aus der Wurzel der Magento -Installation auszuführen:

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

Wenn dieser Befehl mit demselben Fehler fehlschlägt, ist etwas Verrücktes vor sich. :)

Eine Sache, die darauf hinweist, ist, dass Magento -Shell -Befehle die HTAccess -Datei analysieren und Einstellungen (wie z. B. Zeitlimit) anwenden, die sie findet. Ich würde Ihre HTaccess -Datei überprüfen.

Sehen Sie diesen Beitrag, den ich vor einiger Zeit geschrieben habe:http://edmondscommerce.github.io/magento/magento-shell-scripts-and-memory-limit-woes-solution.html

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top