Magento reindex da linea di comando, continua ad avere errore di timeout
-
16-10-2019 - |
Domanda
Sto cercando di reindicizzare mio tavolo catalog_url_rewrite (sito web Magento) tramite la riga di comando utilizzando il comando "php indexer.php --reindex catalog_url" in / shell. Ottengo il seguente errore:
PHP Fatal error: Maximum execution time of 60 seconds exceeded in /var/www/domain.com/lib/Zend/Db/Statement.php on line 141
Il file e la linea sulla errore varia.
Ho ricontrollato per confermare che php nella riga di comando è infatti utilizza la versione di PHP-CLI (utilizzando "php -i") e che non ci sono limiti nella sua configurazione, che dovrebbe produrre un simile errore.
Ho anche guardato intorno per vedere se un qualsiasi file Magento è l'impostazione del "set_time_limit" manualmente, ma non ho trovato nulla che i punti in questo modo. Non riesco a trovare i 60 secondi max_execution_time ovunque.
Qualche idea su cosa sta succedendo?
Modifica:
Finora ho provato:
- Running "php -d max_execution_time = 0 indexer.php --reindex catalog_url"
- Setting "set_time_limit (9000);" su indexer.php direttamente.
- Running "php -i" per vedere "file di configurazione (php.ini) Path => / etc / php5 / CLI" e "File di configurazione Loaded => /etc/php5/cli/php.ini"
- Impostazione max_execution_time sul php.ini di FPM a 61 solo per vedere se stava usando per caso.
- fatto in modo "set_time_limit (60)" non è codificato in qualsiasi parte del quadro di Magento.
Soluzione
Ho eseguito in questo. Il problema è che l'estensione script di shell comportamento ereditare Mage_Shell_Abstract
che si applica PHP impostazioni ini analizzati dal file .htaccess
di Magento.
Date un'occhiata al metodo protected function _applyPhpVariables()
in shell/abstract.php
.
più semplice correzione, è quello di modificare solo .htaccess
e commentare le direttive php_value
per execution_time
eo memory_limit
. In alternativa, è possibile estendere l'indicizzatore sovrascrivendo il metodo applyPhpVariables()
e arrestarlo elaborazione del .htaccess
.
Ho fatto donazioni consistenti alla mia giurare vaso quando ho scoperto questo 'funzione'.
Altri suggerimenti
Provare a eseguire questo dalla radice di installazione di Magento:
php -d max_execution_time=0 ./shell/indexer.php --reindex catalog_url
Se questo comando non riesce con lo stesso errore, allora qualcosa di pazzo sta succedendo. :)
Una cosa da sottolineare è che i comandi della shell Magento analizzare il file .htaccess e si applicheranno le impostazioni (come ad esempio limite di tempo) che trova. Vorrei verificare il file .htaccess.
Vedere questo post che ho scritto qualche tempo fa: http://edmondscommerce.github.io /magento/magento-shell-scripts-and-memory-limit-woes-solution.html