Magento cron.php ничего не делает после запуска

10

Мой Magento cron работает нормально несколько месяцев назад. Но в последнее время это внезапно перестало генерировать график. Сама команда cron работает нормально на моем хостинг-сервере. Это Magento версии 1.8.0.0.

Вот что я попробовал:

  1. Я пытаюсь выполнить cron.php в браузере, и он не генерирует расписание в таблице cron_schedule.

  2. Установите расширение AOE Scheduler, надеясь, что оно решит проблему. Я могу создать расписание, используя это расширение, но Magento Cron не может выполнить расписание Cron.

  3. Установите свежую версию Magento 1.8.0.0 на хост-сервере, а затем выполните cron.php в браузере, таблица cron_schedule по-прежнему пуста.

  4. Установите свежую версию Magento 1.8.0.0 на мой локальный хост, а затем запустите cron.php в браузере, он сгенерирует расписание. Поэтому я пытаюсь загрузить его на сервер хостинга. Я очищаю кеш Magento, затем выполняю cron.php в браузере, что на удивление ничего не происходит в таблице cron_schedule. Но это прекрасно работает в моем localhost.

У меня есть другой сайт Magento версии 1.7.0.2 на том же хостинг-сервере, cron работает нормально.

Я до сих пор не знаю, в чем причина этой проблемы, поэтому выкладываю ее здесь. Надеюсь, что у кого-то возникнет такая же проблема, и поделитесь решением.

Wakanina
источник
2
Я столкнулся с подобной проблемой несколько месяцев назад. Интерпретатор php командной строки имел отдельную конфигурацию php.ini, а memory_limit был слишком мал, чтобы задания cron не выполнялись. Не уверен, что это ваша проблема.
Fiasco Labs
Memory_limit составляет 256M, и это команда, которую я использую /usr/bin/wget http://www.mysite.com/cron.php >/dev/null 2>&1.
Ваканина

Ответы:

24

Я нашел решение на форумах ( ссылка больше не онлайн )

Ранее я пытался установить Magento 1.7.0.2 на свой хостинг-сервер, и cron работает нормально. Поэтому я предположил, что мой хостинг не может работать с Magento 1.8.0.0 cron, поэтому я планировал понизить свой сайт Magento до 1.7.0.2. Но прежде чем перейти на мой сайт, я нашел решение по ссылке выше.

  • Редактировать файл cron.php
  • После $isShellDisabled = (stripos(PHP_OS, ‘win’) === false) ? $isShellDisabled : true; примерно # 47 добавить эту строку кода

    $isShellDisabled = true;

И теперь My Magento 1.8.0.0 cron работает отлично.

Wakanina
источник
В моем случае я работаю на сервере, который дал мне только головную боль из-за неоднозначной конфигурации. Это был единственный способ заставить cron работать.
pspahn
Это работает для wget, но лучше изменить имя на eq cron89128923489.php;)
user956584
Это сработало и для меня. Вероятно, это связано с ограничениями доступа к оболочке.
Даниэль Вест
Ссылка имеет MageBayVaporated ...
Fiasco Labs
Я объяснил, почему этот обходной путь работает и каково реальное решение здесь: magento.stackexchange.com/questions/137130/…
Фабиан Шменглер,
11

Решение, данное Ваканиной, сработало для меня. Однако изменение файла cron.php было неприемлемым в нашей политике. Странно то, что я развернул свой сайт на двух серверах (с одной и той же ОС, версией PHP) и на одном сервере он выполняет задачи cron, когда выполняется cron.php, а на другом сервере ничего не происходит.

Поэтому пришлось попробовать лучшее решение, которое сохранит мой апгрейд сайта.

Вместо выполнения cron.php, я теперь выполнение cron.sh через crontab -eпоскольку Linux используется в качестве серверной ОС.

Ракеш Шевале
источник
2
Вот как это должно быть сделано.
Робби Аверилл
2

Проблема не magento_root/cron.phpбыла установлена ​​на сервере crontab. Нам нужно добавить этот файл в crontab, чтобы он работал для нас следующим образом.

# crontab -l (this command will list all the Cron jobs in Crontab)

Там должна быть запись для файла magento_root / cron.php. Если нет, нам нужно добавить этот файл, потому что этот файл отвечает за запуск ваших заданий Magento Cron. Поэтому нам нужно отредактировать Crontab следующим образом.

# crontab -e

Добавьте следующую инструкцию в файл и закройте после сохранения.

* / 5 * * * * wget -O / dev / null -q path_to_magento_root / cron.php> / dev / null

Для получения дополнительной информации посетите эту ссылку

Сайида
источник