Довелось мне наткнуться на продукт именуемый, как Moodle. Дальнейший анализ имеющейся документации и различных источников показал, что это система (бесплатная) посредством которой можно создавать online–курсы, материалы как для чтения так и инструмент по монетизации моих собственных навыков приобретенных в повседневном домашнем и рабочем времени. По сути все что я переработал и адаптировал к практическому применению. Ведь кто не согласится прочитать, ознакомиться с сутью темы, наработками, реальными примерами чем читать, искать по теме все самим. Это как писать свое видение на вопросы поставленные учителем литературы. Я же просто брал различные источники: критика, краткое содержание, аннотацию и саму книга прочитывал и писал ответ на вопрос и получал либо четыре либо пять.
Так вот система Moodle удобна в плане особенного факта, что написана на языке программирования php и имеет Language Pack русского языка, где качество перевода составляет 97%. Хотя если долго и нацеленно работать с любым иностранным языком он уже не будет представлять трудность.
Далее я разберу во всех шагах (впрочем я всегда так делаю), как развернуть открытую систему (LMS (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
после нажимаю «Обновить» и меня перекидывает на следующий шаг «Подтвердите пути»:
- Веб-адрес: 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, если все хорошо то нажимаю 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
Далее настраиваю задание 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, затем перехожу в Preferences — Preferred 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
После чего с наименованием сайта в левом углу появиться возможность выбора языка интерфейса:
После выбора русского языка весь интерфейс становится намного приятным чем не родной английский язык:
Вот теперь я сделал запланированное.
Для резервного копирования ваших учебных материалов и всей системы нужно:
- Бекап базы данных
- Бекап каталога «dataroot»
Как по мне интерфейс и сам сервис Moodle оставляет очень хорошее впечатление. На его основе я могу создать уникальные по своей практичности курсы и предоставлять к ним доступ за символическую плату. А пока у меня на этом всё, с уважением автор блога Олло Александр aka ekzorchik.