Настройка Cron (устарело)
При запуске cron.php запускается пересчет статистики, проводится мониторинг и чистка старых данных.
Варианты команд для планировщика
Конфигураций серверов множество и универсальной команды не существует. Некоторые серверы и хостинги используют разные версии 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
Примечание: Желательно запускать команды в консоли сервера, чтобы убедиться в их работоспособности
Что делать, если крон не выполняется?
Проверьте лог ошибок на этой же странице. Откройте в браузере cron.php. Если время обновилось, тогда необходимо перенастроить планировщик задач.
По каким причинам может не работать крон?
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?
cPanel
- Зайдите на страницу «Cron Jobs»;
- Добавьте новую задачу в разделе «Add New Cron Job»:
ISPManager 4
ISPManager 5
Зайдите в аккаунт вашего пользователя. Если добавите крон задачу под root, то у вас могут быть позже ошибки с правами доступа. Зайдите в раздел «Пользователи», выберите пользователя и сверху нажмите «Войти».
Зайдите на страницу «Система > Планировщик», нажмите сверху «Создать». Включите экспертный режим. Введите команду, что получили во время установки, во всех остальных полях поставьте *
(звездочку).
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
.
Если не работает:
- Проверьте на странице «Настройки > Производительность», что хранилище для обработчика выбрано «Файлы» или «MySQL», но НЕ «Redis».
- На странице 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. Пропишите команду:
/usr/bin/php5.6 /путь_до_директории_tds/cron.php
Версию php ставьте согласно той, что стоят в настройках сайта.
Beget.ru
- Выберите «Произвольная команда».
- Укажите команду
/usr/local/php-cgi/7.0/bin/php ~/site.ru/public_html/cron.php
(Используйте ту же верси PHP, что выбрана для сайта). - Нажмите «Каждую минуту».
Reg.ru ISP Manager
Зайдите на страницу «Версии PHP». Посмотрите какая версия PHP выбрана.
Пропишите путь до php согласно выбранной версии. Например для PHP 7.0 путь /opt/php/7.0/bin/php
(обратите внимание, что путь без «-cgi»).
Reg.ru Хостинг
- Зайдите в Панель управления хостингом - Вкладка «Веб Сервер» - «Планировщик заданий».
- Напишите название задание и нажмите создать.
- Проставьте галочками все дни, часы, минуты.
- В пункет “выполняемая программа” используйте команду:
cd $HOME/папка_сайта/docs/папка_скрипта/ && php $HOME/папка_сайта/docs/папка_скрипта/имя_скрипта.php
где:
- cd $HOME/папка_сайта/docs/папка_скрипта/ — переход в каталог, в котором размещен скрипт;
- $HOME/папка_сайта/docs/папка_скрипта/имя_скрипта.php — полный путь к скрипту.
Полный путь до Cron.php вы можете посмотреть на вкладке «Веб-сервер» - «Файловый менеджер»
FastVPS ISP Manager
Команда для PHP 7.1 /opt/php71/bin/php /путь_до_файла/cron.php
Команда для PHP 7.0 /opt/php70/bin/php /путь_до_файла/cron.php
Just-hosting.ru ISP Manager
Посмотрите текущую версию PHP у своего сайта:
Пропишите команду для крона, согласно используемой версии:
- Команда для PHP 5.6
~/php-bin-isp-php56/php /путь_до/cron.php
. - Команда для PHP 7.0
~/php-bin-isp-php70/php /путь_до/cron.php
.
ihc.ru
Зайдите в настройки хостинга. Посмотрите какая версия PHP включена и перейдите на страницу «Cron».
Добавьте новую задачу:
Заполните настройки:
- Периодичность
Произвольный
* * * * *
- Команда
/usr/local/phpXX/bin/php /путь_до_cron.php
Команда формируется относительно выбранной версии PHP:
- Для PHP 5.4
/usr/local/php54/bin/php /путь_до_cron.php
- Для PHP 5.6
/usr/local/php56/bin/php /путь_до_cron.php
- Для PHP 7.0
/usr/local/php70/bin/php /путь_до_cron.php
- Для PHP 7.1
/usr/local/php71/bin/php /путь_до_cron.php
Hostiman.ru
Сначала убедитесь, что сайт и системный PHP одной версии:
- Зайдите на страницу «WWW > WWW-домены». Посмотрите какая версия задана у сайта.
- Зайдите на страницу «WWW > PHP». Выберите ту же версию нажмите сверху «Как CGI».
Теперь на страницу «Планировщик».
Впишите команду, заменив ДОМЕН на ваш домен
php -f ~/www/ДОМЕН/run/cron.php
Переключите расписание на «Экспертный режим» и впишите во все поля звездочки *
.
Ukraine.com.ua
Зайдите в «Мои сайты», выберите сайт и нажмите «Настройка PHP (php.ini)»:
Проверьте какая версия PHP используется:
Теперь перейдите на страницу «Расписание задач (Cron)».
Нажмите «Добавить задачу».
Теперь нужно составить команду. Она такого формата:
/usr/local/php56/bin/php -c /home/bfXXXXXXX/.system/php/www.DOMAIN.ini -f /home/bfXXXXXXX/DOMAIN/www/cron.php
/usr/local/php56/bin/php
— путь до нужной версии php-c /home/bfXXXXXXX/.system/php/www.DOMAIN.ini
— путь до файла конфигурации php-f /home/bfXXXXXXX/DOMAIN/www/cron.php
— путь до файла cron.php
Следовательно, bfXXXXXXX
и DOMAIN
замените на свои.
Время запуска переключите на «Свой вариант».