Если запуск из командной строки, то так:
/usr/bin/php /path/to/moodle/admin/cli/cron.php
Если запускать веб-скрипт, то так:
/usr/bin/wget http://your.moodle.site/admin/cron.php
Если запуск из командной строки, то так:
/usr/bin/php /path/to/moodle/admin/cli/cron.php
Если запускать веб-скрипт, то так:
/usr/bin/wget http://your.moodle.site/admin/cron.php
Да настроил, прописал в файле crontab строку с примера http://docs.moodle.org/26/en/Cron
должен каждые 15 минут запускаться.
Как бы теперь проверить, ну по-идее надписи в Уведомлениях быть не должно.
Спасибо.
Как бы теперь проверить
Посмотреть /var/log/cron или нет?
Видимо нет, в этом каталоге нет такого файла. Будем искать
Вот нашел в /var/log/syslog
Feb 6 15:39:01 sdo CRON[11340]: (root) CMD ( [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -depth -mindepth 1 -maxdepth 1 -type f -cmin +$(/usr/lib/php5/maxlifetime) ! -execdir fuser -s {} 2>/dev/null \; -delete)
Feb 6 15:39:01 sdo CRON[11339]: (CRON) info (No MTA installed, discarding output)
Это нормально?
Ubuntu ?
Это не по теме cron+Moodle, это запуск скрипта РНР для очистки сессий: http://webenterprise.ru/remove-old-php-sessions-in-debian
Feb 6 15:39:01 Цитата: "Жестко заданны 9 и 39 минут…"
Да, Ubbuntu. То есть это лог не говорит о том, что cron работает и запускается каждые 15 минут?
Нет не могу я логи cron найти. Поставил для пробы резервное копирование на ближайшее время полчаса прождал, в папке указанной не появились бэкапы. Я в панике, как еще можно проверить работу cron? Подскажите, пожалуйста.
Это значит, что cron работает, а интервал запуска заданий задан в файле конфигурации.
Эта запись в syslog говорит о том, что cron работает и каждые 9-ю и 39-ю минуту запускается скрипт, который никакого отношения к Мудл не имеет.
Для Moodle добавьте к записи в crontab вывод логов в отдельный файл, например:
*/15 * * * * /usr/bin/php /path/to/moodle/admin/cli/cron.php >/var/log/moodlecron.log 2>&1
и изучайте moodlecron.log
Спасибо, у меня так и написано. Значит все работает.
Вадим, добавил перенаправление в файл по Вашему образцу, но файл moodlecron.log не создается. Его же не нужно заранее создавать, насколько я понял. читал про перенаправление здесь хотел узнать что такое "2>&1" Узнал, понял. Но файл не создается
Узнал, понял. Но файл не создается
Видимо, не все поняли
Ошибок нет, потому и файл не создается. 2>&1 - это как раз вывод ошибок. Хотите писать всё подряд в файл - уберите 2>&1, хотите писать в режиме добавления, а не затирания предыдущих записей, поставьте >>/var/log/… вместо >
Выходные прошли не трогал ничего, зашел в Уведомления там надпись Скрипт не запускался более 24 часов. То есть он не работает увы!
Разобрались, вроде работает. Оказывается в Ubuntu crontab он разный бывает. Один в etc который я и правил, а другой в каком-то tmp уже не помню, где точно. Вот они и не могли как следует синхронизироваться.
Единственный легальный способ изменить crontab - это "crontab -e"
Он уж точно знает где нужно исправить файл и как об этом повестить службу.
После изменения файла вручную нужно положить в определенный каталог файл с именем пользователя у которого изменено расписание, crond проверяет этот файл и перечитывает изменения (именно этим и занимается crontab).
Правда можно поступить по варварски и перезапустить cron для обновления расписания.
Всем здравствуйте! Пытаюсь настроить cron через crontab (ubuntu server 14.04, apache2, moodle 2.7.13, php 5.5.9). В консоли пишу под своим пользователем:
sudo crontab -u www-data -e
*/15 * * * * /usr/bin/php /path/to/moodle/admin/cli/cron.php >/var/log/moodlecron.log 2>&1
Может я лишние пробелы ставлю? все равно пишет cron не запускался более 24 часов?
*/15 * * * * www-data /usr/bin/php /var/www/html/admin/cli/cron.php >/var/log/moodlecron.log 2>&1
Я делала, как написано здесь:
у меня работало...
нет, все как на скриншоте выше
Спасибо, cron заработал, но если не писать >/var/log/moodlecron.log 2>&1
Какие-то права нужны на запись? Пока пусть так.
Снова пробую настроить cron на новом сервере, все прописал вроде, но не работает и всё. Ubuntu 16 Moodle 3.1 Что сделал:
1. crontab -e прописал строку так же как и на старом сервере с проверкой в лог.
* 15 * * * /usr/bin/php /var/www/moodle/admin/cli/cron.php > /home/user-moodle/moodlecron.log
2. Для проверки работы запускаю в командной строке
$ /usr/bin/php /var/www/moodle/admin/cli/cron.php
Выдает ошибку и предупреждение:
Warning: require(/var/patch/config.php): failed to open stream: Permission denied in /var/path/moodle/admin/cli/cron.php on line 33
Fatal error: require(): Failed opening required '/var/path/config.php' (include_path='.:/usr/share/php') in /var/path/moodle/admin/cli/cron.php on line 33
Что-то с правами? Поставил вроде как на старом сервере, ну никак. В лог ничего не пишется
33 строка такая же как и на старом сервере.
Может с PHP что не так, на старом 5.6 был, здесь 7.0 Хотя php - v все равно старую версию показывает.
В чем дело может быть подскажите уважаемые?
прописал строку так же как и на старом сервере
А где пользователь, от чьего имени запускается крон? crontab -e - это вы для пользователя, под которым в ОСи работаете, крон настроили, а нужно для Апач: crontab -u www-data -e (в Ubuntu вроде Апач-пользователь www-data?)
Выдает ошибку и предупреждение:
Значит пользователь, под которым запускаете команду, не имеет прав на каталог/файл
Через sudo пробуйте
И что-то странное: /var/patch/config.php - это конфиг moodle? /var/path/moodle/admin/cli/cron.php - это что за путь? А в крон прописано /var/www/moodle/admin/cli/cron.php
crontab -u www-data -eоказался пустой.
sudo /usr/bin/php /var/www/moodle/admin/cli/cron.phpС этим то как бороться?
!!! <p>Error: database driver problem detected</p>
<p>The site administrator should verify server configuration</p><p>PHP has not been properly configured with the MySQLi extension for it to communicate with MySQL. Please check your php.ini file or recompile PHP.</p> !!!
sudo /usr/bin/php7.0 /var/www/moodle/admin/cli/cron.php
То есть указал конкретно версию, скрипт отработал. Может как некорректно удалил 5.6 Так как php -v настойчиво показывает 5.6, а вот phpinfo 7.0 Может остатки 5.6 где-то мешают?
Может как некорректно удалил 5.6 Так как php -v настойчиво показывает 5.6, а вот phpinfo 7.0 Может остатки 5.6 где-то мешают?
Естественно.
Команды /usr/bin/php -v и /usr/bin/php -m покажут РНР 5.6.х и модули для этой версии. И, похоже, что для РНР 5.6 не подключено расширение php_mysqli, поэтому ошибка «Error: database driver problem detected»
Если установлен РНР 7.0 в отдельный каталог, то во всех командах нужно писать /usr/bin/php7.0
А как его удалить правильно? Или он и не мешает? Можно оставить7
Удалил версию 5.6
apt-get remove --purge php5.6
php -v теперь показывает
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/20160303/pdo_mysql.so' - /usr/lib/php/20160303/pdo_mysql.so: undefined symbol: pdo_parse_params in Unknown on line 0
PHP 7.1.4-1+deb.sury.org~xenial+1 (cli) (built: Apr 11 2017 22:12:32) ( NTS )
Copyright (c) 1997-2017 The PHP Group Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies with Zend OPcache v7.1.4-1+deb.sury.org~xenial+1, Copyright (c) 1999-2017, by Zend Technologies
То есть версия 7.1 хотя в отчете moodle /admin/phpinfo.php показывает 7.0
Скрипт из консоли заработал без указания версии
sudo /usr/bin/php /var/www/moodle/admin/cli/cron.php
Но выдает в начале предупреждение.
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/20160303/pdo_mysql.so' - /usr/lib/php/20160303/pdo_mysql.so: undefined symbol: pdo_parse_params in Unknown on line 0Что ему еще нужно?
pdo_mysql для работы Мудл не требуется. Можно удалить расширение, можно отредактировать /etc/php/7.0/mods-available/pdo_mysql.ini, закомментировав строку extension=pdo_mysql.so, чтобы не подгружалось расширение. Не забываем рестартануть Апач sudo service apache2 restart
Если расширение нужно для других сайтов, попробуйте обновить софт и расширение.
Выполнение команды : /usr/bin/php /var/www/site.ru/moodle/admin/cron.php
Выдает: Could not open input file: /var/www/site.ru/moodle/admin/cron.php