Установка Moodle · 8 min read · Sep 08, 2025

Как установить Moodle LMS на сервер Debian 12

Moodle — это открытое решение для системы управления обучением (LMS). Это платформа для образовательных целей, от создания онлайн-курсов, управления онлайн-школами, управления контентом и предложения совместного обучения. Moodle в основном написан на PHP с MySQL/MariaDB в качестве базы данных и может работать на любой операционной системе. Вы можете выбрать между Apache или Nginx для установки Moodle.

В этом руководстве вы узнаете, как установить систему управления обучением Moodle на сервер Debian 12. Вы запустите Moodle с LAMP Stack (Linux, Apache, MariaDB и PHP), защитите свой сервер Debian с помощью UFW (Uncomplicated Firewall), а затем защитите Moodle с помощью HTTP через Certbot и Letsencrypt.

Предварительные условия

Убедитесь, что у вас есть следующее перед началом:

  • Сервер Debian 12
  • Непривилегированный пользователь с правами администратора
  • Доменное имя, указывающее на IP-адрес сервера

Установка зависимостей

Система управления обучением Moodle написана на PHP и MySQL, поэтому вам необходимо установить эти пакеты на вашу систему. В этом примере вы будете запускать Moodle с LAMP Stack (Linux, Apache, MariaDB и PHP). Поэтому сейчас вы будете устанавливать LAMP на своем сервере Debian.

Перед установкой любого пакета выполните команду ниже, чтобы обновить индекс пакетов Debian.

sudo apt update

обновить репозиторий

Теперь установите зависимости LAMP Stack (Linux, 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

установить lamp

После завершения установки проверьте службу ‘apache2’, чтобы убедиться, что служба работает.

sudo systemctl is-enabled apache2  
sudo systemctl status apache2

Вы можете увидеть ниже, что веб-сервер Apache работает и включен.

проверить apache2

Теперь проверьте службу ‘mariadb’, выполнив следующую команду.

sudo systemctl is-enabled mariadb  
sudo systemctl status mariadb

В выводе ниже вы можете увидеть, что сервер MariaDB работает.

проверить mariadb

Наконец, проверьте версию PHP и список включенных модулей, используя команду ниже.

php -v  
php -m

Вы увидите, что установлены PHP 8.2 с некоторыми включенными модулями по умолчанию, такими как ‘curl’, ‘exif’ и ‘date’.

проверить php

Установка UFW (Uncomplicated Firewall)

После установки LAMP Stack давайте установим UFW (Uncomplicated Firewall), чтобы защитить сервер. Затем откройте порты для протоколов SSH, HTTP и HTTPS. Наконец, давайте запустим и включим UFW.

Чтобы установить UFW, выполните команду ‘apt’ ниже.

sudo apt install ufw

установить ufw

После установки UFW выполните команду ‘ufw’ ниже, чтобы открыть порты для OpenSSH, HTTP (80) и HTTPS (443). Вы увидите вывод, например, ‘Правила обновлены’.

sudo ufw allow OpenSSH  
sudo ufw allow 80/tcp  
sudo ufw allow 443/tcp

Теперь выполните команду ниже, чтобы запустить и включить UFW на вашем Debian-машине. Когда будет предложено, введите ‘y’, чтобы подтвердить и продолжить. Вы увидите вывод ‘Брандмауэр активен и включен при запуске системы’.

sudo ufw enable

Наконец, проверьте статус UFW с помощью команды ниже. Вы увидите, что UFW ‘активен’ с OpenSSH, а порты ‘80’ и ‘443’ ‘ РАЗРЕШЕНЫ ‘.

sudo ufw status

проверить статус

Настройка сервера MariaDB

Перед установкой Moodle вам необходимо изменить движок хранения по умолчанию на ‘innodb’ и установить ‘Barracuda’ в качестве формата по умолчанию. После этого вам также необходимо защитить сервер MariaDB и установить пароль для ‘root’ с помощью утилиты ‘mariadb-secure-installation’.

Откройте конфигурацию сервера MariaDB по умолчанию ‘/etc/mysql/mariadb.conf.d/50-server.cnf’ с помощью редактора ‘nano’.

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Вставьте конфигурацию ниже, чтобы включить формат ‘Barracuda’ и установить движок хранения по умолчанию на ‘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:

  • Нажмите ENTER, когда вас спросят о пароле root (вы настроите его позже)
  • Введите ‘n’, когда вас спросят о переключении на аутентификацию ‘unix_socket’
  • Введите ‘Y’, чтобы установить пароль для root MariaDB, затем введите ваш новый пароль и повторите
  • Введите ‘Y’, чтобы удалить анонимного пользователя из MariaDB
  • Введите ‘Y’ снова, чтобы отключить удаленный вход для пользователя root
  • Введите ‘Y’, чтобы удалить базу данных по умолчанию ‘test’ и ее привилегии
  • Введите ‘Y’, чтобы перезагрузить привилегии таблиц и применить ваши изменения

После завершения перейдите к следующему шагу, чтобы создать новую базу данных и пользователя.

Создание базы данных и пользователя для Moodle

С настроенным сервером MariaDB давайте теперь создадим новую базу данных и пользователя, которые будут использоваться Moodle. Вы будете использовать клиент ‘mariadb’, чтобы войти в MariaDB и создать новую базу данных и пользователя.

Войдите в сервер MariaDB с помощью команды ‘mariadb’ ниже. Введите свой пароль root MariaDB, когда будет предложено.

sudo mariadb -u root -p

Выполните следующие запросы, чтобы создать новую базу данных и пользователя ‘moodle’ с паролем ‘MoodlePassw0rd’. Убедитесь, что вы изменили следующие учетные данные базы данных на свои.

CREATE DATABASE moodle DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;  
GRANT ALL ON moodle.* TO 'moodle'@'localhost' IDENTIFIED BY "MoodlePassw0rd";  
FLUSH PRIVILEGES;

создать базу данных и пользователя

Теперь выполните запрос ниже, чтобы проверить пользователя ‘moodle’. Убедитесь, что пользователь ‘moodle’ может получить доступ к базе данных ‘moodle’.

SHOW GRANTS FOR moodle@localhost;

Наконец, введите ‘QUIT’, чтобы выйти из сервера MariaDB.

показать привилегии базы данных

Настройка PHP

Теперь, когда вы настроили сервер MariaDB и создали нового пользователя базы данных, давайте настроим файл ‘php.ini’ и изменим некоторые настройки по умолчанию, необходимые для Moodle.

Откройте файл ‘php.ini’ с помощью редактора ‘nano’.

sudo nano /etc/php/8.2/apache2/php.ini

Измените конфигурацию PHP по умолчанию следующим образом. Вы можете изменить ‘memory_limit’ в зависимости от памяти вашего сервера.

memory_limit = 256M  
upload_max_filesize = 60M  
max_execution_time = 300  
date.timezone = Europe/Amsterdam  
max_input_vars = 5000

Когда закончите, сохраните файл и выйдите из редактора.

Наконец, выполните команду ‘systemctl’ ниже, чтобы перезапустить веб-сервер ‘apache2’ и применить вашу новую конфигурацию PHP.

sudo systemctl restart apache2

Загрузка исходного кода Moodle

После настройки PHP вы готовы загрузить исходный код Moodle, затем настроить каталог установки и каталог ‘data’ для Moodle. В этом примере вы настроите каталог установки Moodle на ‘/var/www/moodle’ и каталог ‘data’ на ‘/var/www/moodledata’.

Перейдите в каталог ‘/var/www’ и загрузите исходный код Moodle с помощью команды ‘wget’ ниже.

cd /var/www  
sudo wget https://download.moodle.org/download.php/direct/stable405/moodle-latest-405.tgz

После загрузки выполните команду ‘tar’ ниже, чтобы извлечь исходный код Moodle и переименовать извлеченный каталог в ‘moodle’. Таким образом, ваша установка Moodle будет находиться в каталоге ‘/var/www/moodle’.

tar -xf moodle-latest-405.tgz

Затем создайте новый каталог ‘/var/www/moodledata’, который будет использоваться в качестве каталога данных для вашей установки Moodle.

mkdir -p /var/www/moodledata

Наконец, выполните команду ниже, чтобы изменить владельца каталогов ‘/var/www/moodle’ и ‘/var/www/moodledata’ на пользователя ‘www-data’. А затем убедитесь, что пользователь ‘www-data’ может читать, записывать и выполнять файлы в этих каталогах.

sudo chown -R www-data:www-data /var/www/moodle /var/www/moodledata  
sudo chmod u+rwx /var/www/moodle /var/www/moodledata

настройка каталога moodle

Настройка виртуального хоста Apache

Теперь, когда вы загрузили Moodle, следующим шагом является создание нового файла виртуального хоста Apache для Moodle. Убедитесь, что у вас есть доменное имя, разрешенное/указанное на IP-адрес сервера.

Создайте новую конфигурацию виртуального хоста ‘/etc/apache2/sites-available/moodle.conf’ с помощью редактора ‘nano’.

sudo nano /etc/apache2/sites-available/moodle.conf

Вставьте конфигурацию ниже, чтобы настроить файл виртуального хоста для Moodle. Убедитесь, что вы изменили параметр ‘ServerName’ на ваше доменное имя.

  
DocumentRoot /var/www/moodle/  
ServerName moodle.howtoforge.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  

Сохраните файл и выйдите из редактора, когда закончите.

Теперь выполните команду ‘a2enmod’ ниже, чтобы активировать модуль ‘rewrite’, а затем выполните команду ‘a2ensite’ ниже, чтобы активировать виртуальный хост ‘moodle.conf’.

sudo a2enmod rewrite  
sudo a2ensite moodle.conf

Затем выполните команду ‘apachectl’ ниже, чтобы проверить вашу конфигурацию Apache. Если у вас правильная конфигурация Apache, вы увидите вывод, например, ‘Синтаксис в порядке’.

sudo apachectl configtest

настройка apache

Наконец, выполните команду ‘systemctl’ ниже, чтобы перезапустить веб-сервер Apache и применить ваши изменения.

sudo systemctl restart apache2

Защита Moodle с помощью HTTPS

На данный момент ваша установка Moodle готова. Прежде чем продолжить, вы защитите Moodle с помощью HTTPS через Certbot и Letsencrypt. Сделайте это, когда устанавливаете Moodle на публичном сервере. Если вы находитесь в локальной разработке, вы можете пропустить или реализовать HTTPS через самоподписанные сертификаты.

Установите ‘certbot’ и плагин ‘python3-certbot-apache’ с помощью следующей команды ‘apt’. Введите ‘Y’, чтобы подтвердить установку.

sudo apt install certbot python3-certbot-apache

После завершения установки выполните следующую команду ‘certbot’, чтобы сгенерировать SSL-сертификаты для Moodle. Убедитесь, что вы изменили следующее доменное имя и адрес электронной почты на ваше доменное имя.

sudo certbot --apache --agree-tos --no-eff-email -m [email protected] -d moodle.howtoforge.local

Когда закончите, ваши SSL-сертификаты будут доступны в каталоге ‘/etc/letsencrypt/live/domain.com’, и ваша установка Moodle будет работать под HTTPS.

Установка Moodle

Откройте веб-браузер и посетите доменное имя вашей установки Moodle, например https://moodle.howtoforge.local/, и вы увидите мастер установки Moodle.

Выберите ваш язык по умолчанию для Moodle и нажмите ‘ Далее ‘.

выбор языка

Введите ваше доменное имя и каталог данных Moodle на ‘ /var/www/moodledata ‘.

выбор домена и каталога данных

Выберите ‘ MariaDB ‘ в качестве базы данных по умолчанию для Moodle.

драйвер базы данных mariadb

Введите данные вашей базы данных MariaDB, такие как имя базы данных, имя пользователя и пароль.

конфигурация mariadb

Нажмите ‘ Продолжить ‘ на уведомлении об авторских правах.

авторские права

В разделе ‘Проверки сервера’ убедитесь, что ваш сервер Debian соответствует требованиям Moodle. Статус каждого элемента должен быть ‘ OK ‘.

проверка системы

Теперь вы увидите установку Moodle, как показано ниже:

установка moodle

После завершения установки введите свои данные администратора (имя пользователя, электронную почту и пароль).

администратор

Теперь введите информацию о вашем сайте Moodle.

информация о сайте moodle

Наконец, вы увидите следующую панель управления администратора Moodle.

панель управления

Заключение

Поздравляем! Вы завершили установку системы управления обучением Moodle (LMS) на сервере Debian 12. Вы запустили Moodle с LAMP Stack (Linux, Apache, MariaDB и PHP) и защитили его с помощью UFW (Uncomplicated Firewall) и HTTPS через Certbot и Letsencrypt. Теперь вы можете применить новую тему для Moodle, установить новые дополнения для расширения функциональности или изучить руководство пользователя Moodle для управления вашей установкой Moodle.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.