Поиск по сайту:

Как установить Moodle 3.2 на Ubuntu 16.04


Это руководство существует для этих версий ОС

  • Ubuntu 20.04 (Focal Fossa)
  • Ubuntu 16.04 (Xenial Xerus)

На этой странице

  1. Шаг 1. Установите Nginx
  2. Шаг 2. Установка и настройка PHP-FPM7
  3. Шаг 3. Установка и настройка MySQL
  4. Шаг 4. Загрузите и настройте Moodle
  5. Шаг 5. Создание сертификата SSL и настройка виртуального хоста Nginx
  6. Шаг 6. Установка Moodle
  7. Шаг 7. Тестирование
  8. Справочник

Moodle – это система управления обучением с открытым исходным кодом, написанная на PHP и выпущенная под Стандартной общественной лицензией GNU. Он используется для дистанционного обучения, проектов электронного обучения, смешанного обучения и подобных целей. Moodle — это аббревиатура от «Модульная объектно-ориентированная динамическая среда обучения», разработанная Мартином Дугиамасом, чтобы помочь преподавателям и учителям создавать онлайн-курсы, ориентированные на взаимодействие и совместное создание контента.

В этом уроке я расскажу вам, как создать собственный учебный центр с помощью moodle. Мы установим и настроим Moodle на веб-сервере Nginx, базе данных MySQL и PHP-FPM7. В качестве операционной системы мы будем использовать Ubuntu 16.04 (Xenial Xerus).

Что мы будем делать:

  1. Установите Nginx.
  2. Установите и настройте PHP-FPM7.0.
  3. Установите и настройте MySQL.
  4. Загрузите и настройте Moodle.
  5. Настройте SSL и виртуальный хост.
  6. Установка Moodle.
  7. Тестирование.

Предпосылка

  • Сервер Ubuntu 16.04.
  • Привилегии root.

Шаг 1 — Установите Nginx

В этом руководстве Nginx используется в качестве веб-сервера для Moodle. Nginx доступен в репозитории Ubuntu и может быть легко установлен с помощью команды apt.

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.

Установите PHP-FPM7.0 и все расширения, необходимые для Moodle, с помощью одной команды apt ниже.

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 с помощью vim.

vim fpm/php.ini

Раскомментируйте строку ниже и измените значение на 0.

cgi.fix_pathinfo=0

Сохраните php.ini и выйдите из редактора.

Отредактируйте файл cli php.ini.

vim cli/php.ini

Раскомментируйте строку cgi.fix ниже и измените значение на 0.

cgi.fix_pathinfo=0

Сохраните файл и выйдите из vim.

Затем отредактируйте файл конфигурации php-fpm www.conf.

vim fpm/pool.d/www.conf

Раскомментируйте строку ограничения безопасности и убедитесь, что значение равно .php.

security.limit_extensions = .php

Сохраните файл и выйдите из vim.

Настройка PHP-FPM завершена. Теперь мы можем запустить PHP-FPM и добавить его для автоматического запуска во время загрузки.

systemctl enable php7.0-fpm
systemctl start php7.0-fpm

По умолчанию PHP-FPM в Ubuntu предоставляет файл сокета для подключения Nginx. Убедитесь, что у вас есть результаты для файла сокета PHP, используя приведенную ниже команду netstat.

netstat -lx

Шаг 3 — Установите и настройте MySQL

Мы будем использовать MySQL в качестве системы базы данных для Moodle (Moodle поддерживает MySQL и PostgreSQL). Мы будем использовать последнюю версию MySQL из репозитория Ubuntu, на данный момент это MySQL 5.7.

Установите MySQL из репозитория Ubuntu с помощью приведенной ниже команды apt.

apt-get install -y mysql-server mysql-client

Вас спросят о корневом пароле MySQL, введите желаемый корневой пароль MySQL. Обязательно используйте сложный и не слишком короткий пароль.

Введите пароль еще раз и нажмите Enter.

MySQL был установлен с вашим собственным корневым паролем.

Теперь нам нужно добавить новую конфигурацию для установки Moodle. Отредактируйте файл конфигурации MySQL mysqld.cnf.

Перейдите в каталог конфигурации /etc/mysql/ и отредактируйте файл mysqld.cnf с помощью vim.

cd /etc/mysql/mysql.conf.d/
vim mysqld.conf

В строке [mysqld] вставьте конфигурацию ниже.

default_storage_engine = innodb
innodb_file_per_table = 1
innodb_file_format = Barracuda

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

systemctl restart mysql
systemctl enable mysql

Теперь вы можете проверить, работает ли MySQL, проверив порт сервера, используемый службой, порт 3306.

netstat -plntu

MySQL установлен и запущен.

Далее нам нужно создать новую базу данных и нового пользователя базы данных для Moodle. Подключитесь к серверу MySQL с помощью команды mysql ниже.

mysql -u root -p
TYPE YOUR OWN ROOT PASSWORD

Создайте новую базу данных с именем moodledb и нового пользователя moodleuser с паролем hakaselabs123 для установки moodle, затем предоставьте разрешения пользователю базы данных. Конечно, вы должны использовать другой и безопасный пароль при установке :)

Запустите запрос mysql ниже.

CREATE DATABASE moodledb DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
CREATE USER 'moodleuser'@'localhost' IDENTIFIED BY 'hakaselabs123';
GRANT ALL PRIVILEGES ON moodledb.* TO 'moodleuser'@'localhost' IDENTIFIED BY 'hakaselabs123';
FLUSH PRIVILEGES;

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

Шаг 4 - Загрузите и настройте Moodle

Мы скачаем Moodle из репозитория GitHub с помощью git и выберем ветку стабильной версии.

Установите git с помощью приведенной ниже команды apt.

apt-get install -y git

Перейдите в каталог /var/www/ и клонируйте репозиторий moodle.

cd /var/www/
git clone https://github.com/moodle/moodle.git

Перейдите в каталог moodle и перечислите все доступные ветки.

cd moodle/
git branch -a

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

git branch --track MOODLE_32_STABLE origin/MOODLE_32_STABLE

Теперь переключитесь на последнюю стабильную ветку с помощью git checkout.

git checkout MOODLE_32_STABLE

Теперь вы находитесь в последней стабильной ветке, вы можете использовать приведенную ниже команду, чтобы проверить это.

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 и измените владельца и разрешения каталога.

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.

Мы будем запускать Moodle с веб-сервером Nginx по HTTPS-соединению. Если вы находитесь на действующем сервере, вы можете использовать свой собственный файл сертификата или добавить свой собственный бесплатный сертификат от let 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

Измените разрешение закрытого ключа.

chmod 600 /etc/nginx/ssl/moodle.key

Затем получите каталог конфигурации Nginx и создайте новый файл виртуального хоста для Moodle в каталоге, доступном для сайтов.

cd /etc/nginx/
vim sites-available/moodle-hakaselabs

Вставьте конфигурацию виртуального хоста Nginx ниже.

# PHP Upstream Handler
upstream php-handler {
    server unix:/run/php/php7.0-fpm.sock;
}
 
# Nginx redirect HTTP to HTTPS - moodle.hakase-labs.com
server {
    listen 80;
    server_name moodle.hakase-labs.com;
    # enforce https
    return 301 https://$server_name$request_uri;
}

# HTTPS Configuration
server {
        server_name          moodle.hakase-labs.com;

        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, затем активируйте виртуальный хост и проверьте файл конфигурации Nginx, убедитесь, что нет ошибки.

ln -s /etc/nginx/sites-available/moodle-hakaselabs /etc/nginx/sites-enabled/
nginx -t

Перезапустите веб-сервер Nginx.

systemctl restart nginx

Созданы файлы сертификатов SSL и настроен виртуальный хост Nginx для Moodle.

Шаг 6 - Установка Moodle

Откройте веб-браузер, введите URL-адрес вашего сервера в адресной строке и нажмите Enter. В этом руководстве я буду использовать собственное доменное имя: moodle.hakase-labs.com.

Вы увидите страницу установки moodle.

Выберите язык, я буду использовать английский и нажмите «Далее».

Настройте URL-адрес Moodle, в моем случае moodle.hakase-labs.com, корневой каталог веб-сайта moodle /var/www/moodle и каталог данных moodle /var/moodledata.

Затем нажмите Далее.

Настройте драйвер базы данных, используйте сервер базы данных mysql ниже и нажмите «Далее».

Введите информацию о базе данных для Moodle.

  • хост базы данных: localhost
  • имя базы данных: moodledb
  • пользователь базы данных: moodleuser
  • пароль к базе данных: hakaselabs123
  • префикс таблиц: moodle_
  • порт базы данных: 3306
  • Сокет Unix: /var/run/mysql/mysqld.sock

Нажмите Далее, чтобы продолжить.

Примите Соглашение об авторских правах. Просто нажмите «Продолжить».

Проверка системы, проверяет конфигурацию сервера и все расширения PHP, необходимые для moodle.

Убедитесь, что все результаты в порядке, а затем нажмите «Продолжить», чтобы установить.

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

Нажмите «Продолжить» еще раз.

Далее нам нужно настроить пользователя и пароль администратора.

Заполните данные администратора и нажмите Обновить профиль.

Для параметра «Главная страница» введите информацию о своей странице и нажмите «Сохранить изменения».

Вы будете перенаправлены на панель администратора пользователя ниже.

Установка Moodle завершена.

Шаг 7 — Тестирование

Протестируйте домашнюю страницу moodle – moodle.hakase-labs.com.

Страница входа в систему Moodle — moodle.hakase-labs.com/login.

Панель администратора пользователя Moodle.

Страница настроек пользователя Moodle.

Страница администрирования сайта Moodle.

Moodle был установлен на Ubuntu 16.04 с сервером Nginx, PHP-FPM 7 и MySQL 5.7, другими словами «Moodle со стеком LEMP».

Ссылка

  • https://docs.moodle.org/32/en/Nginx