Что, в качестве практического примера, может развернуть человек, деятельность которого если уж не полностью погружена в обучение, то как минимум очень сильно это самое обучение касается? Правильно — платформу для обучения. Самой популярной в мире для этих задач используется CMS Moodle, вот её мы и развернём на нашем апельсине.
В прошлый раз (здесь) мы разворачивали Nginx и СУБД Mariadb, против неё ничего не имею, но в качестве эксперимента поставлю ещё PostgreSql.
Нам ещё понадобится образ Moodle, но это позже. Первое, надо понимать «где» и «как» Moodle будет загружаться, так как я не хочу заморачиваться с доменами, а на апельсине в будущем планирую разворачивать и другие продукты, то лезть с настройками в /etc/hosts у меня нет абсолютно никакого желания. По этой причине, я создам на «localhost» отдельно папку moodle. Но в боевом режиме, так делать, конечно же не надо. Этот moodle ставится скорее «для себя любимого», нежели с целью дальнейшего переноса на удалённый сервер.
Для начала определимся с тем, что нам дано, а дан нам настроенный на апельсине веб-сервер Nginx с Mariadb, и перейдя по IP-адресу апельсина в браузере должно быть что-то похожее на это:
Теперь цель в том, чтобы по IP/moodle выводилась CMS Moodle (установленная и настроенная для работы). По умолчанию папка с файлами localhost находится по адресу /var/www/html/ соответственно если выполнить следующую команду:
sudo mkdir /var/www/html/moodle
sudo chown $USER /var/www/html/moodle
А далее ещё, что-то вроде такого:
cd /var/www/html/moodle
echo "
И можно проверить: IP/moodle/test.htm
Если вместо привычного «Привет» вы увидите какие-то кракозёбры, не удивляйтесь, кодировки не настроены. Но главное что работает, а вот если ошибка 404 или какая-то другая, значит что-то сделано было не так.
Следующим шагом можно сделать так:
cd ..
rm moodle/test.htm
sudo rm -rf moodle/
Они нам больше не понадобится, а взамен загрузить файлы moodle, на официальном сайте кстати расписано, как устанавливать на Ubuntu через git, здесь:
https://docs.moodle.org/405/en/Installation_on_Ubuntu_using_Git
И в общем-то велосипед изобретать не вижу смысла, ах ну да, там же на английском всё. Ну ладно, тогда по порядку кстати, кроме смены владельца (chown) будет не лишним права на папку прописать, в общем поэтапно… Здесь кстати важно, всякий раз когда работаете с апельсином, начинайте сеанс с команды:
sudo apt update && sudo apt upgrade
Многие брезгуют, а зря. Продолжим:
sudo apt update
Git не всегда установлен по умолчанию, поэтому, далее:
sudo apt install git git-core git-doc
Далее, если Вы ещё не установили php, то:
sudo apt install php php-fpm
На моём апельсине установлена версия 8.1, чтобы посмотреть установленную версию, воспользуйтесь командой:
php -v
Соответственно, далее:
sudo apt install php-gd php-curl php-intl php-xmlrpc php-json php-zip php-soap php-mbstring
В туториале мудл ещё mysql сервер предлагают установить, но ранее в обзоре мы ставили Mariadb (и я всё-таки собираюсь ставить на PostgreSql), но если по какой-то причине Вам MySql более симпатичен, Ваше право можете поставить его.
Далее, как в туториале:
sudo git clone https://github.com/moodle/moodle.git
Ждём загрузку, после:
sudo chown -R $USER:$USER moodle
sudo chmod 0777 moodle
cd moodle
sudo mkdir /var/www/moodledata
sudo chmod 0777 /var/www/moodledata
Теперь откройте в браузере И можно проверить: IP/moodle/
Должно получиться, как-то так:
В туториале moodl’а каталог данных устанавливается по пути var/moodledata, при установке системы в пути по умолчанию, фигурирует каталог www (вообще это логично, поскольку доступ к каталогу var на удалённом сервере иногда могут и не дать вовсе, ограничив пользователя содержимым каталога www), поэтому мы изначально и создавали каталог moodledata в www.
Далее мы переходим к базе данных, как я уже писал, достаточно для работы Mariadb или Mysql, но с недавних пор для меня стало актуальным уметь работать с PostgreSql, поэтому я эту СУБД внедряю, где только возможно и невозможно. Вам моя печаль, вероятно, неведома, поэтому оставьте, например, Mariadb. Если же тоже решили поставить PostgreSql, то её можно установить следующей командой:
sudo apt install postgresql postgresql-contrib
И также расширение, для php:
sudo apt install php-pgsql
Далее
На этом моменте нам придётся вернуться в терминал апельсина и выполнить следующие действия:
sudo su - postgres
psql
в консоли psql:
CREATE USER moodle WITH PASSWORD 'password';
CREATE DATABASE moodle;
GRANT ALL PRIVILEGES ON DATABASE moodle to moodle;
\q
Где пароль Вы указываете свой и постарайтесь его не забыть. Далее:
exit
Возвращаемся в браузер:
Соглашаемся с авторскими правами. Далее идёт проверка всех настроек и есть вероятность того, что у Вас тоже будет вот так:
Нам говорят, что надо изменить значение max_input_vars на не менее 5000. Мы снова отправляемся в терминал orangepi, где вводим:
sudo nano /etc/php/8.1/fpm/php.ini
Обратите внимание, версия php у Вас может отличаться. Меняем:
На:
Сохраняем (Ctrl+S) и выходим из nano (Ctrl+X). Перезапускаем fpm (не забываем про версию):
sudo systemctl restart php8.1-fpm
Сертификат настраивать я в этот раз не буду, не критичное требование, двигаемся дальше. После нас ждёт целая простыня текста, устанавливаемых модулей (и времени, которое потребовалось на их установку).
Нажимаем продолжить, и вот здесь нас ждёт неприятный момент.
Стили «поплыли», к сожалению, прямо сейчас мы ничего с этим не можем поделать, придётся оформлять учётную запись админа именно в таком виде, но дальше, мы это обязательно исправим. После того, как разобрались с профилем администратора, будет предложено назвать сам сайт Moodle, далее указать почту тех-поддержки. И буквально сразу же после этого будет страница, где наверху будет панель «Перейти к основному содержанию», а ниже её вот такая перечень:
Нас отсюда интересует «Администрирование»:
«Сервер»:
«HTTP»:
Использовать «slash arguments» — убираем галочку с "Да". И нажимаем на «Сохранить изменения». На этом моменте установку «Чистого Moodle» (без контента и дизайна) на OrangePi можно считать законченной.