Гид по технологиям

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

• 5 min read • Базы данных • Обновлено 16 Nov 2025
phpMyAdmin на Alma Linux 8 — установка и настройка
phpMyAdmin на Alma Linux 8 — установка и настройка

Скриншот логотипа phpMyAdmin и интерфейса установки

Что такое phpMyAdmin

phpMyAdmin — это бесплатный и открытый веб-интерфейс для управления СУБД MySQL и MariaDB. Коротко: он позволяет просматривать, создавать и изменять базы данных и выполнять SQL‑запросы через браузер.

Краткое определение терминов:

  • PHP-FPM — менеджер процессов PHP, выполняет PHP скрипты для Nginx.
  • LEMP — стек Linux, Nginx, MariaDB/MySQL, PHP.

Предварительные требования

  • Сервер с Alma Linux 8.
  • Домен, указывающий на IP сервера (например, phpmyadmin.example.com).
  • Настроенный root-пароль на сервере.
  • Доступ по sudo или root.

Важно: на production-серверах обязательно использовать HTTPS и ограничить доступ к интерфейсу phpMyAdmin по IP или через VPN.

Установка LEMP стека

  1. Установим Nginx и MariaDB:
dnf install nginx mariadb -y
  1. Подключим репозиторий Remi для актуальных сборок PHP:
dnf -y install http://rpms.remirepo.net/enterprise/remi-release-8.rpm
  1. Отключим стандартный модуль PHP и включим Remi‑версию (в примере — PHP 7.4):
dnf module -y reset php  
dnf module install php:remi-7.4 -y
  1. Установим 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-mbstring php-pdo php-pdo-dblib php-xml unzip wget -y
  1. Измените пользователя в конфигурации PHP-FPM, чтобы процессы запускались от nginx:
nano /etc/php-fpm.d/www.conf

В файле:

user = nginx
group = nginx
  1. Запустите и включите сервисы:
systemctl start nginx php-fpm mariadb  
systemctl enable nginx php-fpm mariadb

Создание пользователя для phpMyAdmin

Рекомендуется создать отдельного пользователя БД для операций через phpMyAdmin.

  1. Защитите установку MariaDB:
mysql_secure_installation

Вы будете поэтапно запрошены об установке пароля root, удалении анонимных пользователей и т.д.

  1. Войдите в MariaDB и создайте базу и пользователя:
mysql

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;

Важно: замените ‘password’ на надёжный пароль и ограничьте хост (‘%’) до конкретных IP, если возможно.

Установка phpMyAdmin

  1. Скачайте последнюю стабильную версию с официального сайта (приведён пример):
wget https://files.phpmyadmin.net/phpMyAdmin/5.1.3/phpMyAdmin-5.1.3-all-languages.zip
  1. Распакуйте и переместите в корень веб‑сервера:
unzip phpMyAdmin-5.1.3-all-languages.zip
mv phpMyAdmin-5.1.3-all-languages /usr/share/nginx/phpmyadmin
  1. Скопируйте пример конфигурации и задайте секрет Blowfish:
cp /usr/share/nginx/phpmyadmin/config{.sample,}.inc.php
nano /usr/share/nginx/phpmyadmin/config.inc.php

В файле определите:

$cfg['blowfish_secret'] = 'securekey';

Замените ‘securekey’ на случайную строку как минимум 32 символа.

  1. Установите владельца каталога:
chown -R nginx:nginx /usr/share/nginx/phpmyadmin  
chown -R nginx:nginx /var/lib/php/session/

Конфигурация Nginx для phpMyAdmin

Создайте виртуальный хост:

nano /etc/nginx/conf.d/phpmyadmin.conf

Добавьте конфигурацию:

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

Если вы видите сообщения об успешном запуске — конфигурация корректна.

Настройка файрвола

Разрешите HTTP (и обязательно HTTPS для production) через firewall:

firewall-cmd --permanent --zone public --add-service http
firewall-cmd --reload

Для HTTPS используйте –add-service=https или откройте порт 443.

Доступ к веб UI

Откройте в браузере URL http://phpmyadmin.example.com. На странице входа используйте созданного пользователя (phpmyadmin) и пароль.

Страница входа phpMyAdmin

После входа вы попадёте в интерфейс управления базами данных:

Панель управления phpMyAdmin

Создание базы данных:

Создание базы данных в phpMyAdmin

Удаление базы данных:

Подтверждение удаления базы данных

Безопасность и hardening

Рекомендованные шаги для безопасной эксплуатации:

  • Включите HTTPS (Certbot/Let’s Encrypt) и перенаправляйте весь трафик на 443.
  • Ограничьте доступ к phpMyAdmin по IP с помощью директивы allow/deny или через Nginx (на фронте) и/или через firewall.
  • Смените расположение интерфейса (например, /pma вместо /phpmyadmin) и настройте редиректы — это не панацея, но уменьшает автоматизированные сканирования.
  • Отключите авторизацию cookie в конфиге, если используете внешнюю аутентификацию.
  • Разрешайте вход только через пользователей с минимально необходимыми правами.
  • Регулярно обновляйте phpMyAdmin, PHP и ОС.
  • Включите аудит и логирование действий в базе при помощи плагинов/встроенных средств СУБД.

Важно: web‑доступный интерфейс управления БД — это чувствительная часть инфраструктуры. Планируйте бэкап и тестируйте восстановление.

Альтернативные подходы

  • LAMP (Apache вместо Nginx) — если вы предпочитаете Apache и mod_php.
  • Установка из репозиториев (EPEL/Remi) — проще в поддержке обновлений, но версии могут отставать.
  • Контейнеризация: запуск phpMyAdmin в Docker-контейнере (официальный образ phpmyadmin/phpmyadmin) для изоляции и упрощённого деплоя.
  • Использование других GUI: Adminer (легковесный), MySQL Workbench (настольный клиент).

Критерии приёмки

  • Nginx успешно обслуживает phpMyAdmin по заданному домену.
  • Возможен вход под созданным пользователем и выполнение базовых операций (создание/удаление БД, экспорт/импорт SQL).
  • Конфигурация PHP-FPM запущена от пользователя nginx.
  • Доступ по HTTPS настроен (для production).
  • Логи и права на файлы заданы корректно (nginx:nginx).

Тесты и сценарии приёмки

  • Тест 1: Войти в phpMyAdmin и создать БД test_pma — ожидаемый результат: БД создана.
  • Тест 2: Создать таблицу и вставить запись; выполнить SELECT — данные возвращаются.
  • Тест 3: Попытка доступа по HTTP — перенаправление на HTTPS (если настроено).
  • Тест 4: Попытка доступа с запрещённого IP — доступ заблокирован.

Технический playbook: резервный план и откат

  1. Перед обновлением phpMyAdmin создайте резервную копию каталога и config.inc.php.
  2. Экспортируйте базы данных:
mysqldump -u root -p --all-databases > all_databases.sql
  1. Если обновление ломает сайт — откат:
  • Остановите Nginx/Php-FPM.
  • Восстановите каталог /usr/share/nginx/phpmyadmin из бэкапа.
  • Восстановите config.inc.php.
  • Перезапустите сервисы.

Роль‑ориентированные контрольные списки

Администратор:

  • Настроить HTTPS и firewall.
  • Ограничить доступ по IP.
  • Обновлять пакеты и следить за логами.

Разработчик:

  • Проверить подключение приложения к БД через созданного пользователя.
  • Проверить экспорт/импорт SQL.

Специалист по безопасности:

  • Провести сканирование уязвимостей по доступному интерфейсу.
  • Внедрить аудит и ротацию ключей.

Устранение проблем (troubleshooting)

  • Ошибка 502 Bad Gateway: проверьте, запущен ли php-fpm и правильный путь сокета в Nginx (unix:/run/php-fpm/www.sock).
  • Проблемы с правами на сессии: проверьте владельца /var/lib/php/session/ и права на /usr/share/nginx/phpmyadmin.
  • Неверный blowfish_secret: сессии не будут работать — убедитесь в корректности строки в config.inc.php.

Когда этот подход не подходит

  • Если нужна минимальная нагрузка и малая поверхность атаки — рассмотрите Adminer.
  • Если вы не хотите размещать админку в общедоступной сети — используйте SSH‑троннелирование или VPN.

Рекомендации по обновлениям

  • Обновляйте phpMyAdmin сразу после выхода критических исправлений.
  • Тестируйте обновление в стейджинг‑окружении перед production.

Заключение

Поздравляем — phpMyAdmin установлен и доступен через веб‑интерфейс. На production обязательно включите HTTPS, ограничьте доступ и регулярно обновляйте компоненты. Если нужны примеры конфигурации для HTTPS (Certbot) или Docker‑вариант установки, могу предоставить отдельный пошаговый сценарий.

Краткое резюме:

  • Установили Nginx, MariaDB и PHP-FPM.
  • Сконфигурировали phpMyAdmin и Nginx.
  • Описали меры безопасности, тесты и откат.

Если хотите — предоставлю готовый systemd unit snippet, конфигурацию для HTTPS с Certbot или docker‑compose файл.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро