Сегодня мы рассмотрим как настроить выполнение задач по расписанию с помощью CRON на виртуальном хостинге.
Cron (Command Run ON) — планировщик задач. Используется для выполнения команд и скриптов на сервере хостинга в определённое время. Планировщик cron доступен после заказа услуги хостинга Linux или Windows.
- Войдите в панель управления хостингом.
- В разделе «Главное» выберите пункт Планировщик и нажмите Создать:
- Заполните поля:
- Команда — введите команду для запуска, которая должна выполняться. Примеры команд приведены в разделе ниже,
- Описание — введите описание,
- Расписание — выберите тип расписания и в оставшихся полях задайте периодичность выполнения задания.Нажмите Ok:
Примеры команд для cron-заданий
Запуск задания через GET
Команда для запуска:
GET http://domain.kz/script.php
Где http://domain.kz/script.php — URL-адрес, при обращении к которому будет выполняться сron-задание.
Запуск задания через WGET
Альтернативный вариант команды для запуска:
wget -q -O - http://domain.kz/script.php > /dev/null 2>&1
Где http://domain.kz/script.php — URL-адрес, при обращении к которому будет выполняться cron-задание.
Запуск задания через CLI
При запуске задания через GET или WGET, PHP-скрипт запускается тем интерпретатором PHP, версия которого активирована в панели управления хостингом. Если вам необходимо выполнить скрипт под другой версией PHP, запустите cron-задание через CLI.
При этом, вы можете указать необходимую версию php интерпретатора, стандартный путь — /usr/bin/php
Полный путь к интерпретатору php в зависимости от версии для ISPmanager:
- версия php 5.4 /usr/bin/php
- версия php 5.6 /opt/php56/bin/php
- версия php 7.0 /opt/php70/bin/php
- версия php 7.1 /opt/php71/bin/php
- версия php 7.2 /opt/php72/bin/php
- версия php 7.3 /opt/php73/bin/php
- версия php 7.4 /opt/php74/bin/php
(узнать путь до php можно, выполнив командуwhereis php
в shell)
Команды для запуска:
- ISPmanager
/opt/php/7.4/bin/php -f /var/www/login/data/www/domain.kz/script.php
- Plesk
/opt/php/7.4/bin/php -f var/www/vhosts/login/httpdocs/domain.kz/script.php
Где:
7.4 — версия PHP
login — ваш логин хостинга
domain.kz — имя вашего домена,
script.php — имя файла с cron-заданием.
Обратите внимание: скрипты можно запускать через php (/opt/php/7.4/bin/php) и через php-cgi (/opt/php/7.4/bin/php-cgi). О том, какой режим подойдёт для работы скриптов, вы можете узнать у разработчиков вашего сайта.
Запуск задания через CLI с учётом параметров php.ini
Добавьте к командам ключ «-c» и пропишите полный путь до файла php.ini.
Команды для запуска:
- ISPmanager
Есть два варианта пути к файлу php.ini, который зависит от того, включена ли опция php.ini для домена.
Если вы храните настройки PHP отдельно для каждого домена по пути /var/www/php-bin/имя-домена/php.ini, то команда выглядит так:
/opt/php/7.4/bin/php -c /var/www/login/data/php-bin/domain.kz/php.ini -f /var/www/login/data/www/domain.kz/script.php
Если вы используете общую версию PHP и храните настройки для всех доменов по пути /var/www/php-bin-php(номер-версии)/php.ini, то команда выглядит так:
/opt/php/7.4/bin/php -c */var/www/login/data/php-bin-php(номер-версии)/php.ini* -f /var/www/login/data/www/domain.kz/script.php
- Plesk
/opt/php/7.4/bin/php -c /var/www/vhosts/login/php-bin/php.ini -f var/www/vhosts/login/httpdocs/domain.kz/script.php
Где:
7.4 — версия PHP
login — ваш логин хостинга
domain.kz — имя вашего домена,
script.php — имя файла с cron-заданием.
Как добавить новую задачу на хостинге Windows
Воспользуйтесь инструкцией для Plesk по инструкции выше.
Если в 4 пункте инструкции вы выбрали тип задачи Выполнить PHP-скрипт, в поле Путь к скрипту укажите путь к скрипту, а в поле Аргументы укажите аргументы скрипта в зависимости от модуля: На PHP На ASP/ASP.NET
Путь к скрипту:
C:\Program Files (x86)\Parallels\Plesk\Additional\PleskPHP74\php.exe
Где PleskPHP74 — версия PHP
Аргументы:
c:\inetpub\vhosts\login\httpdocs\domain.kz\script.php
Где:
login — ваш логин хостинга
domain.kz — имя вашего домена
script.php — имя файла с cron-заданием.
Как проверить работу CRON ?
1. В корне сайта создайте два файла:
my_cron.txt с правами 777.
my_cron.php с правами 755 или 751
Первый файл my_cron.txt (это наш лог, куда скрипт будет писать сообщения) оставьте пустым.
Второй файл my_cron.php откройте в редакторе и впишите примерно такой текст:
Код PHP:
<?php $fd = fopen("/home/user/mysite_kz/my_cron.txt","a"); fwrite($fd, "Обращение к файлу - ".date("d.m.Y H:i")."\r\n"); fclose($fd); ?>
Как Вы уже поняли, команда fopen(‘path_to_log’) содержит путь к логу. Часто этот путь следует указывать от корня хостинга (а не корня сайта). Естественно, на каждом хостинге (и для каждого Вашего сайта, если их несколько) этот путь будет различным.
Создайте в планировщике задачу в соответсвии с рекомедациями выше и указанием пути к нашему скрипту.
Приведенный выше пример запускает скрипт my_cron.php. Он пишет в лог my_cron.txt строчки вроде
Код PHP:
Обращение к файлу - 11.01.2019 21:13 Обращение к файлу - 11.01.2019 21:14 Обращение к файлу - 11.01.2019 21:15
Если видите аналогичные строчки — Планировщик работает.
Если лог пуст — значит Планировщик не работает. Вернитесь к началу данной статьт и проверитьте пути. Возможно, неправильно прописаны пути к интерпретатору php или вашему скрипту.
Свежие комментарии