Установка и настройка phpMyAdmin на Ubuntu

Установка и настройка phpMyAdmin на Ubuntu

Подробно рассказали, как установить phpMyAdmin на ОС Ubuntu 20.04.

Манипуляции с хранилищем данных путём введения текстовых команд через терминал не отличаются удобством. Поэтому среди системных администраторов так популярен phpMyAdmin (PMA) — пользовательская оболочка с графическим интерфейсом, назначение которой — управление удалёнными БД.

Программа распространяется бесплатно, написана на языке PHP и работает в веб-браузере. PMA — кроссплатформенный инструмент, весь функционал которого полностью доступен на разных видах ОС.

Подготовка к установке

Предварительно должны быть установлены:

  • Сервер с нужной ОС (в нашем случае это Ubuntu),
  • межсетевой экран с настройкой Uncomplicated Firewall,
  • Linux,
  • Apache,
  • MySQL,
  • PHP.

Установка phpMyAdmin

Не забываем обновить установленные пакеты сервера непосредственно перед началом инсталляции. Команда, которую вводим для этого в терминале:

 $ sudo apt update

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

  1. Для установки 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.

  1. Вначале выберем веб-сервер. В открывшемся диалоговом окне инсталлятора отметим пункт apache2, нажав на кнопку Space. Используя для навигации кнопку Tab на клавиатуре, выделим Ок и нажмём «Ввод». Обратите внимание, что пункт apache2 может быть по умолчанию подсвечен цветом, но при этом он не выбран; для выбора нажмите «Пробел».
Пункт apache2
  1. Затем ПО-installer предложит создать БД для хранения служебной информации и настроек. Выберем в диалоговом окне Yes и нажмём Enter.
Конфигурация ПО
  1. Выберем пароль для учётки, от имени которой phpmyadmin будет входить в созданное хранилище данных.

Задаём Password в следующем диалоговом окне:

Установка пароля

Повторяем ввод и подтверждаем:

Подтверждение пароля

На этом установка завершена и приложение доступно в браузере. Введите в адресной строке

ip_address/phpmyadmin

Вместо ip_address из примера нужно вписать уникальный адрес вашего сервера.

Вход через браузер

Ошибка установки из-за Validate Password

Установленное на вашем сервере расширение Validate Password может помешать создать учетную запись phpmyadmin. Если возникла ошибка, потребуется временно деактивировать этот плагин.

  1. Прервём процесс установки, выбрав пункт abort.
Отмена установки
  1. Вызовем в терминале MySQL:
$ sudo mysql
  1. Если проверка подлинности пользователя по паролю для root активна, то введём:
$ mysql -u root –p
  1. Отключим Validate Password. Данная команда не удаляет плагин, происходит лишь его дезактивация и остановка работы.
mysql> UNINSTALL COMPONENT "file://component_validate_password";
  1. Выйдем из СУБД..
mysql> exit
  1. Запустим процесс установки заново. Теперь он должен завершиться без ошибок.

Настройка доступа

Учетная запись суперпользователя

Изначально для суперпользователя установлен доступ посредством auth_socket. Нужно изменить метод проверки подлинности пользователя на ввод пароля.

  1. Запустим СУБД MySQL:
$ sudo mysql
  1. Узнаем актуальные подходы к проверке подлинности:
mysql> SELECT user, authentication_string, plugin, host FROM mysql.user;

В полученной таблице в ответ на этот запрос видим метод проверки root-пользователя — это auth_socket:

Проверка root-прав
  1. Чтобы сменить вход с auth_socket на вход с cashing_sha2_password введём в консоли:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '1111111111';

Вместо «1111111111» задим выбранный пароль.

  1. Снова проверим тип authentication, повторим команду из пункта 2:
mysql> SELECT user, authentication_string, plugin, host FROM mysql.user;

Таким образом, пользователю с уровнем допуска root соответствует plugin cashing_sha2_password.

Список пользователей и их права доступа

Учётная запись нового юзера

Авторизация суперпользователя в phpMyAdmin отключена, так как это небезопасно. Чтобы администрировать БД создают нового пользователя с максимальными полномочиями.

  1. Перейдём в консоль MySQL и войдем от имени суперпользователя.
  2. Выполним поочередно три консольные команды. Учётная запись нового пользователя (здесь ему присвоено имя 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 директивами, при этом не меняя содержимого основного конфигурационного файла.

  1. Создадим файл с расширением .htaccess по адресу /usr/share/phpmyadmin/. Прописываем в файле нужные команды:
AuthType Basic
Authname "Restricted Content"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user

AuthType Basic — определяет тип первичной проверки. Заданный способ — при помощи password.

AuthName — здесь можно ввести текст, который прочитает пользователь при попытке аутентификации.

AuthUserFile — указывает место хранения логинов и паролей.

Require valid-user — устанавливает, кто получает доступ к закрытой области. В данном случае шлюз пропускает только тех, кто успешно прошёл проверку.

  1. Зададим пароль, заменив user на выбранный логин; его понадобится ввести дважды:
sudo htpasswd -c /etc/phpmyadmin/.htpasswd user 
  1. Пропишем в в файле /etc/apache2/apache2.conf директиву AllowOverride All. В результате сервер будет допускать все директивы файла конфигурации .htaccess во всех директориях:
Установление правила авторизации
  1. Чтобы принятые изменения вступили в силу, сохраняем их и перезапускаем Apache:
sudo systemctl reload apache2 

После этих действий войти в учетную запись phpMyAdmin станет возможным только при прохождении дополнительной проверки подлинности пользователя.

Что будем искать? Например,VPS-сервер

Мы в социальных сетях