Подробно рассказали, как установить phpMyAdmin на ОС Ubuntu 20.04.
Манипуляции с хранилищем данных путём введения текстовых команд через терминал не отличаются удобством. Поэтому среди системных администраторов так популярен phpMyAdmin (PMA) — пользовательская оболочка с графическим интерфейсом, назначение которой — управление удалёнными БД.
Программа распространяется бесплатно, написана на языке PHP и работает в веб-браузере. PMA — кроссплатформенный инструмент, весь функционал которого полностью доступен на разных видах ОС.
Подготовка к установке
Предварительно должны быть установлены:
- Сервер с нужной ОС (в нашем случае это Ubuntu),
- межсетевой экран с настройкой Uncomplicated Firewall,
- Linux,
- Apache,
- MySQL,
- PHP.
Установка phpMyAdmin
Не забываем обновить установленные пакеты сервера непосредственно перед началом инсталляции. Команда, которую вводим для этого в терминале:
$ sudo apt update
Приложение можно установить без дополнений либо одновременно с пакетом расширений, рекомендованных официальной документацией.
- Для установки phpMyAdmin без расширений прописываем:
$ sudo apt install phpmyadmin
Совместная инсталляция с рекомендуемым пакетом:
$ sudo apt install phpmyadmin php-mbstring php-zip php-gd php-json php-curl
Расширения обеспечивают работу с многобайтовыми строками, поддержку загрузки файлов с расширением .zip, работу с GD Graphics Library, с JavaScript Object Notation, загружается модуль, позволяющий PHP налаживать связь с серверами разных типов.
Для навигации в окне установщика используются клавиши Up и Down (перемещение между пунктами внутри списка или раздела), выбор пункта — «Пробел», переход между разделами — клавиша табуляции, ввод (подтверждение) выбранного ответа — Enter.
- Вначале выберем веб-сервер. В открывшемся диалоговом окне инсталлятора отметим пункт apache2, нажав на кнопку Space. Используя для навигации кнопку Tab на клавиатуре, выделим Ок и нажмём «Ввод». Обратите внимание, что пункт apache2 может быть по умолчанию подсвечен цветом, но при этом он не выбран; для выбора нажмите «Пробел».
- Затем ПО-installer предложит создать БД для хранения служебной информации и настроек. Выберем в диалоговом окне Yes и нажмём Enter.
- Выберем пароль для учётки, от имени которой phpmyadmin будет входить в созданное хранилище данных.
Задаём Password в следующем диалоговом окне:
Повторяем ввод и подтверждаем:
На этом установка завершена и приложение доступно в браузере. Введите в адресной строке
ip_address/phpmyadmin
Вместо ip_address из примера нужно вписать уникальный адрес вашего сервера.
Ошибка установки из-за Validate Password
Установленное на вашем сервере расширение Validate Password может помешать создать учетную запись phpmyadmin. Если возникла ошибка, потребуется временно деактивировать этот плагин.
- Прервём процесс установки, выбрав пункт abort.
- Вызовем в терминале MySQL:
$ sudo mysql
- Если проверка подлинности пользователя по паролю для root активна, то введём:
$ mysql -u root –p
- Отключим Validate Password. Данная команда не удаляет плагин, происходит лишь его дезактивация и остановка работы.
mysql> UNINSTALL COMPONENT "file://component_validate_password";
- Выйдем из СУБД..
mysql> exit
- Запустим процесс установки заново. Теперь он должен завершиться без ошибок.
Настройка доступа
Учетная запись суперпользователя
Изначально для суперпользователя установлен доступ посредством auth_socket. Нужно изменить метод проверки подлинности пользователя на ввод пароля.
- Запустим СУБД MySQL:
$ sudo mysql
- Узнаем актуальные подходы к проверке подлинности:
mysql> SELECT user, authentication_string, plugin, host FROM mysql.user;
В полученной таблице в ответ на этот запрос видим метод проверки root-пользователя — это auth_socket:
- Чтобы сменить вход с auth_socket на вход с cashing_sha2_password введём в консоли:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '1111111111';
Вместо «1111111111» задим выбранный пароль.
- Снова проверим тип authentication, повторим команду из пункта 2:
mysql> SELECT user, authentication_string, plugin, host FROM mysql.user;
Таким образом, пользователю с уровнем допуска root соответствует plugin cashing_sha2_password.
Учётная запись нового юзера
Авторизация суперпользователя в phpMyAdmin отключена, так как это небезопасно. Чтобы администрировать БД создают нового пользователя с максимальными полномочиями.
- Перейдём в консоль MySQL и войдем от имени суперпользователя.
- Выполним поочередно три консольные команды. Учётная запись нового пользователя (здесь ему присвоено имя user) создается первой командой. Для него также задаётся пароль «1111111111». Вторая строка предоставляет ему все возможные привилегии: создание, редактирование, удаление БД и тому подобное, возможность самому добавлять учётки и наделять их необходимыми доступами. Последняя строка сохранит внесённые изменения.
mysql> CREATE USER 'user'@'localhost' IDENTIFIED WITH caching_sha2_password BY '1111111111';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
Используйте выбранные вами логин и пароль вместо указанных в примере user и «1111111111».
Настройка конфигурации phpMyAdmin
Файлы конфигурации размещены в каталоге /etc/phpmyadmin.
/etc/phpmyadmin/config.inc.php
Это главный файл конфигурации, содержащий определённые параметры. Их применяют ко всему приложению. Чтобы использовать PMA для ведения БД на удалённом сервере, настроим содержимое файла /etc/phpmyadmin/config.inc.php.
Внесём в него запись:
$cfg['Servers'][$i]['host'] = 'server';
Замените server в приведённом примере на фактический IP удаленного сервера. Также обратите внимание, что хост PMA должен иметь разрешение на доступ к удаленной БД.
Для применения изменений выйдем из приложения и войдём заново.
Безопасность phpMyAdmin
phpMyAdmin не имеет собственных средств обеспечения безопасности. По этой простой причине phpMyAdmin часто пытаются взломать. Применяйте дополнительные способы защиты сервера. Например, разместите программный шлюз между пользователем и всеми приложениями. Для этого создаётся файл, позволяющий управлять Apache и настройками веб-приложения PMA директивами, при этом не меняя содержимого основного конфигурационного файла.
- Создадим файл с расширением .htaccess по адресу /usr/share/phpmyadmin/. Прописываем в файле нужные команды:
AuthType Basic
Authname "Restricted Content"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user
AuthType Basic — определяет тип первичной проверки. Заданный способ — при помощи password.
AuthName — здесь можно ввести текст, который прочитает пользователь при попытке аутентификации.
AuthUserFile — указывает место хранения логинов и паролей.
Require valid-user — устанавливает, кто получает доступ к закрытой области. В данном случае шлюз пропускает только тех, кто успешно прошёл проверку.
- Зададим пароль, заменив user на выбранный логин; его понадобится ввести дважды:
sudo htpasswd -c /etc/phpmyadmin/.htpasswd user
- Пропишем в в файле /etc/apache2/apache2.conf директиву AllowOverride All. В результате сервер будет допускать все директивы файла конфигурации .htaccess во всех директориях:
- Чтобы принятые изменения вступили в силу, сохраняем их и перезапускаем Apache:
sudo systemctl reload apache2
После этих действий войти в учетную запись phpMyAdmin станет возможным только при прохождении дополнительной проверки подлинности пользователя.