Установка phpMyAdmin на Alma Linux 8

phpMyAdmin — бесплатное и открытое приложение для управления базами данных MySQL и MariaDB через веб-интерфейс. Оно написано на PHP и обеспечивает удобный интерфейс для выполнения SQL‑запросов, управления базами и пользователей. Работает на большинстве ОС: Windows, macOS, Linux и BSD.
В этом руководстве вы научитесь устанавливать phpMyAdmin на Alma Linux 8 и настраивать его для безопасной работы с Nginx и PHP-FPM.
Требования
- Сервер с установленным Alma Linux 8.
- Рабочий домен, указывающий на IP сервера (например, phpmyadmin.example.com).
- Настроен пароль root для сервера и доступ к учетной записи с правами sudo.
Шаг 1 — Установка LEMP (Nginx, MariaDB, PHP)
Установите Nginx и MariaDB:
dnf install nginx mariadb -yДобавьте репозиторий Remi для PHP:
dnf -y install http://rpms.remirepo.net/enterprise/remi-release-8.rpmОтключите модуль PHP по умолчанию и включите модуль Remi с версией PHP 7.4:
dnf module -y reset php
dnf module install php:remi-7.4 -yУстановите PHP и необходимые расширения:
dnf install php php-cli php-common php-fpm php-curl php-gd php-mbstring php-process php-snmp php-xml php-zip php-memcached php-mysqlnd php-json php-pdo php-pdo-dblib unzip wget -yОтредактируйте конфигурацию PHP-FPM, чтобы процессы работали от пользователя nginx:
nano /etc/php-fpm.d/www.confНайдите и замените строки:
user = apache
group = apacheна
user = nginx
group = nginxСохраните файл и запустите службы, а также включите их автозапуск:
systemctl start nginx php-fpm mariadb
systemctl enable nginx php-fpm mariadbШаг 2 — Создать пользователя для phpMyAdmin
Рекомендуется выделить отдельного пользователя БД для работы через phpMyAdmin. Сначала выполните скрипт безопасной настройки MariaDB:
mysql_secure_installationЭтот скрипт предложит установить пароль root, удалить анонимных пользователей, запретить удалённый root‑вход и удалить тестовую базу.
Войдите в MariaDB:
mysqlСоздайте базу и пользователя (замените password на надёжный пароль):
MariaDB [(none)]> CREATE DATABASE phpmyadmin CHARACTER SET utf8 COLLATE utf8_unicode_ci;
MariaDB [(none)]> CREATE USER 'phpmyadmin'@'%' IDENTIFIED BY 'password';Разрешите привилегии и примените их:
MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'%';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;Важно: в продуктивной среде ограничьте привилегии до необходимых и принципа наименьших прав.
Шаг 3 — Установка phpMyAdmin
Скачайте архив с официального сайта (в примере используется версия 5.1.3 — замените на актуальную при необходимости):
wget https://files.phpmyadmin.net/phpMyAdmin/5.1.3/phpMyAdmin-5.1.3-all-languages.zipРаспакуйте и переместите в веб‑корень:
unzip phpMyAdmin-5.1.3-all-languages.zip
mv phpMyAdmin-5.1.3-all-languages /usr/share/nginx/phpmyadminСкопируйте пример конфигурации и задайте секрет для шифрования сессий:
cp /usr/share/nginx/phpmyadmin/config{.sample,}.inc.php
nano /usr/share/nginx/phpmyadmin/config.inc.phpВ файле определите секрет blowfish:
$cfg['blowfish_secret'] = 'securekey';Замените securekey на случайную строку длиной не менее 32 символов.
Измените владельца директорий на nginx:
chown -R nginx:nginx /usr/share/nginx/phpmyadmin
chown -R nginx:nginx /var/lib/php/session/Шаг 4 — Настройка Nginx для phpMyAdmin
Создайте виртуальный хост:
nano /etc/nginx/conf.d/phpmyadmin.confДобавьте конфигурацию (замените server_name на ваш домен):
server {
listen 80;
server_name phpmyadmin.example.com;
root /usr/share/nginx/phpmyadmin;
access_log /var/log/nginx/phpmyadmin_access.log;
error_log /var/log/nginx/phpmyadmin_error.log;
index index.php;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_intercept_errors on;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass unix:/run/php-fpm/www.sock;
}
}Проверьте синтаксис и перезапустите сервисы:
nginx -t
systemctl restart nginx php-fpm
systemctl status nginxОжидаемый вывод конфигурации подтвердит корректность.
Шаг 5 — Настройка брандмауэра
Разрешите HTTP (и позже HTTPS):
firewall-cmd --permanent --zone public --add-service http
firewall-cmd --reloadРекомендуется также открыть HTTPS:
firewall-cmd --permanent --zone public --add-service https
firewall-cmd --reloadШаг 6 — Доступ к веб‑интерфейсу
Откройте в браузере URL http://phpmyadmin.example.com. На странице входа введите имя пользователя и пароль, созданные ранее.

После входа вы увидите панель управления phpMyAdmin:

Разделы для создания и удаления баз данных:


Безопасность и жёсткие настройки
Important: phpMyAdmin — критическая точка доступа к данным. Выполните минимум следующих шагов перед открытием доступа в публичный интернет:
- Включите HTTPS с валидным сертификатом (например, Certbot + Let’s Encrypt): установите certbot и настройте автоматическое получение сертификатов.
- Ограничьте доступ по IP в конфигурации Nginx или используйте авторизацию HTTP (Basic Auth) как дополнительный уровень защиты.
- В конфигурации phpMyAdmin используйте аутентификацию типа cookie и сильный blowfish_secret.
- Ограничьте привилегии учётной записи phpmyadmin в самой СУБД до минимально необходимых.
- Рассмотрите привязку phpMyAdmin к localhost с пробросом порта через SSH для администрирования по запросу.
- Регулярно обновляйте phpMyAdmin и PHP‑модули.
Пример базовой защиты Nginx (разрешить доступ только с внутренних IP):
location / {
allow 192.0.2.0/24;
deny all;
try_files $uri $uri/ /index.php?$args;
}Или включите простую HTTP‑аутентификацию:
# сгенерируйте /etc/nginx/.htpasswd
location / {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
try_files $uri $uri/ /index.php?$args;
}Альтернативные подходы
- Использовать Adminer — один файл PHP, легче и быстрее разворачивается для одноразового доступа.
- Установить phpMyAdmin из репозиториев dnf/epel (если доступна нужная версия) — удобнее для автоматических обновлений.
- Использовать контейнеры (Docker) для изоляции и упрощённого деплоя.
Контрольный список по ролям
Системный администратор:
- Установить и обновить пакеты, настроить брандмауэр и HTTPS.
- Настроить мониторинг и бэкапы конфигураций.
DBA:
- Создать пользователи с минимальными привилегиями.
- Настроить аудит и бэкапы баз данных.
Разработчик:
- Проверить работу запросов и экспорт/импорт схем.
- Тестировать в изолированной среде перед выполнением в проде.
Критерии приёмки
- Веб‑страница http://phpmyadmin.example.com загружается без ошибок.
- Вход в систему возможен под созданным пользователем phpmyadmin.
- Можно создать, изменить и удалить тестовую базу данных.
- Все конфигурационные файлы имеют корректные права и владелец nginx.
- Доступ в публичный Интернет защищён HTTPS и хотя бы одной дополнительной мерой (ограничение по IP или Basic Auth).
Тестовые случаи
- Переход на страницу входа — код 200 и корректная форма.
- Успешный вход под пользователем phpmyadmin.
- Создание базы с именем test_db, проверка существования.
- Импорт простого SQL‑дампа и выполнение SELECT-запроса.
- Попытка доступа без HTTPS — перенаправление на HTTPS (если включено).
Короткая методика развертывания (мини‑план)
- Установить Nginx, MariaDB, PHP и расширения.
- Настроить PHP-FPM на пользователя nginx.
- Настроить MariaDB: secure_installation и создать пользователя.
- Установить phpMyAdmin и задать blowfish_secret.
- Настроить виртуальный хост Nginx и включить HTTPS.
- Ограничить доступ и протестировать функциональность.
Глоссарий (1 строчка)
- phpMyAdmin — веб‑интерфейс для управления MySQL/MariaDB.
- LEMP — стек Linux, Nginx, MariaDB/MySQL, PHP.
- PHP-FPM — процессный менеджер для PHP.
Заключение
Поздравляем — вы установили и настроили phpMyAdmin на Alma Linux 8 с Nginx и PHP-FPM. Не забудьте как можно скорее включить HTTPS и дополнительные меры защиты перед публикацией в интернете. Если нужно, могу помочь с конфигурацией HTTPS, настройкой ограничения по IP или созданием скрипта автоматического обновления.
Notes: При использовании другой версии PHP или phpMyAdmin проверьте совместимость расширений и путь сокета PHP-FPM, он может отличаться (/run/php-fpm/www.sock или /var/run/php-fpm/www.sock).
Похожие материалы
Herodotus: механизм и защита Android‑трояна
Включить новое меню «Пуск» в Windows 11
Панель полей сводной таблицы в Excel — руководство
Включить новое меню «Пуск» в Windows 11
Дубликаты Диспетчера задач в Windows 11 — как исправить