
Введение
Хотя многие пользователи нуждаются в функциональности системы управления базами данных, подобной MySQL, они могут чувствовать себя не в своей тарелке, взаимодействуя с системой только через клиент командной строки MySQL.
Чтобы обеспечить взаимодействие пользователей с MySQL через веб-интерфейс, PhpMyAdmin был разработан. В этом руководстве мы рассмотрим установку и защиту PhpMyAdmin, чтобы вы могли без риска использовать его для управления базами данных на системе CentOS.
Основные требования
- Сервер CentOS или RHEL с администратором, не являющимся пользователем root, с привилегиями sudo.
- На вашем сервере установлен стек LAMP. Вы можете следовать этому руководству по установке стека LAMP, чтобы настроить его.
Наконец, при использовании такого программного обеспечения, как PhpMyAdmin, необходимо помнить о важных вопросах безопасности:
- Общается с вашей установкой MySQL напрямую.
- Управляет аутентификацией MySQL.
- Выполняет и возвращает результаты любого SQL-запроса.
По этим причинам, а также из-за того, что PhpMyAdmin является широко распространенным PHP-приложением, которое регулярно подвергается атакам, вы никогда не должны запускать его на удаленных компьютерах через обычное HTTP-соединение. Если у вас еще нет домена с сертификатом SSL/TLS, вы можете использовать этот метод для его создания, защитив Apache с помощью Let’s Encrypt на Ubuntu.
Выполнив эти шаги, вы готовы приступить к работе над этим руководством.
Шаг 1: Установка PhpMyAdmin
Для начала мы установим PhpMyAdmin из стандартного репозитория дистрибутива.
$ sudo yum install epel-release
$ sudo yum install phpmyadmin
Процедура установки помещает файл конфигурации phpMyAdmin Apache в папку /etc/httpd/conf.d/ каталог, где он сразу же будет прочитан.
Перезапустите Apache:
$ sudo systemctl restart httpd.service
На этом установка phpMyAdmin завершена. В веб-браузере перейдите на доменное имя или публичный IP-адрес вашего сервера, а затем /phpMyAdmin:
http://server_IP/phpMyAdmin

Войдите в интерфейс как root или используя другое имя пользователя и пароль.
Шаг 2: Защита инстанции phpMyAdmin
На данный момент экземпляр phpMyAdmin, установленный на нашем сервере, должен быть полностью функциональным. Однако мы открыли нашу систему MySQL для внешнего мира, добавив веб-интерфейс.
Изменение URL доступа приложения
$ sudo nano /etc/httpd/conf.d/phpMyAdmin.conf
В верхней части файла вы увидите две строки, которые выглядят следующим образом:
Alias /phpMyAdmin /usr/share/phpMyAdmin Alias /phpmyadmin /usr/share/phpMyAdmin
Эти две строки являются нашими псевдонимами, что означает, что всякий раз, когда мы обращаемся к доменному имени или IP-адресу нашего сайта, за которым следует либо /phpMyAdmin или /phpmyadmin, нам будет отправлено содержимое по адресу /usr/share/phpMyAdmin.
Чтобы применить желаемые модификации, нужно удалить или закомментировать существующие строки и заменить их своими:
# Alias /phpMyAdmin /usr/share/phpMyAdmin # Alias /phpmyadmin /usr/share/phpMyAdmin Alias /secretpage /usr/share/phpMyAdmin
Чтобы реализовать изменения, перезапустите веб-сервис:
$ sudo systemctl restart httpd.service
Если вы вернетесь в прежнее место установки phpMyAdmin, то получите ошибку 404.
С другой стороны, ваш интерфейс phpMyAdmin будет доступен на новом сайте, который мы выбрали:
http://server_IP/secretpage
Настройка аутентификации на веб-сервере :
Следующей функцией, которую мы хотели использовать в нашей установке, было приглашение к аутентификации, которое пользователь должен был пройти, прежде чем получить доступ к экрану входа в phpMyAdmin.
Откройте ваш файл конфигурации и добавьте AllowOverride All в <Каталог /usr/share/phpmyadmin>
CentOS: /etc/httpd/conf.d/phpMyAdmin.conf
<Directory /usr/share/phpmyadmin>
Options SymLinksIfOwnerMatch
DirectoryIndex index.php
AllowOverride All
. . .
И перезапустите Apache
Теперь, когда вы разрешили использовать файлы.htaccess для вашего приложения, вам нужно создать один из них, чтобы создать правила безопасности.
Создайте файл в папке PhpMyAdmin:
$ sudo nano /usr/share/phpmyadmin/.htaccess
Добавьте следующие строки:
AuthType Basic AuthName "Restricted Files" AuthUserFile /etc/phpmyadmin/.htpasswd Require valid-user
Сохраните и закройте файл, когда закончите.
Вы выбрали /etc/phpmyadmin/.htpasswd в качестве места расположения файла паролей. Теперь вы можете использовать htpasswd создайте этот файл и назначьте ему начального пользователя:
$ sudo htpasswd -c /etc/phpmyadmin/.htpasswd username
затем введите и подтвердите пароль для создаваемого пользователя.
Если вы хотите добавить еще одного пользователя, используйте следующий синтаксис без -c
флага:
$ sudo htpasswd /etc/phpmyadmin/.htpasswd newuser
Затем перезапустите Apache, чтобы включить .htaccess аутентификация.
Когда вы войдете в подкаталог phpMyAdmin, вам будет предложено ввести имя и пароль новой учетной записи:
http://server_IP/secretpage

Заключение
Теперь PhpMyAdmin должен быть установлен и готов к работе на вашем сервере. С помощью этого интерфейса вы можете создавать базы данных, пользователей и таблицы, а также выполнять стандартные операции, такие как удаление и изменение структур и данных.