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

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

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

phpMyAdmin распространяется бесплатно, написан на PHP и поддерживает работу на большинстве популярных операционных систем, включая Linux, Windows и macOS. Это кроссплатформенное решение, которое одинаково хорошо подходит и для локального компьютера, и для удалённого VPS с предустановленной Ubuntu.

В этой статье пошагово разберём установку phpMyAdmin на Ubuntu 20.04, создание пользователей, настройку доступа и базовые меры защиты интерфейса от несанкционированного доступа.

Аренда VPS/VDS от 219 руб/месяц

Преимущества VPS в AdminVPS:

✓ Бесплатное администрирование

✓ Только быстрые NVMe-диски

✓ Защита от DDoS-атак

✓ Быстрая техподдержка

Аренда VPS/VDS виртуального сервера от AdminVPS — это прозрачная и честная услуга с доступной ценой

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

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

  • Сервер с нужной ОС (в нашем случае это 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

Дополнительные модули, устанавливаемые вместе с phpMyAdmin, расширяют функциональность и обеспечивают корректную работу интерфейса. Среди них — поддержка многобайтовых строк (php-mbstring), обработка изображений через GD-библиотеку (php-gd), работа с архивами .zip (php-zip), взаимодействие с JSON-данными (php-json), а также подключение к различным удалённым сервисам (php-curl). Без этих компонентов интерфейс может работать некорректно или не отображать часть данных.

Во время установки в терминале запускается текстовый интерфейс конфигурации. Для управления им используются клавиши: стрелки вверх и вниз — перемещение по пунктам меню, пробел — выбор или снятие отметки с нужного параметра, Tab — переход к кнопке подтверждения (например, «Ок»), Enter — подтверждение выбора. Эти команды особенно важны при установке на сервер без графической оболочки.

  1. Выберем веб-сервер. В открывшемся диалоговом окне инсталлятора отметим пункт apache2, нажав на кнопку Space. Используя для навигации кнопку Tab на клавиатуре, выделим Ок и нажмём «Ввод». Обратите внимание, что пункт apache2 может быть по умолчанию подсвечен цветом, но при этом он не выбран; для выбора нажмите «Пробел».
Пункт 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-прав
Проверка 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 на VPS

Если вы устанавливаете phpMyAdmin на VPS-сервере, важно учесть особенности безопасности, характерные для удалённых хостингов. На виртуальных серверах, особенно доступных из Интернета, панель phpMyAdmin часто становится целью автоматизированных атак. Поэтому недостаточно просто установить панель — необходимо заранее принять меры по её защите.

Вот несколько ключевых рекомендаций:

1. Ограничьте доступ по IP-адресу. Чтобы полностью исключить посторонний доступ, настройте файрвол сервера (например, UFW) так, чтобы к порту, на котором доступен phpMyAdmin, могли обращаться только ваши IP-адреса.

Пример правила для UFW:

sudo ufw allow from ВАШ_IP to any port 80

2. Перенесите phpMyAdmin с основного адреса. По умолчанию интерфейс доступен по пути yourdomain.com/phpmyadmin. Злоумышленники сканируют такие стандартные пути. Чтобы усложнить им задачу, переименуйте путь, создав символическую ссылку, например:

sudo mv /usr/share/phpmyadmin /usr/share/hiddenpanel
sudo ln -s /usr/share/hiddenpanel /var/www/html/secureadmin

И тогда вход будет осуществляться через yourdomain.com/secureadmin.

3. Используйте HTTPS. Передача логинов и паролей в открытом виде — огромный риск. Обязательно установите SSL-сертификат (например, через Let’s Encrypt) и перенаправьте весь HTTP-трафик на HTTPS.

sudo apt install certbot python3-certbot-apache
sudo certbot --apache

4. Не используйте root-пользователя. Даже если вы сменили метод аутентификации и открыли root-доступ, для повседневной работы создайте отдельного пользователя с ограниченными правами. Это уменьшит риск при компрометации панели.

5. Включите двухфакторную аутентификацию (2FA) на сервере. Если вы используете административный доступ по SSH, настройте 2FA. Это не касается напрямую phpMyAdmin, но обезопасит сам сервер.

6. Регулярно обновляйте phpMyAdmin. Следите за новыми версиями — уязвимости в старых релизах быстро становятся известны в сети. Обновить можно через:

sudo apt update && sudo apt upgrade

Эти шаги позволяют использовать phpMyAdmin на VPS не только удобно, но и безопасно — без угрозы взлома и утечки данных.

Безопасность 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 станет возможным только при прохождении дополнительной проверки подлинности пользователя.

Заключение

Установка phpMyAdmin на Ubuntu — логичный шаг для тех, кто предпочитает управлять базами данных через удобный веб-интерфейс, а не вручную в терминале. Мы разобрали процесс пошагово: от подготовки окружения до настройки доступа, смены метода аутентификации и создания отдельных пользователей с нужными правами.

Особое внимание стоит уделить защите панели управления, особенно если вы используете VPS, доступный из Интернета. Мы показали, как ограничить доступ по IP, включить HTTPS, скрыть стандартный путь к интерфейсу и настроить базовую аутентификацию через .htaccess. Всё это существенно повышает уровень безопасности и снижает риск взлома.

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

Соблюдение этих рекомендаций позволит вам не только эффективно работать с базами данных, но и держать под контролем безопасность проекта — будь то личный сайт, клиентский проект или полноценный продакшен на VPS.

Читайте в блоге:

Loading spinner
0 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

VPN на VPS-сервере

Узнайте, как создать собственный VPN на VPS-сервере для защиты ваших конфиденциальных данных!

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

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