Настройка планировщика (Cron)

Варианты команд для планировщика

Конфигураций серверов множество и универсальной команды не существует. Некоторые серверы и хостинги используют разные версии PHP, что делаем составление крон задачи еще более сложным. Есть несколько команд, которые не завязаны на системное окружение и работают практически всегда:

 wget -O /dev/null -q http://ваш-домен.ru/cron.php
 curl -s http://ваш-домен.ru/cron.php > /dev/null

Следующие команды с использованием консольного PHP, следовательно путь должен быть указан согласно системного расположению файла cron.php:

 php -f /полный_путь_до_tds/cron.php
 php-cli /полный_путь_до_tds/cron.php > /dev/null

Примечание: Желательно запускать команды в консоли сервера, чтобы убедиться в их работоспособности

По каким причинам может не работать крон?

1. Путь до файла cron.php неправильный.

Проверить можно, запустив команду из консоли сервера (SSH). Включите в настройках крона уведомление на Email, чтобы получать результат запуска.

2. Ошибка при запуске cron.php

Посмотрите логи ошибок var/log/errors.log и keitaro_errors.log. Включите в настройках крона уведомление на Email, чтобы получать результат запуска.

3. У консольной версии PHP не подключен ioncube.

Проверить можно, запустив команду крона из консоли сервера.

4. Используется curl (wget), который не установлены на сервере.

Попробуйте оба варианта: с wget и с curl. Обратите внимание, что при использовании curl и wget в команде должен быть прописан URL файла, а не его системный путь.

5. Запускается PHP старой версии.

Частый случай на хостингах с поддержкой нескольких версий PHP. Посмотрите у хостера в документации по крону, как выполнять PHP-скрипты.

Если не удалось выявить причину. Обратитесь, пожалуйста, сначала в саппорт хостера. Им лучше известно, как настраиваются кроны на их серверах.

Как узнать путь до скрипта cron.php?

Путь до директории домена можно узнать в phpinfo, создав php-скрипт с кодом:

 <?php phpinfo(); ?>

cPanel

  1. Зайдите на страницу «Cron Jobs»;
  2. Добавьте новую задачу в разделе «Add New Cron Job»:

cpanel.jpg

ISPManager 4

Зайдите на страницу «Система > Планировщик». Нажмите на кнопку «Создать».

ISPManager 5

Зайдите в аккаунт вашего пользователя. Если добавите крон задачу под root, то у вас могут быть позже ошибки с правами доступа. Зайдите в раздел «Пользователи», выберите пользователя и сверху нажмите «Войти». isp_login.jpg

Зайдите на страницу «Система > Планировщик», нажмите сверху «Создать». Включите экспертный режим. Введите команду, что получили во время установки, во всех остальных полях поставьте * (звездочку).

Direct Admin

  • Minute: *
  • Hour: *
  • Day of Month: *
  • Month: *
  • Day of Week: *

Command: wget -O - -q -t 1 http://domain.com/cron.php

Vesta

  • Минута: *
  • Час: *
  • День: *
  • Месяц: *
  • День недели: *
  • Команда php -f /home/ЛОГИН/web/ДОМЕН/public_html/cron.php

Crontab (Ubuntu, CentOS, Debian)

Выполните:

$ crontab -e

Откроется редактор VIM. Нажмите «i», затем вставьте:

* * * * * php /полный_путь_до_tds/cron.php

Нажмите ESC и наберите команду :wq, Enter. Должно выйти сообщение, что крон обновлен.

Jino.ru

Задание:

php5.6 ~/cron.php
  • Минуты: * (если не дает, то 0, 05, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55)
  • Часы: *
  • Дни: *
  • Месяцы: *
  • Дни недели: *

Подробнее в документации хостера https://www.jino.ru/help/faq/cron/cron-add/#cron-add

Timeweb.ru

1. Зайдите в раздел «Crontab».

2. Добавьте задачу:

  • Тип файла Исполняемый бинерный файл;
  • Периодичность Каждая минута;
  • Нажмите на кнопку выбора файла, выберите cron.php.
  • Затем добавьте перед строкой /opt/php5.6/bin/php (обратите внимание на пробел между двумя частями команды).

В случае, если включили PHP 7.0 у сайта, используйте /opt/php7.0/bin/php.

timeweb.jpg

Если не работает:

  1. Проверьте на странице «Настройки > Производительность», что хранилище для обработчика выбрано «Файлы» или «MySQL», но НЕ «Redis».
  2. На странице Crontab (в панели timeweb) включите уведомления на email (Кнопка «Указать ящик»). Так вы сможете плучать уведомления о работе крона.

Sprinthost.ru

1. Зайдите на странице «Дополнительно > Планировщик»;

2. Найдите форму добавления задания.

3. Пропишите команду, заменив LOGIN и DOMAIN на свои:

/usr/local/bin/php /home/LOGIN/domains/DOMAIN/public_html/cron.php

Sweb.ru

1. Зайдите на страницу «CRONTAB»

2. Добавьте задачу. В интервалах пропишите * (звездочки).

3. Пропишите команду:

php5.6 /путь_до_директории_tds/cron.php

Версию php ставьте согласно той, что стоят в настройках сайта.

Beget.ru

Reg.ru

1. Зайдите на страницу «Версии PHP». Посмотрите какая версия PHP выбрана. 2. Пропишите путь до php согласно выбранной версии. Например для PHP 7.0 путь /opt/php/7.0/bin/php (обратите внимание, что путь без «-cgi»).