[ @moodle @xampp @apache @maria_db @php_my_admin ]
Это инструкция по установке веб-сервиса Moodle в Debian на localhost по адресу http://moodle.yuh (кто ж мне запретит?!) в древнем, классическом, романтическом стиле. Много возни, проще использовать Software:xampp. Но это приятная и интересная возня, после которой ты понимаешь, что и как работает.
Установить MariaDB (ex MySQL)
Установить и сервер, и клиент.
sudo apt install mariadb-server mariadb-client
Проверить статус сервиса БД
systemctl status mariadb
Ожидаемый ответ «Active: active (running)». Выход по «q».
Управление сервисом
- systemctl start mariadb
- systemctl stop mariadb
- systemctl restart mariadb
При запуске ”systemctl start mariadb” следует терпеливо ждать ответа от системы. Если будет fail, следует вынести логи в отдельный файл и посмотреть, в чём дело
sudo journalctl -xe > logs.txt && kate logs.txt &
По-умолчанию сервис MariaBD будет постоянно запускаться вместе с системой. На сегодняшних компьютерах это незаметно.
Для порядка этот сервис полагалось бы запускать/гасить вручную, но systemd запускает его как-то… largo maestoso. Можно кикнуть его автозапуск (systemctl disable mariadb), но тогда при ”systemctl start mariadb” начнутся глобальные проблемы с mysql вроде «”Could not increase number of max_open_files to more than” when starting MySQL or MariaDB» — невозможно установить макс количество файлов, которые mysqld разрешено открывать, бо НЕТ ФАЙЛОВ НАСТРОЕК для mysql, ведь сервис не запущен.
start MariaDB server at each boot
systemctl enable mariadb
Ожидаемый ответ:
Created symlink /etc/systemd/system/mysqld.service → /lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/multi-user.target.wants/mariadb.service → /lib/systemd/system/mariadb.service.
stop MariaDB to start at each boot (не надо)
systemctl disable mariadb
Ожидаемый ответ:
Removed /etc/systemd/system/multi-user.target.wants/mariadb.service.
Removed /etc/systemd/system/mysql.service.
Настроить СУБД
Запустить автоматический скрипт настройкий безопасности MariaDB.
sudo mysql_secure_installation
На первом шаге задать пароль для “root” user к СУБД (и немедленно записать его в бумажный блокнот).
Повсюду отвечать "Y".
- Set root password? [Y/n> –
Сразу записать его в блокнот.
- Remove anonymous users? [Y/n> = Y
- Disallow root login remotely? [Y/n> = Y
- Remove test database and access to it? [Y/n> = Y
- Reload privilege tables now? [Y/n> = Y
Залогиниться как “root” в MariaDB
Указать пароль из предыдущего шага. Ожидаемый ответ — приглашение к вводу команд для СУБД: MariaDB [(none)]]
mysql -u root -p
Позже может случиться так, что логин под root в СУБД будет невозможен. Если так:
- убедиться в том, что запрошен пароль для доступа к БД, а не пароль для sudo (особенно если команда по какой-то причине выглядит как ”sudo mysql -u root -p”,
- переубедиться в том, что при вводе пароля не было ошибок,
- см. в конце этого файла раздел «Как сбросить пароль root в MariaDB на localhost», но то крайняя мера.
Посмотреть существующие базы
SHOW DATABASES;
Как создать новую базу даных с названием test_database
CREATE DATABASE test_database;
SHOW DATABASES;
Как удалить test_database
DROP DATABASE test_database;
SHOW DATABASES;
Сделать отдельного юзера в БД для работы с БД
Потому что постоянно ходить в БД под root — is a security risk.
Например, назвать его ordinary_user_name / ordinary_user_password.
Записать это в блокнот. Заходить в БД только под этим юзером.
CREATE USER 'ordinary_user_name'@'localhost' IDENTIFIED BY 'ordinary_user_password';
exit
Создать базу для ”Moodle”
Залогиниться под безопасным юзером:
mysql -u ordinary_user_name -p
Создать базу с основными настройками (взято из мануала по moodle)
CREATE DATABASE moodle CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Убедиться в том, что она создана:
SHOW DATABASES;
exit
Рестарт mysql
systemctl restart mysql
Install PHP
Установить сразу со всеми зависимостями, которые понадобятся позже для запуска moodle:
sudo apt install php php-mysql php-gd php-intl php-mbstring php-soap php-curl php-zip php-xml php-xmlrpc
Проверить работоспособность PHP на localhost
Создать в ”/var/www/html/” файл info.php (под root):
mcedit /var/www/html/info.php
Вставить/Сохранить:
[?php
phpinfo();
?]
Открыть страницу в браузере. Можно прямо из консоли:
firefox http://localhost/info.php &
Если загрузилась «фиолетовая» страница с информацией о PHP — все ок.
На боевом сервере этот файл лучше сразу удалить, бо он приносит слишком много служебной информации для будущего взломщика. Для localhost эта предосторожность излишняя.
Install Apache
sudo apt install apache2 libapache2-mod-php
Открыть http://localhost/
Apache ищет в /var/www/html/ файлы вроде index.html или index.php. Если они там оба, то он откроет index.html. Если таких файлов нет, в браузере откроется содержимое каталога /var/www/html/
Команды для управления этим сервисом:
- systemctl start apache2.service
- systemctl restart apache2.service
- systemctl stop apache2.service
- systemctl reload apache2.service
- systemctl status apache2.service
- apache2ctl -S /вывод справки о запущенных VirtualHost и ряде действующих настроек/
Install PHPMyAdmin
Пакет phpmyadmin для Stable Debian ещё отсутствует, его можно взять отдельно из сети.
В текущем каталоге будет создан подкаталог «phpMyAdminInstaller»:
wget -P phpMyAdminInstaller https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.tar.gz
Также скачать phpMyAdmin GPG Key
wget -P phpMyAdminInstaller https://files.phpmyadmin.net/phpmyadmin.keyring
Импортировать ключи phpmyadmin
Перейти в папку установщика:
cd phpMyAdminInstaller
Импортировать ключи
gpg --import phpmyadmin.keyring
Скачать .asc file для phpMyAdmin:
wget -P https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.tar.gz.asc
Проверить .asc file:
gpg --verify phpMyAdmin-latest-all-languages.tar.gz.asc
Глазами сравнить указанный хэш ключа (в моем случае 3D06A59ECE730EB71B511C17CE752F178259BD92) с опубликованным на https://docs.phpmyadmin.net/en/latest/setup.html#verifying-phpmyadmin-releases
Unpack and Configure phpMyAdmin
Create a phpMyAdmin directory in the Apache web root directory:
sudo mkdir /var/www/html/phpMyAdmin
Unpack the 'phpMyAdmin' tar.gz files to the newly created directory:
(мы все ещё в 'phpMyAdminInstaller')
sudo tar xvf phpMyAdmin-latest-all-languages.tar.gz --strip-components=1 -C /var/www/html/phpMyAdmin
Create a default configuration file
sudo cp /var/www/html/phpMyAdmin/config.sample.inc.php /var/www/html/phpMyAdmin/config.inc.php
Edit this file to add a secret passphrase to the config.inc.php file (под root)
mcedit /var/www/html/phpMyAdmin/config.inc.php
Locate the following line:
$cfg['blowfish_secret'> = ;''
Придумать себе YOUR_SECRET_PASSPHRASE (записать этот пароль в блокнот) и прописать её в предложенную строку:
$cfg['blowfish_secret'> = 'YOUR_SECRET_PASSPHRASE';
Сохранить config.inc.php файл и выйти.
Change the permissions for the config.inc.phpfile
sudo chmod 660 /var/www/html/phpMyAdmin/config.inc.php
Change ownership of the 'phpMyAdmin' directory:
sudo chown -R www-data:www-data /var/www/html/phpMyAdmin
Restart Apache
sudo systemctl restart apache2
Access phpMyAdmin
Открыть в браузере:
Успешно логинимся с ordinary_user_name
Если нет — ой.
Проверить возможность поднимать сайты на localhost
Создать в /var/www/html/ каталог 'proverka' (под root)
mkdir /var/www/html/proverka/
Создать в этом каталоге файл index.html (под root)
mcedit /var/www/html/proverka/index.html
Добавить в него проверочную строку. Без html тэгов и прочего:
This is site PROVERKA.
Save & Exit ([F2], [F10]).
Назначить системному юзеру 'www-data' права на запись в этот каталог
sudo chown -R www-data:www-data /var/www/html/proverka/ && sudo chmod -R 755 /var/www/html/proverka/
Прописать эти сайты в /etc/hosts
Редактирование этого файла разрешено только уполномоченным лицам с прямыми /dev/hands :
sudo mcedit /etc/hosts
Добавить новую строку для нового сайта.
127.0.0.1 localhost
127.0.0.1 proverka.local.com
Напоминалка:
192.168.0.1 — IP для выхода в сеть, к которой подключён данный компьютер. Обычно по этому адресу находится роутер.
Имена могут быть как уникальными, так и уже существующими. Например:
Создать конфигурационные файлы Apache этих сайтов
cd /etc/apache2/sites-available/ && ls
Там будет шаблон конфига с названием вроде '000-default.conf'. Переименовать его в default.conf — пусть остаётся как пример.
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/default.conf
Отредактировать содержимое файла-примера
sudo mcedit /etc/apache2/sites-available/default.conf
Удалить всё. Вставить это:
[VirtualHost *:80]
ServerAdmin admin@localhost
DocumentRoot /var/www/html
# The DocumentRoot should be specified without a trailing slash.
# ServerAlias ***
[Directory /var/www/html/]
AllowOverride All
Require all granted
[/Directory]
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
[/VirtualHost]
Save & Exit.
Сделать конфиг для сайта 'proverka'
Есть два пути:
- или сделать один большой conf-файл, в котором будут последовательно прописаны все сайты данного сервера;
- или сделать отдельный conf-файл для каждого сайта.
Мне второй путь кажется более адекватным.
sudo cp /etc/apache2/sites-available/default.conf /etc/apache2/sites-available/proverka.conf
Отредактировать конфиг сайта 'proverka'
sudo mcedit /etc/apache2/sites-available/proverka.conf
Заменить всё согласно логике.
ServerName и ServerAlias должны быть те самые, что были прописаны в hosts:
[VirtualHost *:80]
DocumentRoot /var/www/html/proverka
ServerName proverka.local.com
ServerAlias www.proverka.local.com
[Directory /var/www/html/proverka/]
Options +FollowSymlinks
AllowOverride All
Require all granted
[/Directory]
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
[/VirtualHost]
Enable the Apache virtual host files
Включить модуль rewrite
module mod_rewrite is a very powerful and sophisticated module which provides a way to do URL manipulations. With it, you can do nearly all types of URL rewriting that you may need. There is a tendency to treat rewrite rules as magic incantation, using them without actually understanding what they do.
sudo a2enmod rewrite
Если когда-то понадобится его отключить: sudo a2dismod rewrite
Сделать симлинки на конфиг-файлы новых сайтов
Они появятся в служебном каталоге /etc/apache2/mods-enabled :
sudo a2ensite example.conf proverka.conf
Если надо "отключить сайт": использовать команду a2dissite НАЗВАНИЕ_ФАЙЛА.conf
sudo a2dissite proverka.conf
Ожидаемый ответ: a2dissite proverka
To activate the new configuration, you need to run:
systemctl reload apache2
Перезагрузить Apache (хост исчезнет)
sudo systemctl restart apache2 && systemctl status apache2
Отредактировать НАЗВАНИЕ_ФАЙЛА.conf.
Обновить
sudo a2ensite НАЗВАНИЕ_ФАЙЛА.conf
Перезагрузить Apache
sudo systemctl restart apache2 && systemctl status apache2
Restart apache
sudo systemctl restart apache2 && systemctl status apache2
Дежурная проверка всех открытых хостов на данный момент:
apache2ctl -S
Открыть сайт в браузере
Install Moodle
Лишний раз убедиться в том, что запущены сервисы LAMP
systemctl status apache2 mariadb
Снять файлы moodle из сети
Снять последний релиз со знаком + (там багфиксы).
Также снять Language packs. Их содержимое должно пойти в /moodle/lang/
Подготовка moodle к установке
Отсюда уже разумно ”sudo mc”, бо это зона доступа только для админов.
Сделать в /var/www/html/ отдельный каталог для moodle
sudo mkdir /var/www/html/moodle/
Скопировать все файлы moodle из [6.2> в /var/www/html/moodle/
Удалить файл /var/www/html/moodle/index.html — если такой есть. Главным должен быть index.php
Подготовить конфиг Moodle
В каталоге с файлами moodle в файле config-dist.php отредактировать следующие строки:
$CFG-]dbtype = 'mariadb';
$CFG-]dblibrary = 'native'; /по-умолчанию, но важно проверить
$CFG-]dbname = 'moodle'; /по-умолчанию, но важно проверить. База уже создана в [1.3.1]
$CFG-]dbuser = '***'; /имя юзера для БД из [1.2.3]
$CFG-]dbpass = '***'; / пароль юзера для БД из [1.2.3]
Создать в /var/www/html/moodle/ скрытый файл с инструкциями '.htaccess'
sudo touch /var/www/html/moodle/.htaccess
…и вписать в него инструкцию для PHP — set number of variables your server is set to handle in each function (под root):
mcedit /var/www/html/moodle/.htaccess max_input_vars = 3000
Save and exit
Создать каталог для данных для Moodle
Там будут храниться данные про юзеров, курсы и всё такое прочее.
Его нельзя сделать внутри /var/www/html/moodle/, бо ему будут нужны отдельные настройки доступа.
Надо положить его куда-то к себе в /home/:
mkdir /home/moodledata
Set ownership and permissions so that Apache can access the var/www folder
В debian есть юзер ”www-data” специально для этих целей. Ему надо разрешить запись в каталог moodle, обычно с уровнем 755.
Для боевого сервера настройки доступа могут быть иными, с более жесткими ограничениями.
sudo chown -R www-data:www-data /var/www/html/moodle/ && sudo chmod -R 755 /var/www/html/moodle/ && sudo chown www-data /home/moodledata
Если всё ок, ответ будет silent. Иначе ой.
Если позже, при установке Moodle, будет сообщение о том, что в эти каталоги нет доступа, то решение может быть следующее:
- delete all files under moodledata directory,
- delete the database
- recreate again
- reconfigure again.
Отредактировать настройки PHP
Найти /etc/php/ПОСЛЕДНЯЯ_ВЕРСИЯ/apache2/php.ini > edit > cпуститься в самый низ и добавить это:
[moodle]
extension=mysql.so
extension=gd.so
memory_limit = 100M
post_max_size = 100M
upload_max_filesize = 100M
Install Moodle
Открыть http://localhost/moodle/install.php и последовательно разруливать шаг за шагом.
Перепроверить:
- Веб-адрес = http://localhost/moodle
- Каталог Moodle = /var/www/html/moodle
- Каталог данных = /home/moodledata
Выберите драйвер базы данных
- MariaDB
Настройки базы данных
- Сервер баз данных = localhost /по-умолчанию
- Название базы данных = moodle /по-умолчанию
- Пользователь базы данных = прописать ordinary_user_name из [1.2.3]
- Пароль = прописать пароль ordinary_user_name из [1.2.3]
- Префикс имен таблиц = mdl_ /по-умолчанию
Если будет «Обнаружено, что ваш сайт не защищен с помощью HTTPS» — это нормально, это можно отложить на позже.
Убедиться в доступности сервиса
На боевом сервере рекомендуется удалить и файл install.php, и каталог 'install'.
На localhost это несущественно.
Настроить доступ к moodle на localhost по адресу http://moodle.yuh
Отредактировать внутренний конфиг moodle (под root)
mcedit /var/www/html/moodle/config.php
Найти строку:
$CFG->wwwroot = 'http://localhost/moodle'
Переписать её так:
$CFG->wwwroot = 'http://moodle.yuh'
- /etc/apache2/sites-available/moodle.conf
- /etc/hosts
- /var/www/html/moodle/config.php
Прописать новый сайт в /etc/hosts
sudo mcedit /etc/hosts
Добавить строку:
127.0.0.3 moodle.yuh # /var/www/html/moodle
Save & Exit.
Создать Apache conf file для Moodle
Название конфиг-файла будет по имени каталога, в котором будет работать moodle:
sudo touch /etc/apache2/sites-available/moodle.conf
Отредактировать конфиг
sudo mcedit /etc/apache2/sites-available/moodle.conf
Вставить это:
[VirtualHost *:80]
ServerAdmin admin@localhost
DocumentRoot /var/www/html/moodle
ServerName moodle.yuh
ServerAlias www.moodle.yuh
[Directory /var/www/html/moodle/]
Options +FollowSymlinks
AllowOverride All
Require all granted
[/Directory]
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
[/VirtualHost]
Обновить настройки
sudo a2ensite moodle.conf
Перезагрузить Apache
sudo systemctl restart apache2 && systemctl status apache2
Дежурная проверка всех открытых хостов на данный момент:
apache2ctl -S
Открыть в браузере:
Если отображается логин moodle — THE END.
https://tproger.ru/articles/set-up-and-configure-an-apache-server/
Перевод сайта на https
$CFG-]wwwroot = 'https://localhost';
Настройка SSL
SSL (Secure Sockets Layer) — это технология, которая позволяет нам шифровать данные, связанные с соединением между клиентом и сервером. При использовании SSL-сертификатов HTTPS (Hyper Text Transfer Protocol Secure) заменяет HTTP в URL-адресе.
SSL-сертификаты выдаются центром сертификации и могут быть очень дорогими, однако есть два других способа получить сертификат: создать самозаверяющий сертификат или воспользоваться сервисом Let’s encrypt.
Создаём самоподписанный SSL-сертификат
Создание самозаверенного сертификата — несложная задача. Это может быть удобно, если вы просто хотите получить шифрование. Мы можем создать самозаверяющий сертификат с помощью утилиты OpenSSL:
sudo openssl req -x509 \ -days 365 \ -sha256 \ -newkey rsa:2048 \ -nodes \ -keyout example.key \ -out example-cert.pem
Посмотрим, что делает эта команда. Первая опция, -x509определяет, что формируется сертификат стандарта X509.
С помощью -days мы устанавливаем срок действия сертификата в днях. Следующая опция — -newkey. С её помощью мы создаём новый ключ, в данном случае RSA-ключ размером 2048 бит. В тестовом примере нам не нужно шифровать файл закрытого ключа, поэтому используем -nodes. Если эта опция не указана, файл, в котором хранится ключ, будет защищён паролем, который нужно будет предъявлять каждый раз при перезапуске веб-сервера.
С помощью -keyout и -out мы указываем файл для записи сгенерированного ключа и сертификата соответственно. При запуске команды нам будет предложено ответить на несколько вопросов, после чего будет сгенерирован ключ и сертификат.
Скопируйте сгенерированный ключ и сертификат в каталоги /etc/ssl/private и /etc/ssl/ssl-certs соответственно:
sudo cp example-cert.pem /etc/ssl/certs
Сертификат является общедоступным, поэтому не требует специального разрешения.
Теперь ключ:
sudo cp example.key /etc/ssl/private
Важно настроить права доступа к файлу ключа. Папка /etc/ssl/private принадлежит root-пользователю и группе ssl-cert, и у неё есть права доступа 710. Это означает, что владелец имеет на неё полные права, а владелец группы может только получить к ней доступ и перечислить её содержимое, но не может дать разрешение другим:
ls -ld /etc/ssl/private
drwx--x--- 2 root ssl-cert 4096 Mar 16 11:57 /etc/ssl/private
Изменим права доступа к файлу ключа, предоставив владельцу права на чтение и запись, а группе — только для чтения:
sudo chown root:ssl-cert /etc/ssl/private/example.key
sudo chmod 640 /etc/ssl/private/example.key
Теперь, чтобы использовать сертификат, нужно включить модуль SSL с помощью команды a2enmod:
sudo a2enmod ssl
Почти всё готово. Теперь пришло время изменить наш виртуальный хост и настроить его следующим образом:
[VirtualHost *:443]
ServerName www.example.local
SSLEngine on
SSLCertificateKeyFile /etc/ssl/private/example.key
Порт 443 в строке 1 — это порт, используемый для HTTPS (вместо порта 80, используемого для HTTP).
Мы также добавили инструкцию SSLEngine on в строке 6.
Наконец, в строках 8–9 мы определили пути для сертификата и файла ключей, используя инструкции SSLCertificateFile и SSLCertificateKeyFile.
Теперь следуйте инструкциям по открытию порты брандмауэра из начале статьи, но на этот раз чтобы разрешить HTTPS-службу:
sudo ufw allow https
Наконец, перезагрузите конфигурацию Apache:
sudo systemctl reload apache2
Готово. Теперь, если мы перейдём по адресу https://www.example.local, мы должны увидеть веб-сервер, предупреждающий нас о том, что используемый сертификат небезопасен. Это, однако, признак того, что наш сертификат работает, и трафик между клиентом и сервером будет зашифрован (вам необходимо добавить исключение для сертификата, чтобы использовать его).
Настройка Let’s encrypt
Альтернатива коммерческим и самозаверенным сертификатам — «Let’s encrypt». Это бесплатный, автоматизированный и открытый центр сертификации. Его цель — дать возможность автоматически получить сертификат, которому доверяет браузер, без какого-либо вмешательства человека.
Для этого используется протокол ACME (certificate management agent), который запускается на сервере.
Чтобы получить сертификат, вы должны подтвердить, что у вас есть контроль над доменом, для которого вы хотите его использовать. Если у вас нет доступа к shell на сервере, нужно связаться с вашим поставщиком услуг, чтобы активировать сертификат от вашего имени, но, возможно, на панели конфигурации сервиса есть специальный раздел.
Если же у вас есть доступ к shell, необходимо установить клиент certbotACME.
Для установки Certbot на Ubuntu 18.04 достаточно запустить:
sudo apt-get update && apt-get install certbot python-certbot-apache
Пакет Certbot поставляется с модулем systemd timer, который будет запускать Certbot два раза в день, чтобы поддерживать сертификат в актуальном состоянии. Получить сертификат довольно просто:
sudo certbot --apache -m -d
Очевидно, чтобы это работало, домен должен правильно указывать на ваш общедоступный IP-адрес. Certbot предложит вам несколько вопросов для настройки конфигурации, и, если всё пойдёт хорошо, сертификат и ключ будут сохранены в каталоге /etc/letsencrypt/live/. Просто настройте файл виртуального хоста, чтобы указать на них, и всё готово.
Траблшутинг
если MariaDB не запускается
Иногда такое бывает после обновлений, но чаще после неосмотрительных действий. После запуска всё долго думает, затем
Job for mariadb.service failed because the control process exited with error code
See “systemctl status mariadb.service” and “journalctl -xe” for details.
cd /var/lib/mysql
rm -r *
sudo mkdir /var/lib/mysql
sudo chown -R mysql:mysql /var/lib/mysql
sudo mysqld --initialize
sudo mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
Ее также можно запускать так: /usr/bin/mysqld_safe --datadir='/var/lib/mysql'
Проигнорируем это всё.
Там будут служебные файлы. Там же будут появляться каталоги для будущих баз данных (при их создании):
cd /var/lib/mysql && ls
sudo systemctl start mariadb && systemctl status mariadb
sudo mysql_secure_installation
Как сбросить пароль root в MariaDB на localhost
sudo systemctl stop mariadb
Амперсанд в конце строки заставить запускаемый процесс работать в фоне, и можно продолжить командовать в том же окне консоли.
sudo mysqld_safe --skip-grant-tables --skip-networking &
Ожидаемый ответ: MariaDB [(none)]]
mysql -u root
Они же grant tables (таблицы данных юзеров в БД, пароли, явки, разрешения):
FLUSH PRIVILEGES;
Ожидаемый ответ: Query OK, 0 rows affected (0.00 sec)
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
Exit
sudo mysql -u root -p
Переустановка MariaDB
sudo apt remove mariadb-server mariadb-client
sudo rm -R /var/lib/mysql
sudo apt install mariadb-server mariadb-client
systemctl start mariadb
systemctl enable mariadb
Как дать права (все сразу) юзеру 'ordinary_user_name' на базу ’test’ в MariaBD:
GRANT ALL PRIVILEGES ON test.* TO 'ordinary_user_name'@'localhost';
FLUSH PRIVILEGES;
exit
Ожидаемый ответ: MariaDB [(none)]]:
mysql -u ordinary_user_name -p
SHOW DATABASES;
exit
Есть вероятность, что каких-то зависимостей не будет
Читаем внимательно сообщения на экране и действуем.
Разобраться, куда это нужно
"user" config in /etc/apache2/httpd.conf
vhosts in /etc/apache2/sites-available files (one per file, typically)
00-domain.com,
01-otherdomain.com
mods in /etc/apache2/mods-available
Depending on personal preference, you can restart Apache using apachectl, /etc/init.d/apache2 (start|stop|reload|restart), or service apache2 (start|stop|reload|restart)
An example where you would use httpd.conf instead of a vhost entry would be for a global redirect or rewrite rule, for example.
DocumentRoot /var/www/html/
#ServerAlias ***
Options +FollowSymlinks
AllowOverride All
Require all granted
[/Directory]
CustomLog ${APACHE_LOG_DIR}/access.log combined