Как установить Moodle с Nginx и позволить зашифровать SSL в Ubuntu 20.04
Это руководство существует для этих версий ОС
- Ubuntu 16.04 (Xenial Xerus)
На этой странице
- Предпосылки
- Начало работы
- Установить ЛЭМП
- Создание базы данных
- Установить Moodle
- Настройка Nginx для Moodle
- Доступ к веб-интерфейсу Moodle
- Защитите Moodle с помощью Lets Encrypt SSL
- Заключение
Moodle — это бесплатная система управления обучением с открытым исходным кодом, написанная на PHP. Он предоставляет репетиторам и инструкторам возможность создавать курсы для своих студентов или учащихся. Moodle представляет собой надежную и безопасную интегрированную систему и поставляется с настраиваемой панелью инструментов, которая помогает пользователям получать доступ к текущим, прошлым или будущим курсам, а также просматривать незавершенные работы. Он используется во многих школах, университетах и организациях по всему миру и обеспечивает лучший опыт обучения. Он предоставляет богатый набор функций, включая вики, оценивание, отправку заданий, онлайн-викторины, доски обсуждений и многое другое.
В этом руководстве мы покажем вам, как установить Moodle с веб-сервером Nginx и Lets Encrypt SSL на Ubuntu 20.04.
Предпосылки
- Сервер под управлением Ubuntu 20.04.
- Действительное доменное имя, указанное с IP-адресом вашего сервера.
- Пароль root настраивается на сервере.
Начиная
Перед запуском вам необходимо обновить системные пакеты до последней версии. Вы можете обновить их с помощью следующей команды:
apt-get update -y
Как только ваш сервер будет обновлен, вы можете перейти к следующему шагу.
Установить ЛЭМП
Во-первых, вам нужно будет установить Apache, MariaDB, PHP и другие библиотеки PHP в вашу систему. Вы можете установить их все, используя следующую команду:
apt-get install nginx mariadb-server php-fpm php-common php-mysql php-gmp php-curl php-intl php-mbstring php-soap php-xmlrpc php-gd php-xml php-cli php-zip unzip git curl -y
После установки всех пакетов отредактируйте файл php.ini и измените некоторые настройки:
nano /etc/php/7.4/fpm/php.ini
Измените следующие строки:
memory_limit = 256M cgi.fix_pathinfo = 0 upload_max_filesize = 100M max_execution_time = 360 date.timezone = America/Chicago
Сохраните и закройте файл, затем перезапустите службу PHP-FPM, чтобы применить изменения:
systemctl restart php7.4-fpm
Как только вы закончите, вы можете перейти к следующему шагу.
Создать базу данных
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
Установить Мудл
Сначала измените каталог на корневой каталог Apache и загрузите последнюю версию Moodle с помощью следующей команды:
cd /var/www/html
git clone -b MOODLE_38_STABLE git://git.moodle.org/moodle.git moodle
После завершения загрузки отредактируйте Moodle config.php и определите тип базы данных:
nano /var/www/html/moodle/config.php
Найдите следующую строку:
$CFG->dbtype = 'mysqli';
И заменил его следующей строкой:
$CFG->dbtype = 'mariadb';
Сохраните и закройте файл, затем создайте каталог данных 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 настроен для размещения Moodle. Теперь вы можете перейти к следующему шагу.
Доступ к веб-интерфейсу Moodle
Теперь откройте веб-браузер и войдите в веб-интерфейс Moodle, используя URL-адрес http://moodle.example.com. Вы должны увидеть страницу установки Moodle:
Выберите свой язык и нажмите «Далее». Вы должны увидеть следующую страницу:
Укажите свой веб-адрес Moodle, путь к каталогу, путь к каталогу данных и нажмите «Далее». Вы должны увидеть следующую страницу:
Выберите тип драйвера базы данных и нажмите «Далее». Вы должны увидеть следующую страницу:
Укажите хост базы данных, имя базы данных, имя пользователя, пароль и нажмите «Далее». Вы должны увидеть следующую страницу:
Нажмите «Продолжить», чтобы подтвердить все условия. Вы должны увидеть следующую страницу:
Убедитесь, что все необходимые расширения PHP установлены, затем нажмите «Продолжить». Вы должны увидеть следующую страницу:
Нажмите «Продолжить». Вы должны увидеть следующую страницу:
Укажите имя пользователя администратора, пароль, адрес электронной почты, страну, часовой пояс и нажмите «Обновить профиль». Вы должны увидеть следующую страницу:
Укажите настройки главной страницы и нажмите кнопку Сохранить изменения, чтобы сохранить изменения.
Безопасный Moodle с Lets Encrypt SSL
Затем вам нужно будет установить инструмент Certbot для загрузки Lets Encrypt SSL и настроить 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): - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 2021-05-23. 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 и Lets Encrypt SSL на Ubuntu 20.04. Теперь вы можете легко создать свою собственную систему управления обучением с помощью Moodle.