Как мне исправить эту ошибку при запуске задания cron для Moodle 3.9?

#php #cron #ubuntu-18.04 #moodle #lampp

#php #cron #ubuntu-18.04 #moodle #lampp

Вопрос:

У меня есть сайт Moodle, работающий на localhost. Кажется, все работает нормально, но, похоже, я не могу запустить задание cron. Я продолжаю получать ошибку при попытке запуска sudo -u www-data /usr/bin/php /opt/lampp/htdocs/moodle/admin/cli/cron.php из командной строки.

 !!! <p>Error: Database connection failed</p>
<p>It is possible that the database is overloaded or otherwise not running properly.</p>
<p>The site administrator should also check that the database details have been correctly specified in config.php</p> !!!
  

Moodle устанавливается в Lampp ( /opt/lampp/htdocs/ ), и это мой конфигурационный файл. Мои данные moodle находятся в /var/moodledata Я сменил пользователя для базы данных, использовал пароль, но ничего не работает.

 $CFG->dbtype    = 'mariadb';
$CFG->dblibrary = 'native';
$CFG->dbhost    = 'localhost';
$CFG->dbname    = 'moodle';
$CFG->dbuser    = 'root';
$CFG->dbpass    = '';
$CFG->prefix    = 'mdl_';
$CFG->dboptions = array (
  'dbpersist' => 0,
  'dbport' => '',
  'dbsocket' => '',
  'dbcollation' => 'utf8mb4_unicode_ci',
);

$CFG->wwwroot   = 'http://localhost/moodle';
$CFG->dataroot  = '/var/moodledata';
$CFG->admin     = 'admin';

$CFG->directorypermissions = 0777;
  

Комментарии:

1. То есть вы имеете в виду, что ваш сайт Moodle запущен (вы можете просматривать его, создавать курсы и т. Д.), Но cron не работает из-за ошибки подключения к БД?

2. @Dolfa Да, точно. Я могу создавать курсы, просматривать их и переходить к администрированию сайта и другим вещам. Но всякий раз, когда я пытаюсь настроить задание cron, я получаю эту ошибку в терминале. Но я запускаю moodle на localhost. Я не уверен, имеет ли это значение.

3. Это единственная ошибка? Разве он не жалуется на проблему с разрешениями? (Например, невозможно создать каталог.) В этом случае я бы проверил, работаете ли вы cron.php с тем же пользователем / разрешением, что и фактический веб-сервер. Вы пытались запустить cron.php с помощью sudo?

4. @Dolfa я пытался запустить sudo . Кроме того, я изменил права доступа к папке 777 на . Я не уверен, что вы имеете в виду под тем же пользователем / разрешением, что и веб-сервер acutal. Кроме того, когда я запускаю /usr/bin/wget http://localhost/moodle/admin/cron.php , я получаю !!! Sorry, internet access to this page has been disabled by the administrator. !!!

Ответ №1:

Вам нужно снять флажок «Администрирование сайта / Общие / Безопасность / Настройки безопасности сайта / Выполнение Cron только через командную строку» для запуска cron с URL.