Поднимаем LMS в Ubuntu Trusty

Posted by

Довелось мне наткнуться на продукт именуемый, как . Дальнейший анализ имеющейся документации и различных источников показал, что это система (бесплатная) посредством которой можно создавать onlineкурсы, материалы как для чтения так и инструмент по монетизации моих собственных навыков приобретенных в повседневном домашнем и рабочем времени. По сути все что я переработал и адаптировал к практическому применению. Ведь кто не согласится прочитать, ознакомиться с сутью темы, наработками, реальными примерами чем читать, искать по теме все самим. Это как писать свое видение на вопросы поставленные учителем литературы. Я же просто брал различные источники: критика, краткое содержание, аннотацию и саму книга прочитывал и писал ответ на вопрос и получал либо четыре либо пять.

Так вот система Moodle удобна в плане особенного факта, что написана на языке программирования php и имеет Language Pack русского языка, где качество перевода составляет 97%. Хотя если долго и нацеленно работать с любым иностранным языком он уже не будет представлять трудность.

Далее я разберу во всех шагах (впрочем я всегда так делаю), как развернуть открытую систему ( (Learning Management System)=> Moodle) на Ubuntu Trusty Server amd64 English и не забыть ее руссифицировать.

Текущие характеристики системы: RAM = 2, CPU = 1, HDD = 50

ekzorchik@srv-trusty:~$ sudo rm -Rf /var/lib/apt/lists

ekzorchik@srv-trusty:~$ sudo apt-get update && sudo apt-get upgrade -y

ekzorchik@srv-trusty:~$ sudo add-apt-repository ppa:ondrej/php

ekzorchik@srv-trusty:~$ sudo apt-get update

ekzorchik@srv-trusty:~$ sudo apt-get install php7.1-cli php7.1-common php7.1-mbstring php7.1-curl php7.1-soap php7.1-zip php7.1-gd php7.1-xml php7.1-intl php7.1-json aspell graphviz php7.1-ldap php7.1-pspell apache2 apache2-bin apache2-data libapache2-mod-php7.1 mysql-server mysql-client -y

New password for the MySQL "root" user: 712mbddr@

Repeat password for the MySQL "root" user: 712mbddr@

ekzorchik@srv-trusty:~$ sudo nano /etc/php/7.1/apache2/php.ini

memory_limit = 128M

ekzorchik@srv-trusty:~$ mysql -u root -p712mbddr@ -e "create database dbmoodle default character set utf8mb4 collate utf8mb4_unicode_ci"

ekzorchik@srv-trusty:~$ mysql -u root -p712mbddr@ -e "grant all on dbmoodle.* to 'usmoodle'@'localhost' identified by '612mbddr@'"

ekzorchik@srv-trusty:~$ curl -L https://download.moodle.org/download.php/direct/stable33/moodle-latest-33.tgz > moodle.tgz

ekzorchik@srv-trusty:~$ file moodle.tgz

moodle.tgz: gzip compressed data, from Unix, last modified: Fri Jul 7 11:11:38 2017

ekzorchik@srv-trusty:~$ sudo tar -xzf moodle.tgz -C /var/www/html/

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

ekzorchik@srv-trusty:~$ sudo mkdir /var/dmoodle

ekzorchik@srv-trusty:~$ sudo chown -R www-data /var/dmoodle/

ekzorchik@srv-trusty:~$ sudo chown -R www-data:www-data /var/www/html/moodle/

ekzorchik@srv-trusty:~$ sudo chmod -R 0770 /var/dmoodle/

Перехожу к установке через Webбраузер посредством ссылки: http://10.7.9.130/moodle/install.php

Choose a language => Язык => Русский (ru) и нажимаю Далее

Нужно установить необходимые расширения и активировать их

Включаю запрашиваемые расширения PHP:

ekzorchik@srv-trusty:~$ sudo service apache2 restart

после нажимаю «Обновить» и меня перекидывает на следующий шаг «Подтвердите пути»:Подтверждаю пути инсталляции системы Moodle

  • Веб-адрес: http://10.7.9.130/moodle
  • Каталог Moodle: /var/www/html/moodle
  • Каталог данных: /var/dmoodle

и нажимаю «Далее»

К сожалению, не удалось установить язык «ru». Процесс установки продолжится на английском.

Не удалось загрузить компонент на сервер. Проверьте настройки прокси-сервера; настоятельно рекомендуется установка расширения PHP cURL.

Вам следует вручную загрузить файл по ссылке https://download.moodle.org/download.php/langpack/3.3/ru.zip, скопировать его в папку «/var/dmoodle/lang» на своем сервере и там его распаковать.

Скачать через утилиты curl & wget не получается, т. к. доступ к сайту moodle.org преграждает Google Captcha, как ее обходить через консоль я пока не понял.

В этом случае установку буду вести на Английском языке.

Нажимаю «Далее»

Choose database driver => Type => выбираю Improved MySQL (native/mysqli) и нажимаю Next

Database settings:

  • Database host: localhost
  • Database name: dbmoodle
  • Database user: usmoodle
  • Database password: 612mbddr@
  • Table prefix: dbmdl_
  • Database port: 3306
  • Unix socket: /var/run/mysqld/mysqld.sock

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

Error: database driver problem detected

The site administrator should verify server configuration

PHP has not been properly configured with the MySQLi extension for it to communicate

with MySQL. Please check your php.ini file or recompile PHP.

То это значит просто нужно внести следующие изменения:

ekzorchik@srv-trusty:~$ sudo apt-get install php7.1-mysql -y

ekzorchik@srv-trusty:~$ sudo service apache2 restart

Возвращаюсь к странице браузера где произвожу установку и нажимаю на этот странице где возникла ошибка Next

И меня перекидывает на страницу где предлагается прочитать условия и понять их: Have you read these conditions and understood them? Отвечаю Continue, Далее представлена страница на которой проверяют все установленные пакеты, версии пакетов и напротив каждой строки должен быть статус OK.

У меня отсутствует успешная проверка:

The xmlrpc extension is needed for hub communication, and useful for web services and Moodle networking

Исправляю:

ekzorchik@srv-trusty:~$ sudo apt-get install php7.1-xmlrpc -y

ekzorchik@srv-trusty:~$ sudo service apache2 restart

После на данной странице нужно нажать Reload

Также есть ошибки

Устраняю ошибки подготовки базы данных

ekzorchik@srv-trusty:~$ sudo nano /etc/mysql/my.cnf

[client]

default-character-set = utf8mb4

#*InnoDB

innodb_file_format = Barracuda

innodb_file_per_table = 1

innodb_large_prefix

character-set-server = utf8mb4

collation-server = utf8mb4_unicode_ci

skip-character-set-client-handshake

[mysql]

default-character-set = utf8mb4

ekzorchik@srv-trusty:~$ sudo service mysql restart

ekzorchik@srv-trusty:~$ sudo php /var/www/html/moodle/admin/cli/mysql_collation.php --collation=utf8mb4_unicode_ci

Converting tables and columns to 'utf8mb4_unicode_ci' for http://10.7.9.130/moodle:

Converted: 0, skipped: 0, errors: 0

ekzorchik@srv-trusty:~$ sudo service apache2 restart

После нажимаю Reload на странице проверки и ошибки на предмет mysql исчезают. Вот только осталось одна говорящая что доступ к сайту moodle осуществляется в текущий момент не по безопасному соединению https. Но этот момент я пропущу. И нажимаю Continue, после происходит установка и по каждому шагу должен быть статус Success.

Каждый шаг должен быть в статусе Success

Прокручиваю страницу в самый низ попутно проверяю что везде статус Success, если все хорошо то нажимаю Continue
Теперь я на странице где нужно задать Административные данные для входа и сопутствующую информацию:

  • Username: ekzorchik
  • Choose and authentication method: Manual accounts
  • New password: Aa1234567@
  • First name: ekzorchik
  • Surname: ekzorchik
  • Email address: support@ekzorchik.ru
  • Email display: Hide my email address from everyone
  • City/town: Moscow
  • Select a country: Russian Federation
  • Timezone: Server timezone (Europe/Moscow)

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

После нажимаю Update profile

Далее нужно указать полное название сайта, короткое имя и описание:

  • Full site name: Реальные заметки Ubuntu / Windows
  • Short name for site: Реальные заметки
  • Front page summary: Все о повседневном администрировании

и нажимаю Save changes

Все установка Moodle успешно завершена в Ubuntu Trusty Server amd64

Установка Moodle успешно завершена на Ubuntu Trusty Server

Далее настраиваю задание cron:

ekzorchik@srv-trusty:~$ sudo crontab -e

* * * * * /usr/bin/php /var/www/html/moodle/admin/cli/cron.php >/dev/null

ekzorchik@srv-trusty:~$ php /var/www/html/moodle/admin/cli/cron.php

Fatal error: $CFG->dataroot is not writable, admin has to fix directory permissions! Exiting.

ekzorchik@srv-trusty:~$ sudo php /var/www/html/moodle/admin/cli/cron.php

Server Time: Sun, 09 Jul 2017 11:32:03 +0300

Cron script completed correctly

Cron completed at 11:32:04. Memory used 13.3MB.

Execution took 0.035891 seconds

Теперь когда я разобрал для себя установку нужно как рекомендуется в документации к приложению ограничить доступ к Webкорневому каталогу Moodle:

ekzorchik@srv-trusty:~$ sudo chmod -R 0755 /var/www/html/moodle/

ekzorchik@srv-trusty:~$ sudo nano /var/www/html/moodle/config.php

//$CFG->directorypermissions = 0777;

$CFG->directorypermissions = 0770;

Т.к. с самого начала не удалось пройтись по всем шагам на русском языке, да и скачать посредством консоли файлы русификации я поступил следующим образом. Скачал файлы через вставленную URL ссылку в новую страницу на своей рабочей системе. А после я передаю их на сервер с развернутым приложением Moodle дабы русифицировать:

aollo@work:~$ scp Downloads/ru.zip ekzorchik@10.7.9.130:/home/ekzorchik

ekzorchik@srv-trusty:~$ dir -sh ru.zip

1.5M ru.zip

ekzorchik@srv-trusty:~$ sudo apt-get install unzip -y

ekzorchik@srv-trusty:~$ unzip ru.zip

ekzorchik@srv-trusty:~$ sudo mv ru /var/dmoodle/lang/

ekzorchik@srv-trusty:~$ sudo chown -R www-data:www-data /var/dmoodle/

ekzorchik@srv-trusty:~$ sudo chmod -R 0770 /var/dmoodle/

ekzorchik@srv-trusty:~$ sudo chmod -R 0770 /var/www/html/moodle/

ekzorchik@srv-trusty:~$ sudo service apache2 restart

http://10.7.9.130/moodle/ - Log in -

  • Username: ekzorchik
  • Password: Aa1234567@

и нажимаю Log in, затем перехожу в PreferencesPreferred language, но вот при изменении языка нет возможности выбора кроме дефолтного English (en).

ekzorchik@srv-trusty:~$ sudo reboot

и после ничего не изменилось, сменить язык не могу.

Так стоп, я не туда распакованный файл с русским языком положил, исправляю:

ekzorchik@srv-trusty:~$ sudo less /var/www/html/moodle/lang/README.txt

To add more languages to Moodle, you can either:

1) use the Moodle languages GUI in the interface to fetch

new languages and install them in your ‘dataroot’ directory.

2) download them and unzip the packs in this directory manually

ekzorchik@srv-trusty:~$ sudo less /var/www/html/moodle/config.php | grep dataroot

$CFG->dataroot = '/var/dmoodle';

Открываю ссылку: Site administration (http://10.7.9.130/moodle/admin/search.php) → Language — Language settings и изменяю

Default language с English (en) на Русский (ru) и нажимаю Save changes

После чего с наименованием сайта в левом углу появиться возможность выбора языка интерфейса:

Изменяю интерфейс с English на РусскийПосле выбора русского языка весь интерфейс становится намного приятным чем не родной английский язык:

LMS система Moodle успешно русифицирована

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

Для резервного копирования ваших учебных материалов и всей системы нужно:

  • Бекап базы данных
  • Бекап каталога «dataroot»

Как по мне интерфейс и сам сервис Moodle оставляет очень хорошее впечатление. На его основе я могу создать уникальные по своей практичности курсы и предоставлять к ним доступ за символическую плату. А пока у меня на этом всё, с уважением автор блога Олло Александр aka ekzorchik.