Moodle – это популярная платформа с открытым исходным кодом, используемая образовательными учреждениями по всему миру для создания онлайн-курсов, управления контентом и содействия совместному обучению. Запуск Moodle на Ubuntu является распространенным выбором благодаря стабильности, безопасности и поддержке широкого спектра программных пакетов. Процесс включает установку таких необходимых компонентов, как Apache или Nginx в качестве веб-сервера, MySQL или PostgreSQL в качестве базы данных и PHP в качестве языка сценариев, которые хорошо поддерживаются на Ubuntu. Такая настройка позволяет учебным заведениям создать надежную, масштабируемую и настраиваемую среду онлайн-обучения, которая может быть адаптирована к конкретным образовательным потребностям.
В этом руководстве мы покажем вам, как установить Moodle на сервер Ubuntu 24.04. Вы установите Moodle с помощью стека LAMP, а затем защитите Moodle с помощью UFW и HTTPS через Certbot и Letsencrypt.
Установка зависимостей
Moodle – это платформа для обучения с открытым исходным кодом, написанная на PHP. Для установки Moodle вам понадобятся Apache/Nginx, MySQL/MariaDB/PostgreSQL и PHP. В этом разделе вы установите стек LAMP (Linux, Apache, MariaDB и PHP) на Ubuntu и настроите Moodle на его основе.
Для начала выполните следующую команду и обновите индекс пакетов Ubuntu.
sudo apt update
Теперь выполните приведенную ниже команду для установки зависимостей стека LAMP (Apache, MariaDB и PHP). Введите ‘Y’, чтобы подтвердить установку.
sudo apt install apache2 mariadb-server php-cli php-intl php-xmlrpc php-soap php-mysql php-zip php-gd php-tidy php-mbstring php-curl php-xml php-pear php-bcmath libapache2-mod-php
После завершения установки проверьте состояние службы Apache с помощью следующей команды.
sudo systemctl is-enabled apache2 sudo systemctl status apache2
Ниже показано, что веб-сервер Apache запущен.
Проверьте сервер базы данных MariaDB с помощью следующей команды. Вы увидите, что сервер MariaDB запущен.
sudo systemctl is-enabled mariadb sudo systemctl status mariadb
И наконец, проверьте версию PHP и включенные расширения с помощью следующей команды:
php -v php -m
Вы увидите, что на вашем сервере Ubuntu установлен PHP 8.3.
Настройка сервера MariaDB
После установки зависимостей необходимо изменить используемый по умолчанию механизм хранения данных MariaDB на ‘InnoDB‘, который требуется Moodle. Это можно сделать, отредактировав конфигурацию сервера MariaDB. Кроме того, вы защитите развертывание сервера MariaDB с помощью ‘mariadb_secure_installation’ утилита.
Откройте файл конфигурации сервера MariaDB ‘/etc/mysql/mariadb.conf.d/50-server.cnf‘ с помощью редактора ‘nano’.
sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf
Добавьте следующую конфигурацию в папку ‘[mysqld]‘ раздел. Это изменит используемый по умолчанию механизм хранения на ‘innodb‘.
innodb_file_format = Barracuda default_storage_engine = innodb innodb_large_prefix = 1 innodb_file_per_table = 1
Сохраните файл и выйдите из редактора.
Теперь запустите программу ‘systemctl‘ команда ниже, чтобы перезапустить сервер MariaDB и применить изменения.
sudo systemctl restart mariadb
Наконец, запустите команду ‘mariadb_secure_installation‘ команда ниже, чтобы установить корневого пользователя MariaDB и защитить вашу установку.
sudo mariadb_secure_installation
В процессе вам будет предложено следующее:
- Для установки сервера MariaDB по умолчанию без пароля root нажмите ENTER, когда вас спросят о пароле.
- Локальная аутентификация для пользователей MariaDB root по умолчанию защищена, введите ‘n’, когда вас попросят изменить метод аутентификации на ‘unix_socket’.
- Введите ‘Y’, чтобы создать новый пароль для корневого пользователя MariaDB. Затем введите надежный пароль для корневого пользователя MariaDB и повторите.
- Когда появится запрос на отключение удаленной аутентификации для корневого пользователя MariaDB, введите ‘Y’, чтобы согласиться.
- Установка сервера MariaDB по умолчанию поставляется с базой данных ‘test’ и позволяет анонимному пользователю получить к ней доступ. Введите ‘Y’ для обоих параметров, чтобы удалить базу данных по умолчанию ‘test’ и убрать привилегию анонимного пользователя.
- И наконец, введите ‘Y’ для подтверждения привилегий перезагрузки таблиц.
Создание базы данных и пользователя
Теперь, когда вы настроили сервер MariaDB, давайте создадим новую базу данных и пользователя с помощью клиента ‘mariadb’.
Войдите на сервер MariaDB с помощью клиента ‘mariadb‘ клиентскую команду ниже. Введите пароль корня MariaDB, когда появится запрос.
sudo mariadb -u root -p
Теперь выполните следующие запросы для создания новой базы данных ‘moodle‘, пользователь ‘moodle‘, и не забудьте изменить пароль, указав свои данные.
CREATE DATABASE moodle DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; GRANT ALL ON moodle.* TO 'moodle'@'localhost' IDENTIFIED BY "MoodlePassw0rd"; FLUSH PRIVILEGES; QUIT
Настройка PHP
В этом разделе вы отредактируете конфигурацию PHP ‘php.ini’ и измените некоторые значения по умолчанию, которые требуются Moodle.
Откройте конфигурацию PHP ‘/etc/php/8.3/apache2/php.ini‘ с помощью ‘nano‘ редактор.
sudo nano /etc/php/8.3/apache2/php.ini
Измените конфигурацию по умолчанию следующим образом. Не забудьте настроить ‘memory_limit‘ и ‘дата_временной пояс‘ параметры с вашей информацией.
memory_limit = 256M upload_max_filesize = 60M max_execution_time = 300 date.timezone = Europe/Amsterdam max_input_vars = 5000
После этого сохраните файл и выйдите.
Наконец, выполните приведенную ниже команду, чтобы перезапустить веб-сервер Apache и применить изменения в PHP.
sudo systemctl restart apache2
Загрузка исходного кода Moodle
На данный момент вы установили и настроили стек LAMP. Давайте загрузим исходный код Moodle и настроим директорию установки Moodle.
Перейдите по ссылке ‘/var/www‘ каталог и загрузите исходный код Moodle, используя ‘wget‘ команда. Обязательно посетите Загрузка Moodle , чтобы получить ссылку на последнюю версию. В данном случае вы загрузите последнюю стабильную версию Moodle 40.4.
cd /var/www wget https://download.moodle.org/download.php/direct/stable404/moodle-latest-404.tgz
После загрузки Moodle распакуйте его с помощью ‘tar‘ команда ниже. Исходный код Moodle будет доступен в папке ‘/var/www/moodle’ каталог.
tar xvf moodle-latest-404.tgz
Наконец, выполните приведенную ниже команду, чтобы создать новый каталог данных ‘/var/www/moodledata‘, измените право собственности на каталог Moodle на ‘www-data‘ пользователя, и убедитесь, что и Moodle, и каталог данных доступны для записи пользователю ‘www-data‘.
sudo mkdir -p /var/www/moodledata sudo chown -R www-data:www-data /var/www/moodle /var/www/moodledata sudo chmod u+rwx /var/www/moodle /var/www/moodledata
Настройка виртуального хоста Apache
После загрузки Moodle вам предстоит создать новый файл виртуального хоста Apache для запуска Moodle. Поэтому убедитесь, что ваш домен готов и разрешен к IP-адресу вашего сервера Ubuntu.
Сначала запустите команду ‘a2enmod‘ команда ниже, чтобы активировать ‘переписать‘ модуль.
sudo a2enmod rewrite
Создайте новый файл виртуального хоста Apache ‘/etc/apache2/sites-available/moodle.conf‘ со следующим ‘nano‘ редактор.
sudo nano /etc/apache2/sites-available/moodle.conf
Вставьте следующую конфигурацию и не забудьте изменить имя домена на свое.
DocumentRoot /var/www/moodle/ ServerName moodle.local ServerAdmin [email protected]
Options +FollowSymlinks
AllowOverride All
Require all granted
ErrorLog /var/log/apache2/moodle_error.log
CustomLog /var/log/apache2/moodle_access.log combined
Сохраните файл и выйдите из редактора после завершения работы.
Теперь выполните следующую команду, чтобы включить ‘moodle.conf‘ файл и проверьте синтаксис Apache. Если у вас правильный синтаксис Apache, вы увидите вывод ‘Синтаксис в порядке‘.
sudo a2ensite moodle.conf sudo apachectl configtest
Наконец, запустите программу ‘systemctl‘, чтобы перезапустить Apache и применить изменения.
sudo systemctl restart apache2
Защита Moodle с помощью UFW
В этом шаге вы откроете протоколы HTTP и HTTPS через UFW (Uncomplicated Firewall). Перед началом работы убедитесь, что UFW запущен.
Выполните приведенную ниже команду, чтобы включить ‘Apache Full‘ профиль на UFW. При этом будет разрешен HTTP- и HTTPS-трафик.
sudo ufw allow 'Apache Full'
Теперь проверьте список разрешенных правил на UFW с помощью следующего. Вы увидите ‘Apache Full‘ профиль включен.
sudo ufw status
Защита Moodle с помощью HTTPS
В дополнение к брандмауэру, вы также должны сгенерировать сертификаты SSL/TLS и защитить Moodle с помощью HTTPS. В этом разделе вы реализуете HTTPS для Moodle с помощью Certbot и Letsencrypt. Если вы устанавливаете Moodle локально, пропустите этот раздел.
Установите ‘certbot‘ и ‘python3-certbot-apache‘ пакеты с помощью следующей команды.
sudo apt install certbot python3-certbot-apache -y
После завершения установки выполните команду ‘certbot‘ команда ниже, чтобы сгенерировать SSL/TLS сертификаты для Moodle. Не забудьте изменить доменное имя и адрес электронной почты на свои данные.
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d moodle.local
Когда процесс будет завершен, ваши SSL-сертификаты будут доступны в ‘/etc/letsencrypt/live/domain.com‘ каталог, и ваша установка Moodle будет автоматически защищена HTTPS.
Установка Moodle
Зайдите на доменное имя Moodle, например, https://moodle.local/, и вы увидите мастер установки.
Выберите язык по умолчанию и нажмите кнопку Далее.
Введите каталог данных для Moodle ‘/var/www/moodledata‘.
Выберите MariaDB в качестве драйвера базы данных.
Введите данные о базе данных MariaDB и пользователе.
Нажмите Продолжить , чтобы подтвердить уведомление об авторских правах.
В разделе “Проверки сервера” убедитесь, что ваша среда готова.
Теперь установка Moodle будет завершена.
После завершения установки введите нового пользователя-администратора, электронную почту и пароль для Moodle.
Теперь вы увидите приборную панель Moodle, как показано ниже:
Заключение
Поздравляем! Вы завершили установку Moodle на сервер Ubuntu 24.04. Вы установили Moodle 40.4 на Ubuntu с помощью стека LAMP (Linux, Apache, MariaDB и PHP) и защитили Moodle с помощью UFW (Uncomplicated Firewall) и HTTPS через Certbot и Letsencrypt.