phpMyAdmin · 6 min read · Nov 06, 2025

Установка и защита phpMyAdmin на CentOS 8

phpMyAdmin — это бесплатный и открытый инструмент для управления серверами MySQL и MariaDB через веб-интерфейс. С помощью phpMyAdmin вы можете создавать и управлять базами данных и пользователями, выполнять SQL-запросы, импортировать и экспортировать данные, а также выполнять операции с базами данных, такие как создание, удаление, таблиц, столбцов, индексов, разрешений и многое другое. phpMyAdmin является одним из самых популярных и широко используемых инструментов администрирования, особенно для веб-хостинга.

Особенности

  • Предоставляет простой и удобный веб-интерфейс.

  • Импорт данных из CSV и SQL.

  • Поддерживает большинство функций MySQL, включая создание, копирование, удаление, переименование, удаление и изменение баз данных, таблиц, полей и индексов.

  • Позволяет экспортировать данные в различные форматы, такие как PDF, CSV, SQL, XML и многие другие.

  • Управление несколькими серверами.

  • Создание сложных запросов с использованием запроса по примеру (QBE).

В этом руководстве мы покажем вам, как установить и защитить phpMyAdmin на сервере CentOS 8.

Требования

  • Сервер с установленной CentOS 8.

  • Настроенный пароль root на сервере.

Установка LAMP-сервера

Сначала вам нужно установить Apache, MariaDB, PHP и другие библиотеки PHP на ваш сервер. Вы можете установить все из них с помощью следующей команды:

dnf install httpd mariadb-server php php-pdo php-pecl-zip php-json php-common php-fpm php-mbstring php-cli php-mysqlnd php-json php-mbstring wget unzip

После установки всех пакетов запустите службы Apache и MariaDB и включите их автозагрузку после перезагрузки системы с помощью следующей команды:

systemctl start httpd  
systemctl start mariadb  
systemctl enable httpd  
systemctl enable mariadb

После завершения вы можете перейти к следующему шагу.

Настройка MariaDB

По умолчанию MariaDB не защищена. Поэтому вам нужно сначала защитить ее. Вы можете сделать это, запустив скрипт mysql_secure_installation:

mysql_secure_installation

Ответьте на все вопросы, как показано ниже:

Установить пароль root? [Y/n] Y
Новый пароль: 
Удалить анонимных пользователей? [Y/n] Y
Запретить удаленный вход root? [Y/n] Y
Удалить тестовую базу данных и доступ к ней? [Y/n] Y
Перезагрузить таблицы привилегий сейчас? [Y/n] Y

После завершения вы должны увидеть следующий вывод:

 ... Успех!

Очистка...

Все готово! Если вы выполнили все вышеперечисленные шаги, ваша установка MariaDB теперь должна быть защищена.

Спасибо за использование MariaDB!

На этом этапе ваша установка MariaDB защищена.

Установка phpMyAdmin

По умолчанию phpMyAdmin недоступен в стандартном репозитории CentOS 8. Поэтому вам нужно будет скачать последнюю версию phpMyAdmin с их официального сайта. Вы можете скачать ее с помощью следующей команды:

wget https://files.phpmyadmin.net/phpMyAdmin/4.9.2/phpMyAdmin-4.9.2-all-languages.zip

После загрузки распакуйте загруженный файл с помощью следующей команды:

unzip phpMyAdmin-4.9.2-all-languages.zip

Затем переместите извлеченное содержимое в каталог /usr/share, как показано ниже:

mv phpMyAdmin-4.9.2-all-languages /usr/share/phpmyadmin

Далее измените каталог на /usr/share/phpmyadmin и переименуйте файл config.sample.inc.php:

cd /usr/share/phpmyadmin  
mv config.sample.inc.php config.inc.php

Затем откройте файл в вашем любимом текстовом редакторе, как показано ниже:

nano config.inc.php

Измените следующую строку:

$cfg['blowfish_secret'] = 'ваш-секретный-пароль';

Сохраните и закройте файл, когда закончите. Затем импортируйте create_tables.sql с помощью следующей команды:

mysql < /usr/share/phpmyadmin/sql/create_tables.sql -u root -p

Введите ваш пароль root, когда будет предложено импортировать таблицу.

Далее создайте временный каталог для phpmyadmin и задайте правильные разрешения:

mkdir /usr/share/phpmyadmin/tmp  
chown -R apache:apache /usr/share/phpmyadmin  
chmod 777 /usr/share/phpmyadmin/tmp

Настройка Apache для phpMyAdmin

Далее вам нужно будет создать файл конфигурации виртуального хоста Apache для phpMyAdmin. Вы можете создать его с помощью следующей команды:

nano /etc/httpd/conf.d/phpmyadmin.conf

Добавьте следующие строки:

Alias /phpmyadmin /usr/share/phpmyadmin


   AddDefaultCharset UTF-8

   
     # Apache 2.4
      
      Require all granted
     
   
   
     # Apache 2.2
     Order Deny,Allow
     Deny from All
     Allow from 127.0.0.1
     Allow from ::1
   



   
     # Apache 2.4
     
       Require all granted
     
   
   
     # Apache 2.2
     Order Deny,Allow
     Deny from All
     Allow from 127.0.0.1
     Allow from ::1
   

Сохраните и закройте файл, когда закончите. Затем перезапустите службу Apache с помощью следующей команды:

systemctl restart httpd

Вы можете проверить статус Apache с помощью следующей команды:

systemctl status httpd

Вы должны увидеть следующий вывод:

? httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/httpd.service.d
           ??php-fpm.conf
   Active: active (running) since Wed 2019-12-18 01:07:52 EST; 6s ago
     Docs: man:httpd.service(8)
 Main PID: 5636 (httpd)
   Status: "Started, listening on: port 80"
    Tasks: 213 (limit: 25044)
   Memory: 28.7M
   CGroup: /system.slice/httpd.service
           ??5636 /usr/sbin/httpd -DFOREGROUND
           ??5639 /usr/sbin/httpd -DFOREGROUND
           ??5640 /usr/sbin/httpd -DFOREGROUND
           ??5641 /usr/sbin/httpd -DFOREGROUND
           ??5642 /usr/sbin/httpd -DFOREGROUND

Dec 18 01:07:52 centos8 systemd[1]: Stopped The Apache HTTP Server.
Dec 18 01:07:52 centos8 systemd[1]: Starting The Apache HTTP Server...
Dec 18 01:07:52 centos8 httpd[5636]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::200:d0>
Dec 18 01:07:52 centos8 httpd[5636]: Server configured, listening on: port 80
Dec 18 01:07:52 centos8 systemd[1]: Started The Apache HTTP Server.

Настройка SELinux и брандмауэра

По умолчанию SELinux включен в CentOS 8. Поэтому вам нужно будет настроить SELinux для корректной работы phpMyAdmin.

Сначала установите пакет policycoreutils-python-utils для управления средой SELinux с помощью следующей команды:

dnf install policycoreutils-python-utils

Затем разрешите доступ к каталогу /usr/share/phpmyadmin с помощью следующей команды:

semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/phpmyadmin/'  
semanage fcontext -a -t httpd_sys_rw_content_t "/usr/share/phpmyadmin/tmp(/.*)?"

Теперь рекурсивно пройдите по всем файлам в вашем каталоге phpmyadmin, выполнив следующую команду:

restorecon -Rv '/usr/share/phpmyadmin/'

Далее вам нужно будет создать правило брандмауэра, чтобы разрешить HTTP-сервис из внешних сетей. Вы можете разрешить это с помощью следующей команды:

firewall-cmd --permanent --add-service=http  
firewall-cmd --reload

phpMyAdmin теперь установлен и настроен. Теперь пришло время проверить, работает ли он.

Откройте ваш веб-браузер и введите URL http://your-server-ip/phpmyadmin. Вы будете перенаправлены на следующую страницу:

PHPMyAdmin Login

Защита phpMyAdmin

На этом этапе экземпляр phpMyAdmin работает правильно. Однако защита вашего экземпляра phpMyAdmin от внешнего мира является важной задачей для вас. В этом разделе мы покажем вам, как защитить ваш экземпляр phpMyAdmin.

Разрешить доступ к phpMyAdmin с определенного IP

Сначала вам нужно будет настроить ваш phpMyAdmin так, чтобы он был доступен только с IP-адреса вашего домашнего подключения.

Вы можете настроить это, отредактировав файл /etc/httpd/conf.d/phpmyadmin.conf:

nano /etc/httpd/conf.d/phpmyadmin.conf

Найдите следующие строки:

     
       Require all granted
     

И замените их на следующие:


    Require ip ваш-ip-адрес-домашнего-подключения
    Require ip ::1

Сохраните и закройте файл, когда закончите.

Настройка дополнительного уровня аутентификации

Это хорошая идея — защитить директорию phpmyadmin паролем, настроив базовую аутентификацию.

Для этого создайте новый файл аутентификации с помощью инструмента htpasswd, как показано ниже:

mkdir /etc/phpmyadmin  
htpasswd -c /etc/phpmyadmin/.htpasswd admin

Вас попросят ввести ваш пароль администратора, как показано ниже:

Новый пароль: 
Повторите новый пароль: 
Добавление пароля для пользователя admin

Далее вам нужно будет настроить Apache для использования файла .htpasswd. Вы можете сделать это, отредактировав файл /etc/httpd/conf.d/phpmyadmin.conf.

nano /etc/httpd/conf.d/phpmyadmin.conf

Добавьте следующие строки под строкой “AddDefaultCharset UTF-8”:

    Options  +FollowSymLinks +Multiviews +Indexes
    AllowOverride None
    AuthType basic
    AuthName "Требуется аутентификация"
    AuthUserFile /etc/phpmyadmin/.htpasswd
    Require valid-user

Сохраните файл и перезапустите службу Apache, чтобы изменения вступили в силу:

systemctl restart httpd

Доступ к phpMyAdmin

Теперь ваш экземпляр phpMyAdmin защищен дополнительным уровнем безопасности. Откройте ваш веб-браузер и введите URL http://your-server-ip/phpmyadmin. Вам будет предложено ввести учетные данные пользователя, которого вы ранее создали, как показано ниже:

Secured phpMyAdmin

Введите ваше имя пользователя и пароль администратора, затем нажмите кнопку OK. Вы будете перенаправлены на страницу входа phpMyAdmin:

Login as root user to phpMyAdmin

Теперь введите учетные данные вашего административного пользователя MySQL и нажмите кнопку Go. Вы должны увидеть следующую страницу:

phpMyAdmin database dashboard

Заключение

Поздравляем! Вы успешно установили и защитили phpMyAdmin на сервере CentOS 8. Теперь вы можете создавать базы данных, пользователей, таблицы и управлять ими через веб-интерфейс. Не стесняйтесь задавать мне вопросы, если у вас есть какие-либо.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.