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 --reloadphpMyAdmin теперь установлен и настроен. Теперь пришло время проверить, работает ли он.
Откройте ваш веб-браузер и введите URL http://your-server-ip/phpmyadmin. Вы будете перенаправлены на следующую страницу:

Защита 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. Вам будет предложено ввести учетные данные пользователя, которого вы ранее создали, как показано ниже:

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

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

Заключение
Поздравляем! Вы успешно установили и защитили phpMyAdmin на сервере CentOS 8. Теперь вы можете создавать базы данных, пользователей, таблицы и управлять ими через веб-интерфейс. Не стесняйтесь задавать мне вопросы, если у вас есть какие-либо.
Get new posts in your inbox
No spam. Unsubscribe anytime.