понедельник, 17 октября 2022 г.

Rocky Linux 9. Установка MariaDB 10.9.3, Apache, PHP8.1, PhpMyAdmin 5.2.0

Установка MariaDB

Устанавливаем репозитарий MariaDB.
# curl -LsS https://r.mariadb.com/downloads/mariadb_repo_setup | sudo bash
Устанавливаем свежую стабильную версию MariaDB. На момент написания - это 10.9.3.
# yum install mariadb-server
Добавляем в автозапуск и запускаем сервис:
# systemctl enable mariadb.service
# systemctl start mariadb.service

Запускаем скрипт, инициализирующий удаление лишних тестовых баз и гостевых пользователей. Следующие ответы позволят задать root пароль для базы данных и позволить подключаться в базе с паролем root
# mariadb-secure-installation
    Switch to unix_socket authentication [Y/n] Y
    Change the root password? [Y/n] Y
    New password: <вводим пароль>
    Re-enter new password: <вводим пароль еще раз>
    Remove anonymous users? [Y/n] Y
    Disallow root login remotely? [Y/n] n
    Remove test database and access to it? [Y/n] Y
    Reload privilege tables now? [Y/n] Y


Открываем возможность доступа к Mariadb по сети:
# firewall-cmd --permanent --add-service=mysql
# firewall-cmd --reload


Установка Apache
# yum install httpd
# nano /etc/httpd/conf/httpd.conf

Имя сервера прописывается в директиве ServerName
ServerName serv.domain.ru:80
Добавляем сервер Apache в скрипт автозапуска и запускам сервис
# systemctl enable httpd.service
# systemctl start  httpd.service

Открываем порт 80 в файрволл:
# firewall-cmd --permanent --add-service=http
# firewall-cmd --reload

Проверяем работу Apache обратившись к серверу так: http://<IP-сервера>

Установка PHP 8.1.11
# dnf install https://rpms.remirepo.net/enterprise/remi-release-9.rpm
# dnf module reset php
# dnf module install php:remi-8.1
# dnf install php-gd php-odbc php-mysqlnd php-mysqli php-bcmath php-ctype php-json

Перезапускаем web-сервер
# systemctl restart httpd.service
Создаем файл для проверки работы PHP
# nano /var/www/html/info.php
вписываем туда
<?php phpinfo(); ?>
Теперь при запросе страницы Info.php (http://<IP-сервера>/info.php ) можно увидеть информацию о модуле PHP

Установка PHPMYADMIN.
# dnf install phpmyadmin
# nano /etc/httpd/conf.d/phpMyAdmin.conf

Добавляем Require all granted под Require local
<Directory /usr/share/phpMyAdmin/>
   AddDefaultCharset UTF-8
   Require local
   Require all granted
</Directory>

Перезапускаем сервер Apache
# systemctl restart httpd.service
Теперь к странице phpmyadmin можно обратиться так: http://<IP-сервера>/phpmyadmin

Для добавления настроек, включающих дополнительные возможности PHPMYADMIN выполняем следующее:
Создаем базу данных для служебной информации:
# mysql < /usr/share/phpMyAdmin/sql/create_tables.sql -u root -p
Раскомментируем дополнительные возможности phpmyadmin в конфигурационном файле config.inc.php:
# nano /etc/phpMyAdmin/config.inc.php
Раскомментируем стоки:
 // Это логин пользователя, который можно сменить
 $cfg['Servers'][$i]['controluser'] = 'pma';
 // Пароль по умолчанию pmapass, который нужно обязательно заменить
 $cfg['Servers'][$i]['controlpass'] = 'pmapass123';
 $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
 $cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
 $cfg['Servers'][$i]['relation'] = 'pma__relation';
 $cfg['Servers'][$i]['table_info'] = 'pma__table_info';
 $cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
 $cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
 $cfg['Servers'][$i]['column_info'] = 'pma__column_info';
 $cfg['Servers'][$i]['history'] = 'pma__history';
 $cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
 $cfg['Servers'][$i]['tracking'] = 'pma__tracking';
 $cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
 $cfg['Servers'][$i]['recent'] = 'pma__recent';
 $cfg['Servers'][$i]['favorite'] = 'pma__favorite';
 $cfg['Servers'][$i]['users'] = 'pma__users';
 $cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
 $cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
 $cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';
 $cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';
 $cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
 $cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';

Подключаемся к консоли mysql и создаем пользователя pma с правами на базу данных phpmyadmin:
# mysql -uroot -p
>GRANT USAGE ON mysql.* TO 'pma'@'localhost' IDENTIFIED BY 'pmapass123';
>GRANT SELECT (
        Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv,
        Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv,
        File_priv, Grant_priv, References_priv, Index_priv, Alter_priv,
        Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv,
        Execute_priv, Repl_slave_priv, Repl_client_priv
        ) ON mysql.user TO 'pma'@'localhost';
>GRANT SELECT ON mysql.db TO 'pma'@'localhost';
>GRANT SELECT (Host, Db, User, Table_name, Table_priv, Column_priv)
        ON mysql.tables_priv TO 'pma'@'localhost';
>GRANT SELECT, INSERT, UPDATE, DELETE ON phpmyadmin.* TO 'pma'@'localhost';

После данных манипуляций нужно выйти и заново зайти на страницу http://<IP-сервера>/phpmyadmin. Теперь можно пользоваться дополнительными возможностями программы.

Комментариев нет:

Отправить комментарий