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.
È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top