В этом руководстве: как построить собственный учебный центр с Moodle; установка и настройка Moodle на веб-сервере Nginx, MySQL и PHP-FPM 7 под операционной системой Ubuntu 16.04 (Xenial Xerus).
В этом руководстве:
- Установка Nginx.
- Установка и настройка PHP-FPM7.0.
- Установка и настройка MySQL.
- Загрузка и настройка Moodle.
- Настройка SSL и Nginix Virtual Host.
- Установка Moodle.
- Тестирование.
Шаг 1 - Установка Nginx
В этом руководстве Nginx используется в качестве веб-сервера для Moodle. Nginx доступен в обычном репозитории Ubuntu.
apt-get install -y nginx
Когда установка завершена, запустить Nginx и включить его для автоматического запуска во время загрузки.
systemctl start Nginx
systemctl enable Nginx
Nginx будет запускаться на 80 порту, проверить, что порт открыт с командой ниже и убедиться, что Nginx использует 80 порт.
NetStat -plntu
Шаг 2 - Установка и настройка PHP-FPM7
Moodle основан на PHP, поэтому PHP должен быть установлен в системе. В этом руководстве будет использоваться PHP-FPM , потому что используется веб - сервер Nginx. Лучше всего использовать PHP-FPM7.0, он поддерживается версией « Moodle 3.2 stable ».
Для установки PHP-FPM7.0 и всех расширений, необходимых Moodle, выполним одну команду
sudo apt-get install -y graphviz aspell php7.0-fpm php7.0-cli php7.0-pspell php7.0-curl php7.0-gd php7.0-intl php7.0-mysql php7.0-xml php7.0-xmlrpc php7.0-ldap php7.0-zip php7.0-json php7.0-opcache php7.0-readline php7.0-mbstring php7.0-soap
Когда установка всех пакетов завершена, перейти в директорию конфигурации PHP и отредактировать php.ini файлы.
cd /etc/php/7.0/
Редактировать FPM php.ini файл .
nano fpm/php.ini
Раскрыть строку ниже, и изменить значение на 0.
cgi.fix_pathinfo = 0
Сохранить php.ini и выйти из редактора.
Отредактировать файл cli php.ini.
nano cli/php.ini
Изменить значение на 0.
cgi.fix_pathinfo = 0
Сохранить файл и выйти.
Затем изменить файл конфигурации PHP-FPM www.conf.
nano fpm/pool.d/www.conf
Раскрыть security limit line и убедиться, что значение .php.
security.limit_extensions = .php
Сохранить файл и выйти из Vim.
Конфигурация PHP-FPM закончена. Теперь можно запустить PHP-FPM и добавить его для автоматического запуска во время загрузки.
systemctl enable php7.0-FPM
systemctl stat php7.0-FPM
По умолчанию, PHP-FPM на ubuntu обеспечит socket файл Nginx-у для подключения, надо убедиться, что есть результаты для socket PHP с помощью NETSTAT команды ниже.
NetStat -LX
Шаг 3 - Установка и настройка MySQL
В этом руководстве будет использоваться MySQL в качестве базы данных для Moodle (Moodle поддерживает MySQL и PostgreSQL); последняя версия MySQL , на данный момент 5.7,из репозитория Ubuntu.
Установка MySQL из репозитория Ubuntu с apt командой ниже.
apt-get install -y mysql-server mysql-client
Будет задан вопрос о root password, введите MySQL в требуемый MySQL oot password. Убедиться, чтобы использовался сложный и не слишком короткий пароль.
Введите пароль еще раз и нажмите «Enter».
MySQL был установлен с собственным root password.
Теперь нужно добавить новую конфигурацию для установки Moodle. Отредактировать файл конфигурации MySQL mysqld.cnf.
Перейти к /etc/MySQL/ и отредактировать файл «mysqld.cnf».
cd /etc/mysql/mysql.conf.d/
nano mysqld.conf
Под « [mysqld] линией», вставьте настройки ниже.
default_storage_engine = InnoDB
innodb_file_per_table = 1
innodb_file_format = Barracuda
Сохранить и выйти, а затем перезапустить и добавить MySQL для автоматического запуска во время загрузки.
Systemctl restart MySQL
systemctl enable MySQL
Теперь можно проверить MySQL; проверяя порт сервера
NetStat -plntu
MySQL был установлен и запущен, если мы видим порт 3306.
Далее нужно создать новую базу данных и нового пользователя базы данных для Moodle. Подключиться к серверу MySQL с помощью команды «mysql» ниже.
mysql -u root -p ПАРОЛЬ
Создать новую базу данных с именем «moodledb» и новый пользовательский «moodleuser» с паролем «secret123» для установки moodle, а затем предоставить разрешения для пользователя базы данных. Конечно, необходимо использовать другой и безопасный пароль в установке.
Запуск MySQL запросов ниже.
CREATE DATABASE moodledb DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
CREATE USER 'moodleuser' @ 'localhost' IDENTIFIED BY 'secret123';
GRANT ALL ON PRIVILEGES moodledb * TO 'moodleuser' @ 'localhost' IDENTIFIED BY 'secret123'.
FLUSH PROVOLEGES;
Новый пользователь и база данных для moodle созданы.
Шаг 4 - Загрузка и настройка Moodle
Сейчас необходимо загрузить modle из репозитория GitHub с git и выбрать стабильную версию branch.
Установить git с apt командой ниже.
apt-get install -y git
Перейти к «/ var / www/» директории и скопировать репозиторию moodle.
cd / var / WWW /
git clone https://github.com/moodle/moodle.git
Перейти к директории moodle и списку всех доступных branches.
сd moodle /
git branch -a
Появится длинный список moodle branch , отследить последнюю стабильную версию branch с командой ниже.
git branch --track MOODLE_32_STABLE origin/MOODLE_32_STABLE
Теперь перейти к последней стабильной версии branch с git проверкой.
git checkout MOODLE_32_STABLE
Теперь в последней стабильной версии branch, можно использовать команду ниже, чтобы проверить версию.
git status
Появятся результаты ниже.
On branch MOODLE_32_STABLE
Your branch is up-to-date with 'origin/MOODLE_32_STABLE'.
nothing to commit, working directory clean
Затем надо создать новую директорию для данных Moodle /var/moodledata и изменить owner и permissions директории.
mkdir /var/moodledata
chown -R www-data:www-data /var/moodledata
chmod 777 /var/moodledata
Изменить владельца и разрешения директории MOODLE “www-data” пользователя и группы.
chown -R www-data:www-data /var/www/moodle
chmod 755 /var/www/moodle
Предварительная настройка moodle выполнена.
Шаг 5 - Создание сертификата SSL и настройка Nginx Virtual Host
Нужно запустить Moodle с веб-сервером Nginx под соединение HTTPS. Если находитесь на включённом сервере, можно использовать свой собственный файл-сертификат или добавить свой собственный бесплатный сертификат из let’s encrypt.
Создать новую директорию SSL и сгенерировать самоподписанные файлы-сертификаты можно с помощью команды openssl.
mkdir -p /etc/nginx/ssl
openssl req -new -x509 -days 365 -nodes -out /etc/nginx/ssl/moodle.crt -keyout /etc/nginx/ssl/moodle.key
Изменить разрешение private key.
chmod 600 /etc/nginx/ssl/moodle.key
Так, есть директория конфигурации Nginx, нужно создать новый virtual host - файл для Moodle в «sites-available » директории.
cd /etc/nginx/
vim sites-available/moodle-conf
Вставить настройки virtual host.
# PHP Upstream Handler
upstream php-handler {
server unix:/run/php/php7.0-fpm.sock;
}
# Nginx redirect HTTP to HTTPS - moodle.drach.pro
server {
listen 80;
server_name moodle.drach.pro;
# enforce https
return 301 https://$server_name$request_uri;
}
# HTTPS Configuration
server {
server_name moodle.drach.pro;
listen *:443 ssl http2;
listen [::]:443 ssl http2;
# SSL Configuration
ssl on;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH:ECDHE-RSA-AES128-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA128:DHE-RSA-AES128-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-GCM-SHA128:ECDHE-RSA-AES128-SHA384:ECDHE-RSA-AES128-SHA128:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES128-SHA128:DHE-RSA-AES128-SHA128:DHE-RSA-AES128-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA384:AES128-GCM-SHA128:AES128-SHA128:AES128-SHA128:AES128-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
ssl_session_tickets off;
#ssl_stapling on;
#ssl_stapling_verify on;
resolver_timeout 5s;
ssl_certificate /etc/nginx/ssl/moodle.crt;
ssl_certificate_key /etc/nginx/ssl/moodle.key;
# Root Moodle Data DIrectory
root /var/www/moodle;
rewrite ^/(.*\.php)(/)(.*)$ /$1?file=/$3 last;
location ^~ / {
try_files $uri $uri/ /index.php?q=$request_uri;
index index.php index.html index.htm;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass php-handler;
}
}
}
Сохранить файл и выйти из Vim, а затем активировать virtual hosy и проверить файл конфигурации Nginx, убедиться, что нет никакой ошибки.
ln -s /etc/nginx/sites-available/moodle-conf /etc/nginx/sites-enabled/
nginx –t
Перезапустить веб-сервер Nginx.
systemctl restart Nginx
Файлы-сертификаты SSL были созданы и Nginix virtual host для Moodle настроен.
Шаг 6 - Установка Moodle
Требуется открыть веб-браузер и ввести в URL сервера в адресной строке и нажать «Enter». В этом руководстве будет использовать свой собственный домен: moodle.drach.pro.
Появится страница установки MOODLE.
Выбрать язык и нажать кнопку «Далее».
Корневая веб директория moodle /var/www/moodle и директория данных moodle /var/moodledata.
Затем нажать «Далее».
Настройка «Database diver», использовать сервер базы данных MySQL ниже и нажать « Далее ».
Введите информацию о базе данных для Moodle.
• database host: localhost
• database name: moodledb
• database user: moodleuser
• database password: secret123
• tables prefix: moodle_
• database port: 3306
• Unix socket: /var/run/mysql/mysqld.sock
Нажать «Далее».
Принять Соглашение об авторских правах. Просто нажать «Продолжить».
System Checking(Система проверки) проверяет конфигурацию сервера и все PHP расширения, необходимые moodle.
Убедиться, что все результаты «OK» , а затем нажать «Продолжить» для установки.
Можно увидеть, что множество модулей получения установлены, убедиться, что все результаты « success ».
Нажмите «Продолжить» снова.
Далее нужно настроить пользователя-администратора и пароль администратора.
Заполнить информацию администратора и нажать «Update profile».
Для «Front Page Setting », ввести в своей странице информацию и нажать «Save changes».
Произойдёт перенаправление на пользователя администратора «Dashboard» ниже.
Установка Moodle закончена.
Шаг 7 - Тестирование
Проверить домашнюю страницу moodle.
Moodle страница входа - /login.
Dashboard администратора moodle.
Страница настроек пользователя moodle.
Страница Администрации сайта moodle.
Дискуссия
Написал Rocky 9
Опубликовано в: Установка nginx c PHP-FPM под CentOS 7.0 in LinuxНаписал Константин
Опубликовано в: Докеризация стека LEMP под Ubuntu c помощью Compose in LinuxНаписал bammbr
Опубликовано в: Шлюз для маленького отдела на Red Hat 9 in LinuxНаписал Федор
Опубликовано в: Установка и конфигурация Samba на CentOS 7 in LinuxНаписал Evgenytrl
Опубликовано в: Загрузка файлов с помощью Wget in Linux