Добавить в корзинуПозвонить
Найти в Дзене

Ошибка не настроен запуск cron events php на cron последний агент отработал больше суток назад

Ошибка “не настроен запуск cron events php” и “cron последний агент отработал больше суток назад” указывает на проблему с автоматическим выполнением задач (cron events) в вашем PHP приложении, вероятно, в контексте WordPress или другой CMS/фреймворка, использующей систему cron. Это означает, что запланированные события, требующие регулярного выполнения, не запускаются, что может привести к сбоям в работе сайта, таких как: Вот шаги по диагностике и устранению этой проблемы: 1. Проверьте, активен ли WordPress Cron (если это WordPress): 2. Настройка системного Cron (самый распространенный способ): 3. Проверьте настройки Cron в вашем приложении (если это не WordPress): 4. Проверьте логи Cron: 5. Проверьте права доступа к файлу wp-cron.php (или вашему cron-файлу): 6. Проверьте, не блокирует ли ваш сайт Cron: 7. Альтернативные решения для WordPress: 8. Логирование внутри cron-скрипта: Пример логгирования в PHP: <?php
$log_file = '/path/to/your/cron.log';
$timestamp = date('Y-m-d H:i:s');

Ошибка “не настроен запуск cron events php” и “cron последний агент отработал больше суток назад” указывает на проблему с автоматическим выполнением задач (cron events) в вашем PHP приложении, вероятно, в контексте WordPress или другой CMS/фреймворка, использующей систему cron. Это означает, что запланированные события, требующие регулярного выполнения, не запускаются, что может привести к сбоям в работе сайта, таких как:

  • Не отправляются письма
  • Не публикуются запланированные записи
  • Не выполняются резервные копии
  • Не обновляются данные и т.д.

Вот шаги по диагностике и устранению этой проблемы:

1. Проверьте, активен ли WordPress Cron (если это WordPress):

  • По умолчанию WordPress использует свой собственный “псевдо-cron”, который запускается при посещении сайта. Если ваш сайт не посещается регулярно, cron-задачи не будут выполняться.
  • Включите настоящий Cron:Отключите WP-Cron в wp-config.php: Добавьте следующую строку в файл wp-config.php (обычно находится в корневом каталоге вашего WordPress сайта) над строкой /* Это всё, прекратите редактирование! Удачи в блоггинге. */:
    define('DISABLE_WP_CRON', true);
    Настройте системный Cron на сервере: Теперь вам нужно настроить настоящий Cron на сервере (через cPanel, Plesk или консоль), чтобы он запускал wp-cron.php регулярно.

2. Настройка системного Cron (самый распространенный способ):

  • Авторизуйтесь в панели управления вашим хостингом (cPanel, Plesk, DirectAdmin и т.д.).
  • Найдите раздел “Cron Jobs” или “Запланированные задачи”. Название может немного отличаться в зависимости от панели управления.
  • Создайте новую Cron-задачу.
  • Введите команду для выполнения Cron: Команда может быть разной, но вот несколько примеров (выберите подходящий для вашей системы):
    Через wget (самый распространенный):wget -q -O /dev/null https://yourdomain.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
    Замените https://yourdomain.com на URL вашего сайта. Опции -q -O /dev/null >/dev/null 2>&1 подавляют вывод команды, чтобы не засорять вашу почту.
    Через curl:curl -s https://yourdomain.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
    Замените https://yourdomain.com на URL вашего сайта. Опция -s подавляет вывод.
    Через PHP CLI (command-line interface):/usr/bin/php /path/to/your/wordpress/wp-cron.php
    Замените /usr/bin/php на путь к исполняемому файлу PHP CLI на вашем сервере (узнайте у вашего хостинг-провайдера, если не знаете). Замените /path/to/your/wordpress/wp-cron.php на полный путь к файлу wp-cron.php на вашем сервере.
  • Укажите расписание Cron: Выберите расписание, с которым нужно запускать wp-cron.php. Рекомендуется запускать его каждые 5-15 минут. Например, в cPanel можно выбрать “Every 5 minutes” или настроить вручную:Minute: */5 (каждые 5 минут)
    Hour: * (каждый час)
    Day: * (каждый день)
    Month: * (каждый месяц)
    Weekday: * (каждый день недели)
  • Сохраните Cron-задачу.

3. Проверьте настройки Cron в вашем приложении (если это не WordPress):

  • Если вы не используете WordPress, у вас может быть своя система для работы с cron events. Проверьте конфигурационные файлы вашего приложения (например, config.php, .env или другие файлы, определяющие настройки) на наличие параметров, связанных с cron, и убедитесь, что они правильно настроены.
  • Убедитесь, что путь к файлу PHP, который должен выполняться по расписанию, указан верно.
  • Проверьте, не отключены ли cron events в настройках вашего приложения.

4. Проверьте логи Cron:

  • Многие панели управления хостингом предоставляют доступ к логам Cron. Проверьте логи на наличие ошибок, связанных с выполнением ваших Cron-задач. Ошибки в логах могут дать подсказки о причине проблемы.

5. Проверьте права доступа к файлу wp-cron.php (или вашему cron-файлу):

  • Убедитесь, что файл wp-cron.php (или ваш файл cron) имеет права на выполнение. Обычно это 755 или 775.

6. Проверьте, не блокирует ли ваш сайт Cron:

  • Некоторые хостинг-провайдеры могут блокировать запросы к wp-cron.php (или аналогичному файлу) извне (например, через wget или curl), чтобы предотвратить злоупотребления. Свяжитесь с вашим хостинг-провайдером и убедитесь, что они не блокируют Cron.

7. Альтернативные решения для WordPress:

  • Использование плагинов для управления Cron: Существуют плагины для WordPress, которые упрощают управление Cron и предоставляют более удобный интерфейс для настройки расписания и мониторинга выполнения задач. Примеры: “WP Crontrol”, “Easy WP Cron”.
  • Использование внешних сервисов Cron: Есть внешние сервисы, которые могут выполнять Cron-задачи для вашего сайта. Это может быть полезно, если у вас проблемы с настройкой Cron на вашем сервере. Пример: “EasyCron”.

8. Логирование внутри cron-скрипта:

  • Внутри вашего PHP-скрипта, который выполняется Cron, добавьте логирование, чтобы понимать, когда он запускается, какие действия выполняет и не возникает ли ошибок во время выполнения. Это поможет вам отладить проблему.

Пример логгирования в PHP:

<?php
$log_file = '/path/to/your/cron.log';
$timestamp = date('Y-m-d H:i:s');

file_put_contents($log_file, $timestamp . " - Cron script started.\n", FILE_APPEND);

// Ваш код cron-скрипта здесь

file_put_contents($log_file, $timestamp . " - Cron script finished.\n", FILE_APPEND);

?>

Важно:

  • Замените yourdomain.com и /path/to/your/wordpress на правильные значения для вашего сайта.
  • Перед внесением изменений в системные настройки, сделайте резервную копию сайта и базы данных.
  • Если вы не уверены в своих силах, обратитесь к специалисту или к вашему хостинг-провайдеру за помощью.

После выполнения этих шагов, проверьте, работает ли ваш Cron и выполняются ли запланированные задачи. Если проблема остается, проверьте логи Cron и логи вашего приложения на наличие ошибок и обратитесь за помощью к специалистам.