Cron в Unix или Linux
В Unix и Linux используется встроенная программа cron, которая является стандартной практически для всех систем. Вам необходимо добавить команду в «crontab» (таблицу, содержащу ю команды cron) для пользователя веб-сервера.
Есть два разных способа вызвать процесс Moodle cron:
Примечание: показанные команды необходимо добавить в crontab для функционирования (описано ниже). Однако вы можете — и должны — запустить их в командной строке, чтобы сначала проверить, работают ли они.
Метод 1: cron в командной строке (cli)
Если у вас есть выбор, это обычно лучший способ запустить Moodle cron.
PHP также способен запускать программы непосредственно из командной строки. Ваша система должна быть настроена для этого; в частности, вам нужна установленная версия PHP для CLI. В большинстве систем с установленным PHP это есть по умолчанию. Если у вас установлена версия PHP CLI, то это рекомендованный метод вызова cron. Правильная команда будет выглядеть примерно так...
/usr/bin/php /path/to/moodle/admin/cli/cron.php
(замените правильный путь к moodle и для php по мере необходимости)
Вы можете просто ввести это в командной строке, чтобы проверить, работает ли это. Если вы не уверены в пути к PHP, вы можете ввести which php.
Совет: если у вас возникли проблемы, см. страницу PHP. В частности, проверьте альтернативный php.ini для команды CLI PHP, который может не иметь подходящих настроек.
Метод 2: веб-версионный cron
Примечание: чтобы использовать веб-скрипт cron, вы должны сначала проверить Настройки cron, чтобы убедиться, что этот метод разрешён.
Идея состоит в том, чтобы вызвать следующую веб-страницу (вы можете попробовать это из своего браузера):
http://url.of.your/moodle/admin/cron.php
Для запуска этого на сервере нужен браузер на основе командной строки (текстовый). Возможные варианты следующие (например, в OSX поставляется только curl)...
/usr/bin/wget -q -O /dev/null/ http://url.of.your/moodle/admin/cron.php
(вывод не отображается — удалите -O /dev/null/ для тестирования)
...ИЛИ...
/usr/bin/curl http://url.of.your/moodle/admin/cron.php -o /dev/null/ -silent
(вывод не отображается — удалите -o /dev/null/ -silent для тестирования)
Использование программы crontab в Unix/Linux
После того как вы выбрали (и протестировали!) соответствующую команду для вызова Moodle cron, её необходимо добавить в «crontab» пользователей веб, чтобы запланировать её регулярное выполнение. «Crontab» — это файл, содержащий команды cron пользователя, а также название программы командной строки, используемой для его редактирования. Используйте следующую команду (от имени root), заменив правильного пользователя на «www-data» (например, «apache» для CentOS, «www-data» для Debian/Ubuntu, «_www» для macOS — Google знает!)
# crontab -u www-data -e
Откроется окно редактора (в первый раз может спросить, какой редактор использовать). Добавьте команду в конец файла следующим образом (он может быть пустым или содержать некоторые инструкции):
* * * * * /usr/bin/php /path/to/moodle/admin/cli/cron.php
Первые пять записей * указывают время, за которым следует команда для запуска. Это означает запуск команды как можно чаще, т. е. каждую минуту.
См. https://en.wikipedia.org/wiki/Cron#CRON_expression для подробностей о выражениях cron.