Установка Moodle · 9 min read · Oct 10, 2025

Как установить Moodle с Nginx и бесплатным SSL Let's Encrypt на Ubuntu 22.04

Moodle — это бесплатная и открытая система управления обучением и CMS, написанная на PHP. Она позволяет преподавателям и инструкторам создавать курсы для своих студентов и делает дистанционное образование и другие онлайн-программы обучения более доступными. Moodle предлагает простой, удобный и настраиваемый интерфейс, который помогает пользователям получать доступ к текущим, прошлым или будущим курсам и просматривать незавершенные задания. Он предназначен для учителей и педагогов, которые стремятся предоставить образование с использованием технологий.

Этот учебник покажет вам, как установить Moodle с Nginx и SSL Let’s Encrypt на Ubuntu 22.04.

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

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

Начало работы

Сначала вам нужно обновить пакеты вашей системы до последней версии. Вы можете обновить все из них, выполнив следующую команду:

apt-get update -y

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

Установка Nginx, MariaDB и PHP

Перед началом вам нужно будет установить Apache, MariaDB, PHP и другие библиотеки PHP на вашу систему. Сначала установите сервер Apache и MariaDB, используя следующую команду:

apt-get install nginx mariadb-server -y

По умолчанию Ubuntu 22.04 поставляется с версией PHP 8.1, и Moodle не поддерживает эту версию PHP. Поэтому вам нужно будет установить PHP 7.4 на ваш сервер.

Сначала установите все необходимые зависимости, используя следующую команду:

apt install software-properties-common ca-certificates lsb-release apt-transport-https -y

Затем добавьте репозиторий PHP на ваш сервер с помощью следующей команды:

add-apt-repository ppa:ondrej/php

Затем обновите репозиторий, используя следующую команду:

apt update

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

apt install php7.4 php7.4-fpm php7.4-common php7.4-mysql php7.4-gmp php7.4-curl php7.4-intl php7.4-mbstring php7.4-soap php7.4-xmlrpc php7.4-gd php7.4-xml php7.4-cli php7.4-zip unzip git curl -y

После установки всех пакетов отредактируйте файл php.ini и измените некоторые настройки:

nano /etc/php/7.4/fpm/php.ini

Измените следующие строки:

memory_limit = 256M
max_input_vars = 6000

cgi.fix_pathinfo = 0
upload_max_filesize = 100M
max_execution_time = 360
date.timezone = UTC

Сохраните и закройте файл, затем перезапустите службу PHP-FPM, чтобы применить изменения:

systemctl restart php7.4-fpm

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

Создание базы данных для Moodle

Moodle использует MySQL или MariaDB в качестве базы данных, поэтому вам нужно будет создать базу данных и пользователя для Moodle.

Сначала подключитесь к оболочке MySQL с помощью следующей команды:

mysql

После входа создайте базу данных и пользователя с помощью следующей команды:

CREATE DATABASE moodledb;  
CREATE USER 'moodle'@'localhost' IDENTIFIED BY 'password';

Затем предоставьте все привилегии для базы данных Moodle с помощью следующей команды:

GRANT ALL ON moodledb.* TO 'moodle'@'localhost' WITH GRANT OPTION;

Затем сбросьте привилегии и выйдите из MySQL с помощью следующей команды:

FLUSH PRIVILEGES;  
EXIT;

Затем отредактируйте файл конфигурации по умолчанию MariaDB и определите innodb_file_format:

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

Добавьте следующие строки в секцию [mysqld]:

[mysqld]
innodb_file_format = Barracuda
innodb_file_per_table = 1
innodb_large_prefix = ON

Сохраните файл, затем перезапустите службу MariaDB, чтобы применить изменения:

systemctl restart mariadb

Установка Moodle на Ubuntu 22.04

Сначала измените директорию на корневую директорию Apache и загрузите последнюю версию Moodle с помощью следующей команды:

cd /var/www/html  
git clone -b MOODLE_400_STABLE git://git.moodle.org/moodle.git moodle

Затем установите правильные разрешения и владельца для Moodle:

mkdir -p /var/www/html/moodledata  
chown -R www-data:www-data /var/www/html/moodle  
chmod -R 755 /var/www/html/*  
chown www-data:www-data /var/www/html/moodledata

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

Настройка Nginx для Moodle

Затем вам нужно будет создать файл конфигурации виртуального хоста Nginx для размещения Moodle:

nano /etc/nginx/conf.d/moodle.conf

Добавьте следующие строки:

server {
    listen 80;
    root /var/www/html/moodle;
    index  index.php index.html index.htm;
    server_name  moodle.example.com;

    client_max_body_size 100M;
    autoindex off;
    location / {
        try_files $uri $uri/ =404;
    }

    location /dataroot/ {
      internal;
      alias /var/www/html/moodledata/;
    }

    location ~ [^/].php(/|$) {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

Сохраните и закройте файл, затем проверьте Nginx на наличие синтаксических ошибок с помощью следующей команды:

nginx -t

Вы должны получить следующий вывод:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Наконец, перезапустите службу Nginx, чтобы применить изменения:

systemctl restart nginx

Вы также можете проверить статус службы Nginx, используя следующую команду:

systemctl status nginx

Вы должны увидеть следующий вывод:

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2022-07-18 07:08:50 UTC; 26s ago
       Docs: man:nginx(8)
    Process: 51379 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 51382 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 51383 (nginx)
      Tasks: 3 (limit: 4579)
     Memory: 3.6M
        CPU: 64ms
     CGroup: /system.slice/nginx.service
             ??51383 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
             ??51384 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
             ??51385 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""

Jul 18 07:08:50 ubuntu2204 systemd[1]: Starting A high performance web server and a reverse proxy server...
Jul 18 07:08:50 ubuntu2204 systemd[1]: Started A high performance web server and a reverse proxy server.

На этом этапе Nginx настроен для размещения Moodle. Теперь вы можете перейти к следующему шагу.

Доступ к веб-интерфейсу Moodle

Теперь откройте ваш веб-браузер и получите доступ к веб-интерфейсу Moodle, используя URL http://moodle.example.com. Вы должны увидеть страницу установки Moodle:

Выбор языка

Выберите ваш язык и нажмите Далее. Вы должны увидеть следующую страницу:

Путь установки

Укажите ваш веб-адрес Moodle, путь к директории, путь к директории данных и нажмите Далее. Вы должны увидеть следующую страницу:

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

Выберите тип драйвера базы данных и нажмите Далее. Вы должны увидеть следующую страницу:

Настройки базы данных

Укажите ваш хост базы данных, имя базы данных, имя пользователя, пароль и нажмите Далее. Вы должны увидеть следующую страницу:

Начало установки Moodle

Нажмите Продолжить, чтобы подтвердить все условия. Вы должны увидеть следующую страницу:

Проверки установки

Убедитесь, что все необходимые расширения PHP установлены, затем нажмите Продолжить. Вы должны увидеть следующую страницу:

Установка Moodle успешна

Нажмите Продолжить. Вы должны увидеть следующую страницу:

Общие настройки

Платформа обучения Moodle

Укажите ваше имя администратора, пароль, электронную почту, страну, часовой пояс и нажмите Обновить профиль. Вы должны увидеть следующую страницу:

Настройки сайта

Местоположение и часовой пояс

Укажите настройки вашей главной страницы и нажмите кнопку Сохранить изменения, чтобы сохранить изменения.

Защита Moodle с помощью SSL Let’s Encrypt

Затем вам нужно будет установить инструмент Certbot, чтобы загрузить SSL Let’s Encrypt и настроить Nginx для использования этого SSL.

Сначала установите Certbot с помощью следующей команды:

apt-get install python3-certbot-nginx -y

После установки выполните следующую команду, чтобы загрузить все SSL и настроить Nginx для его использования:

certbot --nginx -d moodle.example.com

Вам будет предложено указать действительный адрес электронной почты и принять условия обслуживания, как показано ниже:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for moodle.example.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/conf.d/moodle.conf

Затем выберите, хотите ли вы перенаправить HTTP-трафик на HTTPS, как показано ниже:

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

Введите 2 и нажмите Enter, чтобы продолжить. Вы должны увидеть следующий вывод:

Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/moodle.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://moodle.example.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=moodle.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/moodle.example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/moodle.example.com/privkey.pem
   Your cert will expire on 2022-10-19. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all*
   of your certificates, run "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

 - We were unable to subscribe you the EFF mailing list because your
   e-mail address appears to be invalid. You can try again later by
   visiting https://act.eff.org.

Теперь вы можете получить доступ к сайту Moodle по URL http://moodle.example.com

Заключение

Поздравляем! Вы успешно установили Moodle с Nginx и SSL Let’s Encrypt на Ubuntu 22.04. Теперь вы можете исследовать функции Moodle и легко создать свою собственную систему управления обучением. Не стесняйтесь задавать мне вопросы, если у вас есть какие-либо.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.