Magento переиндексирует из командной строки, по-прежнему возникает ошибка тайм-аута

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

  •  16-10-2019
  •  | 
  •  

Вопрос

Я пытаюсь переиндексировать мою таблицу catalog_url_rewrite (веб-сайт Magento) через командную строку, используя команду "php indexer.php --переиндексировать catalog_url" в /shell.Я получаю следующую ошибку:

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 --переиндексировать catalog_url"
  • Установка "set_time_limit(9000);" на indexer.php напрямую.
  • Запускаем "php -i", чтобы увидеть "Путь к файлу конфигурации (php.ini) => /etc/ php5/ cli" и "Загруженный файл конфигурации => /etc/ php5/cli/php.ini"
  • Устанавливаем max_execution_time в php.ini fpm равным 61, просто чтобы посмотреть, не использовал ли он его случайно.
  • Убедился, что "set_time_limit(60)" нигде жестко не задано в среде magento.
Это было полезно?

Решение

Я уже сталкивался с этим.Проблема в том, что сценарии оболочки расширяются Mage_Shell_Abstract наследует поведение, применяющее настройки PHP ini, проанализированные из Magento .htaccess файл.

Взгляните на этот метод protected function _applyPhpVariables() в shell/abstract.php.

Самое простое решение - это просто отредактировать .htaccess и прокомментируйте php_value директивы для execution_time и или memory_limit.В качестве альтернативы вы можете расширить индексатор, переопределив applyPhpVariables() метод и остановить его обработку .htaccess.

Я сделал значительные пожертвования в свой swear jar, когда впервые обнаружил эту "функцию".

Другие советы

Попробуйте запустить это из корневого каталога установки Magento:

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

Если эта команда завершается с той же ошибкой, значит, происходит что-то сумасшедшее.:)

Следует отметить, что команды оболочки Magento анализируют файл htaccess и применяют найденные настройки (например, ограничение по времени).Я бы проверил ваш файл htaccess.

Смотрите этот пост, который я написал некоторое время назад:http://edmondscommerce.github.io/magento/magento-shell-scripts-and-memory-limit-woes-solution.html

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top