Як встановити Moodle LMS на сервер Ubuntu 24.04
Moodle — це популярна платформа з відкритим вихідним кодом, яка використовується навчальними закладами по всьому світу для створення онлайн-курсів, керування контентом і сприяння спільному навчанню. Запуск Moodle на Ubuntu є поширеним вибором завдяки стабільності, безпеці та підтримці широкого спектру програмних пакетів Ubuntu. Процес включає встановлення необхідних компонентів, таких як Apache або Nginx як веб-сервер, MySQL або PostgreSQL як база даних і PHP як скриптова мова, усі з яких добре підтримуються в Ubuntu. Ця установка дозволяє установам створювати надійне, масштабоване та настроюване онлайн-навчальне середовище, яке можна адаптувати до конкретних освітніх потреб.
У цьому посібнику ми покажемо вам, як встановити Moodle на сервер Ubuntu 24.04. Ви встановите Moodle разом із LAMP Stack, а потім захистите Moodle за допомогою UFW та HTTPS через Certbot та Letsencrypt.
Передумови
Перш ніж почати, переконайтеся, що у вас є наступне:
- Сервер Ubuntu 24.04.
- Користувач без прав root і має права адміністратора.
- Доменне ім’я вказувало на IP-адресу сервера.
- Брандмауер UFW запущений і працює.
Встановлення залежностей
Moodle – це навчальна платформа з відкритим вихідним кодом, написана на PHP. Щоб встановити Moodle, вам потрібні Apache/Nginx, MySQL/MariaDB/PostgreSQL та PHP. У цьому розділі ви встановите LAMP Stack (Linux, Apache, MariaDB і PHP) на Ubuntu і налаштуєте Moodle поверх нього.
Щоб почати, виконайте наступну команду та оновіть індекс пакетів Ubuntu.
sudo apt update
Тепер виконайте наведену нижче команду, щоб встановити залежності LAMP Stack (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
Ви побачите, що PHP 8.3 встановлено на вашому сервері Ubuntu.
Налаштування сервера 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 захищена за замовчуванням, введіть ‘n’, коли вас попросять змінити метод аутентифікації на ‘unix_socket’.
- Введіть ‘Y’, щоб створити новий кореневий пароль MariaDB. Потім введіть надійний пароль для користувача root MariaDB і повторіть дію.
- Коли вас попросять вимкнути віддалену автентифікацію для кореневого користувача MariaDB, введіть ‘Y’, щоб погодитися.
- Встановлення сервера MariaDB за замовчуванням поставляється з тестом бази даних і дозволяє анонімному користувачеві отримати доступ до неї. Введіть ‘Y’ для обох налаштувань, щоб видалити ‘test’ бази даних за замовчуванням і видалити анонімний привілей.
- Нарешті, введіть «Y», щоб підтвердити привілеї перезавантаження таблиці.
Створення бази даних і користувача
Тепер, коли ви налаштували сервер MariaDB, давайте створимо нову базу даних і користувача через клієнт ‘mariadb’.
Увійдіть на сервер MariaDB за допомогою команди клієнта ‘mariadb‘ нижче. Введіть пароль root MariaDB, коли з’явиться запит.
sudo mariadb -u root -p
Тепер виконайте наступні запити, щоб створити нову базу даних ‘moodle‘, user ‘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» та «date_timezone» за допомогою вашої інформації.
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 Stack. Давайте завантажимо вихідний код 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‘ нижче, щоб активувати модуль ‘rewrite‘.
sudo a2enmod rewrite
Створіть новий файл віртуального хоста Apache ‘/etc/apache2/sites-available/moodle.conf‘ за допомогою наступного ‘nano‘ редактора.
sudo nano /etc/apache2/sites-available/moodle.conf
Вставте наступну конфігурацію та обов’язково змініть доменне ім’я з вашою інформацією.
<VirtualHost *:80> DocumentRoot /var/www/moodle/ ServerName moodle.infoit.local ServerAdmin admin@example.com <Directory /var/www/moodle/> Options +FollowSymlinks AllowOverride All Require all granted </Directory> ErrorLog /var/log/apache2/moodle_error.log CustomLog /var/log/apache2/moodle_access.log combined </VirtualHost>
Збережіть файл і вийдіть з редактора, коли закінчите.
Тепер виконайте наступну команду, щоб увімкнути файл ‘moodle.conf‘ і перевірити синтаксис Apache. Якщо у вас правильний синтаксис Apache, ви побачите вихідний сигнал ‘Syntax is OK‘.
sudo a2ensite moodle.conf sudo apachectl configtest
Нарешті, виконайте команду ‘systemctl‘ нижче, щоб перезапустити Apache і застосувати зміни.
sudo systemctl restart apache2
Захист Moodle за допомогою UFW
На цьому кроці ви відкриєте протоколи HTTP і HTTPS через UFW (нескладний брандмауер). Перш ніж почати, переконайтеся, що ви запустили 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 kyrie@infoit.local -d moodle.infoit.local
Коли процес буде завершено, ваші SSL-сертифікати будуть доступні в каталозі «/etc/letsencrypt/live/domain.com», а ваша інсталяція Moodle має бути автоматично захищена за допомогою HTTPS.
Встановлення Moodle
Відвідайте своє доменне ім’я Moodle, наприклад https://moodle.infoit.local/, і ви побачите майстер встановлення.
Виберіть мову за умовчанням і натисніть Далі.
Введіть свій каталог даних для Moodle ‘/var/www/moodledata‘.
Виберіть MariaDB як драйвер бази даних.
Введіть дані вашої бази даних MariaDB та користувача.
Натисніть Continue, щоб підтвердити повідомлення про авторські права.
У розділі перевірки сервера переконайтеся, що ваше середовище готове.
Тепер буде оброблена інсталяція Moodle.
Після завершення інсталяції введіть нового користувача адміністратора, електронну пошту та пароль для Moodle.
Тепер ви побачите інформаційну панель Moodle таким чином:
Висновок
Вітаємо! Ви завершили встановлення Moodle на сервер Ubuntu 24.04. Ви встановили Moodle 40.4 на Ubuntu за допомогою LAMP Stack (Linux, Apache, MariaDB та PHP), а також захистили Moodle за допомогою UFW (Uncomplicated Firewall) та HTTPS через Certbot та Letsencrypt.