Moodle

Материал из ALT Linux Wiki

Задача

Установить Moodle используя под apache2, используя локальный MySQL сервер. (Примерно так, как описано в документации, см. Настройка Moodle в среде Альт Линукс 5.0 Школьный Сервер.)

Установка

Установка пакетов

Потребуется установка следующих пакетов:

  • moodle — код Moodle. По зависимостям вытягивает php5 и необходимые модули.
  • moodle-lang-ru_utf8 — пакет русской локализации (по умолчанию присутствует только английская локаль).
  • moodle-apache2 — настройки apache2 для работы Moodle. По зависимостям вытягивает apache2 и apache2-mod_php5.
  • moodle-local-mysql — По зависимостям вытягивает MySQL-server и php5-mysql.

Создание и настройка БД

Будем использовать БД со следующими параметрами:

  • имя — moodle
  • пользователь — moodleuser
  • пароль — moodlepasswd

При условии локального MySQL сервера и отсутствии пароля для MySQL пользователя root, можно использовать следующую последовательность команд (см. Создание базы данных):

$ mysql -u root
mysql> CREATE DATABASE moodle DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE TEMPORARY TABLES,DROP,INDEX,ALTER ON moodle.*
       TO moodleuser@localhost IDENTIFIED BY 'moodlepasswd';
mysql> quit

$ mysqladmin -u root reload

Запуск web инсталлятора

Дальнейшая установка Moodle выполняется через web инсталлятор, запускаемый при обращении по URL вида http://<ip>/install.php

Создание config.php

См. Запуск установочного файла для создания файла config.php

Конфигурационные файлы Moodle:

/var/www/webapps/moodle/config.php
основной файл конфигурации
/etc/sysconfig/mt-plugins
параметры плагинов, в частности, плагина аутентификации через LDAP

Первичная настройка

См. # 6 Переход к странице администратора для продолжения конфигурации

Специфика ALT Linux

При установке пакета installed-db-office-server-moodle (в репозиториях p5 и p6 пакет назывался installed-db-office-server) Moodle получает следующие возможности:

Выставление пароля администратора

При установке дистрибутива или смене пароля системного администратора (root) он меняется и в Moodle (имя администратора admin) (хук /usr/lib/alterator/hooks/root.d/installed-db). То есть при установке дистрибутива ALT Linux с Moodle (например, Информика 6.0 Школьный Сервер) можно сразу зайти под администратором:

Адрес: https://<имя сервера>/moodle/
Имя пользователя: admin
Пароль: такой же, как указали при установке для системного администратора

Аутентификация в ALT-домене

При использовании ALT-домена Moodle настраивается для аутентификации через LDAP (принимает пользователей, заведённых в домене) (хук /etc/hooks/hostname.d/94-moodle-ldap).

Фактически после создания домена в файле /etc/sysconfig/mt-plugins должны быть указаны два параметры:

<?php

$default_plugins_params = array(
        'auth_plugin_ldap' => array(
                'host_url' => 'ldap://localhost',
                'contexts' => 'ou=People,<DN домена>',
...

В командной строке они прописываются так:

DOMAIN=ou=People,`cat /etc/openldap/ldap.conf | grep "^base" | sed 's/^base //'`
mt-install-auto --install=no --lang=ru --plugins-setparams  --wwwrootnew --wwwrootsitename=$(hostname) --ldaphosturl=ldap://localhost --ldapcontexts="$DOMAIN" --authinsert='ldap'

К сожалению, contexts может не прописываться в старых версиях пакета installed-db-office-server. Добавьте его вручную, как показано выше.

TODO:
И это тоже не работает...


Coderunner

Для использования плагина Coderunner необходимо установить пакет moodle-qtype_coderunner и выполнить под root:

# control sudo public

Решение проблем

Запуск инсталлятора

Для запуска установщика нужно зайти на http://ip-адрес/moodle

Не удается инициализировать сессию PHP

После установки Moodle 2.5 (а возможно и прочих версий 2.x) невозможно зайти на сайт, появляется ошибка:

Не удается инициализировать сессию PHP; пожалуйста, убедитесь, что Ваш браузер принимает cookies.

Решение:

В /var/www/webapps/moodle/config.php добавляем строчку

$CFG->dbsessions='0';

перед строкой

require_once(dirname(__FILE__) . '/lib/setup.php');

Жмем Продолжить

Hostname

По умолчанию Moodle определяет локальный адрес хоста и требует, чтобы заходили по полному имени. Если имя хоста на сервере при установке полноценное не задано, то к Moodle можно обратиться из графической среды самого сервера (зайти обычным пользователем в консоли и запустить

startx

Затем в Firefox зайти на страницу https://localhost.localdomain/moodle.

Пользователь-администратор: admin, пароль такой же, как задавали у администратора во время установки. Заполняем поля со звёздочкой и применяем изменения.

Дальше меняем имя хоста. Это делается в двух местах:

1. в базе: открываем в браузере страницу https://localhost.localdomain/moodle/admin/tool/replace/

  • В первом поле указываем localhost.localdomain
  • Во втором поле — имя хоста, видимое из нужной сети (локальной или глобальной)
  • Устанавливаем флажок «I understand the risks of this operation»
  • Нажимаем кнопку «Yes, do it now»

2. замена в конфигурационном файле. В консоли сервера под root:

subst 's/localhost.localdomain/<имя хоста>/' /var/www/webapps/moodle/config.php

Теперь можно попробовать зайти под нормальным именем.

Ссылки