Для развертывания всего этого безобразия необходимо поставить стек под названием LAMP, что в переводе означает: Linux Apache MySQL PHP*

Решение задания:

  1. В первую очередь необходимо установить MySQL для этого необходимо скачать самый последний пакет с сайта разработчика из-за того что данного пакета нет в репозиториях Debian:
apt install wget
wget https://repo.mysql.com//mysql-apt-config_0.8.29-1_all.deb
  1. После загрузки пакета необходимо запустить его и сконфигурировать установщик:
sudo apt install ./mysql-apt-config_*_all.deb

Выбираем первый пункт и нажимаем на enter. Тут тоже необходимо выбрать первый пункт и нажать на enter После чего нас перекинет в первоначальное меню где нужно выбрать OK и нажать на enter В случае ошибки можно переконфигурировать установщик командой:

dpkg-reconfigure mysql-apt-config
  1. Теперь можно с спокойной душей обновить список пакетов и установить mysql-server.
apt update
apt install mysql-server

После установки нам будет предложено создать пароль на базу данных, вводим пароль который задан экзаменаторами или свой, как душе угодно: Теперь необходимо провести первоначальную настройку MySQL базы при помощи команды:

mysql_secure_installation
  • Тут отражены все переменные которые необходимо нажать на клавиатуре:
root@lms:~# mysql_secure_installation
 
Securing the MySQL server deployment.
 
Enter password for user root:
 
VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?
 
Press y|Y for Yes, any other key for No: y
 
There are three levels of password validation policy:
 
LOW    Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary                  file
 
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 0
Using existing password for root.
 
Estimated strength of the password: 0
Change the password for root ? ((Press y|Y for Yes, any other key for No) : n
 
 ... skipping.
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.
 
Remove anonymous users? (Press y|Y for Yes, any other key for No) : n
 
 ... skipping.
 
 
Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.
 
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : n
 
 ... skipping.
By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.
 
 
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : n
 
 ... skipping.
Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.
 
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success.
 
All done!
root@lms:~#
  1. Теперь необходимо установить веб сервер под названием apache и PHP, а также необходимые расширения для него, для этого необходимо выполнить команду:
apt-get install apache2 php php-mysql libapache2-mod-php php-gd php-curl php-xmlrpc php-intl php-zip php-mbstring php-xml php-soap unzip 
  1. После установки всех компонентов необходимо скачать сам LMS moodle, для этого переходим в папку указанную ниже:
cd /var/www/

И скачиваем последнюю версию lms с сайта на момент написание этих слов:

wget https://packaging.moodle.org/stable403/moodle-latest-403.zip

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

unzip moodle-latest-403.zip

После распаковки права на папку с архивом будут принадлежать root, чтоб передать их apache, необходимо выполнить команду указанную ниже:

chown www-data /var/www/moodle
chown www-data var/www/

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

sudo nano /etc/apache2/sites-available/lms.conf

Вот такое безобразие необходимо добавить в файл:
```YAML
<VirtualHost *:80>
    ServerName lms
    ServerAlias www.lms.local
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/moodle
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Этими 3-мя командами мы создадим наш сайт и удалим стандартный сайт-заглушку apache

a2ensite lms
a2dissite 000-default
systemctl reload apache2

Чтобы избежать дальнейших проблем при установке необходимо отредактировать конфигурацию PHP, для этого необходимо открыть файл:

nano /etc/php/8.2/apache2/php.ini

И при помощи поиска ctrl + w перейти к строчке max_input_vars, раскоментировать ее и указать 5000.

; How many GET/POST/COOKIE input variables may be accepted
max_input_vars = 5000

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

Вводим пароль который был задан при настройке MySQL

P@ssw0rd