Cron в Windows
Участвуют два различных способа создания триггера процесса Moodle Cron в операционных системах Windows.
Пакет Moodle cron
Используйте пакет Moodle Cron. Самый простой способ — использовать этот небольшой пакет MoodleCron-Setup.exe, который упрощает всю процедуру, устанавливая небольшую службу Windows. Запустите его и забудьте о нём! :-)
Чтобы использовать это, вам нужно отключить выполнение Cron только из командной строки (в разделе Администрирование → Безопасность → Настройки безопасности сайта).
Запланированная задача wget или php
Если вы предпочитаете использовать встроенный планировщик Windows или у вас возникли проблемы с пакетом moodle-cron-for-windows, вы можете использовать wget для Windows или php из командной строки и настроить планировщик задач. Просто выполните следующие шаги:
- Выберите либо php.exe/php-win.exe (исполняемый файл командной строки), либо wget.
Исполняемый файл php.exe или php-win.exe (для версии PHP 5 или выше) установлен в вашей папке php (например, c:\php) и обеспечит более высокую производительность при запуске скрипта cron.
Если вы хотите использовать wget, скачайте скомпилированную версию wget для Windows с портативных версий GNU Win32 (http://unxutils.sourceforge.net/), со страницы Heiko Herold's wget для Windows (http://xoomer.virgilio.it/hherold/) или со страницы Bart Puype's wget для Windows (http://users.ugent.be/~bpuype/wget/). Если вы используете пакет Heiko Herold, скопируйте все файлы .DLL в каталог C:\Windows\system32. Скопируйте файл wget.exe в c:\windows (это гарантирует, что wget всегда будет в пути поиска).
Примечание: если вы используете версию wget, обязательно проверьте настройки Cron, чтобы убедиться, что разрешён «веб-сервис» Cron.
- Проверьте вашу запланированную задачу. Вы можете проверить, что ваша запланированная задача мож ет успешно выполниться, щёлкнув по ней правой кнопкой мыши и выбрав «Выполнить». Если всё настроено правильно, вы кратко увидите окно командной строки DOS, пока wget/php выполняется и извлекает страницу cron, а затем оно исчезнет. Если вы обновите папку запланированных задач, вы увидите, что столбец «Последнее время выполнения» (в подробном представлении папки) отражает текущее время, а столбец «Последний результат» отображает «0x0» (всё прошло нормально). Если что-то из этого отличается, вам следует перепроверить вашу настройку.
- Логирование вывода cron. Вы можете захотеть логировать вывод скрипта cron во время его выполнения, если вы видите, что задание выдаёт ошибки, резервные копии не завершаются или пользователи испытывают задержки при получении электронных писем форума. Для этого настройте команду так, чтобы она использовала php.exe и сохраняла вывод в файле с именем (например, c:\moodle\admin\cron.log). Вот пример команды php.exe:
c:\php\php.exe -f c:\moodle\admin\cli\cron.php > c:\moodle\admin\cli\cron.log
Если у вас возникают проблемы с логированием вывода cron.php в текстовый файл с помощью вышеуказанной команды, прочитайте это сообщение Иньяки Ареназы о другом способе логирования вывода Cron.
Другой метод — создать на вашем сервере небольшой пакетный файл, который выполняет всю работу, и настроить планировщик задач на вызов этого файла. Вот пример пакетного файла, который сохраняет вывод cron в файл и удаляет файлы журналов старше 5 дней.
@echo off
set phppath="C:\Program Files (x86)\PHP\v5.3\php.exe"
set cronpath="C:\moodle\moodle-test\wwwroot\admin\cli\cron.php"
set logpath="D:\moodle\moodle-test\cronlogs"
%phppath% -f %cronpath% >> %logpath%\%date:~10,4%%date:~4,2%%date:~7,2%.log
Forfiles /P %logpath% /S /M *.log /D -5 /C "cmd /c del /q @path"
== Cron в среде Windows 10/Xampp == Настройка задачи Cron в Xampp выполняется с помощью Планировщика задач. Использование wget или MoodleCron затруднительно и ненадё жно. Используйте строку:
c:\php\php.exe -f c:\moodle\admin\cli\cron.php > c:\moodle\admin\cli\cron.log
в диалоговом окне «Действие» и убедитесь, что вы правильно установили время.