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

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

5 min read Базы данных Обновлено 07 Nov 2025
Установка phpMyAdmin на Alma Linux 8
Установка phpMyAdmin на Alma Linux 8

Логотип phpMyAdmin и интерфейс входа

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

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

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

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

Управление базами данных в 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).

Тестовые случаи

  1. Переход на страницу входа — код 200 и корректная форма.
  2. Успешный вход под пользователем phpmyadmin.
  3. Создание базы с именем test_db, проверка существования.
  4. Импорт простого SQL‑дампа и выполнение SELECT-запроса.
  5. Попытка доступа без HTTPS — перенаправление на HTTPS (если включено).

Короткая методика развертывания (мини‑план)

  1. Установить Nginx, MariaDB, PHP и расширения.
  2. Настроить PHP-FPM на пользователя nginx.
  3. Настроить MariaDB: secure_installation и создать пользователя.
  4. Установить phpMyAdmin и задать blowfish_secret.
  5. Настроить виртуальный хост Nginx и включить HTTPS.
  6. Ограничить доступ и протестировать функциональность.

Глоссарий (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).

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

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

Herodotus: механизм и защита Android‑трояна
Кибербезопасность

Herodotus: механизм и защита Android‑трояна

Включить новое меню «Пуск» в Windows 11
Windows руководство

Включить новое меню «Пуск» в Windows 11

Панель полей сводной таблицы в Excel — руководство
Excel

Панель полей сводной таблицы в Excel — руководство

Включить новое меню «Пуск» в Windows 11
Windows 11

Включить новое меню «Пуск» в Windows 11

Дубликаты Диспетчера задач в Windows 11 — как исправить
Windows

Дубликаты Диспетчера задач в Windows 11 — как исправить

История просмотров Reels в Instagram — как найти
Instagram

История просмотров Reels в Instagram — как найти