Гид по технологиям

Установка и защита phpMyAdmin на Ubuntu 18.04

7 min read DevOps Обновлено 27 Nov 2025
phpMyAdmin на Ubuntu 18.04 — установка и защита
phpMyAdmin на Ubuntu 18.04 — установка и защита

Описание изображения: Вид интерфейса phpMyAdmin на панели управления сервера с таблицей и графиками активности.

phpMyAdmin — бесплатный и открытый инструмент администрирования для MySQL и MariaDB. Это веб-интерфейс, который позволяет удобно управлять базами данных: создавать, редактировать и удалять базы и таблицы, импортировать и экспортировать резервные копии, выполнять поисковые запросы, а также управлять пользователями и правами доступа.

Основные возможности

  • Поддержка множества языков.
  • Импорт данных из CSV и SQL.
  • Отображение живых диаграмм для мониторинга активности сервера MySQL: соединения, процессы, использование CPU/памяти и прочее.
  • Глобальный поиск по базе данных или её части.
  • Простой и интуитивный веб-интерфейс.
  • Экспорт в форматы CSV, SQL, XML, PDF, Word, Excel, LaTeX и другие.

Важно: в этой инструкции мы ориентируемся на Ubuntu 18.04. Для других версий Ubuntu есть отличия в пакетах и пути конфигурации.

Требования

  • Сервер с установленной Ubuntu 18.04.
  • Непривилегированный пользователь с правами sudo.
  • Установленные Apache и MySQL/MariaDB (инструкция ниже покажет установку).

Установка phpMyAdmin

Перед началом нужно установить Apache и MySQL на сервер. Выполните:

sudo apt-get install apache2 mysql-server -y

По умолчанию phpMyAdmin может отсутствовать в стандартных репозиториях Ubuntu 18.04. В руководстве показано добавление стороннего репозитория PHP (ppa:ondrej/php), но прежде чем добавлять репозиторий, убедитесь, что это допустимо в вашей политике безопасности.

Добавление репозитория и установка phpMyAdmin:

sudo apt-get install software-properties-common -y
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install phpmyadmin php-mbstring php-gettext -y

Во время установки выберите Apache в качестве веб-сервера.

Установка phpMyAdmin

Описание изображения: Диалог выбора веб-сервера при установке phpMyAdmin — выбран Apache.

Далее установщик предложит настроить базу данных с помощью dbconfig-common — подтвердите “Yes” и укажите пароль приложения для phpMyAdmin, когда будет предложено.

Настройка базы данных через dbconfig-common

Описание изображения: Окно конфигурации dbconfig-common, предлагающее создать базу данных для phpMyAdmin и ввести пароль.

Если вы задали пароль, установщик сохранит пользователя phpmyadmin и необходимые таблицы. После установки активируйте расширение mbstring и перезапустите Apache:

sudo phpenmod mbstring
sudo systemctl restart apache2

Настройка аутентификации пользователей

phpMyAdmin создаёт базового пользователя phpmyadmin с паролем, заданным при установке. Рекомендуется создать отдельного пользователя для повседневного управления через веб-интерфейс. В новых версиях MariaDB/ MySQL учётная запись root может использовать плагин auth_socket, который позволяет вход по системному пользователю без пароля. Для входа в phpMyAdmin под root необходимо переключить метод аутентификации на mysql_native_password.

  1. Войдите в оболочку MySQL:
sudo mysql
  1. Посмотрите текущие плагины аутентификации:
mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;

Пример вывода показывает, что root использует auth_socket.

  1. Чтобы переключить root на парольную аутентификацию, выполните (замените ‘password’ на надёжный пароль):
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
mysql> FLUSH PRIVILEGES;
  1. Проверьте изменения:
mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;
  1. Создайте отдельного пользователя для phpMyAdmin и выдайте права (замените пароли и имена по политике безопасности):
mysql -u root -p
MariaDB [(none)]> CREATE USER 'phpmyadminuser'@'localhost' IDENTIFIED BY 'password';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'phpmyadminuser'@'localhost' WITH GRANT OPTION;
MariaDB [(none)]> exit;

Теперь откройте браузер и перейдите по адресу http://your-server-ip/phpmyadmin. Введите имя пользователя и пароль, затем нажмите “Go”.

Вход в phpMyAdmin

Описание изображения: Окно аутентификации phpMyAdmin с полями для имени пользователя и пароля.

После успешного входа вы попадёте на панель управления phpMyAdmin.

Панель phpMyAdmin

Описание изображения: Главная панель phpMyAdmin с навигацией по базам данных и таблицам.

Защита phpMyAdmin

По умолчанию phpMyAdmin доступен через веб и может стать целью автоматизированных атак. Рекомендуемые меры защиты:

  • Добавить HTTP-аутентификацию Apache (.htaccess) как дополнительный уровень контроля.
  • Отключить вход root по паролю через веб, если возможно, и использовать отдельные административные учётные записи.
  • Ограничить доступ по IP (Require ip) или использовать VPN/SSH-туннель.
  • Использовать SSL/TLS (HTTPS) и HSTS.
  • Применять обновления безопасности для PHP, Apache и phpMyAdmin.

Пример настройки .htaccess (включает базовую аутентификацию):

Сначала разрешите использование .htaccess в конфигурации phpmyadmin.conf:

sudo nano /etc/apache2/conf-available/phpmyadmin.conf

Измените секцию каталогов на:


    Options SymLinksIfOwnerMatch
    DirectoryIndex index.php
    AllowOverride All

Сохраните файл и перезапустите Apache:

sudo systemctl restart apache2

Создайте файл .htaccess в каталоге phpMyAdmin:

sudo nano /usr/share/phpmyadmin/.htaccess

Добавьте:

AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user

Затем создайте файл паролей и пользователя admin:

sudo htpasswd -c /etc/phpmyadmin/.htpasswd admin

После этого при заходе на http://your-server-ip/phpmyadmin браузер запросит дополнительные учётные данные:

phpMyAdmin защищён .htaccess

Описание изображения: Диалог базовой HTTP-аутентификации, показывающий поле для ввода имени пользователя и пароля .htaccess.

Дополнительные рекомендации по жёсткой защите:

  • Перенесите phpMyAdmin в нестандартный URL (например, /pmadmin-ключ) чтобы снизить количество автоматических сканирований.
  • Ограничьте список разрешённых IP, если у вас фиксированные адреса администратора.
  • Включите двухфакторную аутентификацию на уровне веб-приложения (через прокси/SSO) если доступно.
  • Регулярно проверяйте логи (Apache и PHP) на подозрительную активность.

Чеклист по безопасности (быстрая проверка)

Администратор:

  • Установлены последние обновления OS, PHP, Apache, MySQL/MariaDB и phpMyAdmin.
  • Включён HTTPS и действующий сертификат.
  • Настроено .htaccess или IP-фильтрация.
  • Используются отдельные неполномочные учётные записи для управления.

Разработчик/оператор:

  • Резервные копии БД настроены и протестированы.
  • Мониторинг использования ресурсов включён.
  • Ограничены права SQL-учётных записей согласно принципу наименьших привилегий.

Аудитор/инженер безопасности:

  • Проведено сканирование уязвимостей и устранены критические проблемы.
  • Логи централизованы и настроены оповещения о несанкционированных входах.

План отката и аварийный сценарий

  1. Если после изменения конфигурации Apache сайт недоступен — верните оригинальный phpmyadmin.conf из резервной копии и выполните restart:
sudo cp /etc/apache2/conf-available/phpmyadmin.conf.bak /etc/apache2/conf-available/phpmyadmin.conf
sudo systemctl restart apache2
  1. Если изменения в базе данных привели к ошибкам, восстановите резервную копию SQL:
mysql -u root -p database_name < backup_file.sql
  1. Если внесён неправильный пароль root, используйте безопасный режим восстановления MySQL по официальной процедуре (запуск mysqld с –skip-grant-tables) и затем восстановите пароли.

Важно: перед любыми изменениями делайте бэкап конфигураций и баз.

Критерии приёмки

  • phpMyAdmin доступен по HTTPS и отвечает кодом 200 на главную страницу.
  • Вход в интерфейс возможен только через защищённую учётную запись (после .htaccess и/или по отдельному пользователю).
  • Регулярные бекапы баз данных выполняются и проверены на восстановление.
  • Логи собираются и на них настроены оповещения о подозрительной активности.

Тест-кейсы и приёмочные проверки

  1. Вход по .htaccess: попытка доступа без HTTP-учётных данных должна вернуть 401.
  2. Вход в phpMyAdmin: пользователь phpmyadminuser должен иметь ожидаемые привилегии; root не должен иметь возможности входа без пароля.
  3. Импорт CSV/SQL: тестовый импорт должен успешно создать таблицу и данные.
  4. Экспорт данных: экспорт в SQL должен корректно записать структуры и строки.

Альтернативы и варианты развертывания

  • Adminer — лёгкий однофайловый интерфейс для управления MySQL, меньше зависимостей.
  • Использование SSH-туннеля: вместо прямого веб-доступа пробрасывайте локальный порт к серверу и открывайте phpMyAdmin только локально.
  • Использование облачных сервисов управления БД (например, управляемые базы у провайдера), где веб-интерфейс предоставляется провайдером с встроенной безопасностью.

Когда этот подход не подходит:

  • Если политика безопасности запрещает размещение веб-интерфейсов для управления БД — используйте только CLI и bastion-хост.
  • В среде с высокой комплаенс-нагрузкой (например, строгий PCI) может потребоваться централизованная аутентификация и дополнительное шифрование данных.

Совместимость и советы по миграции

  • Для Ubuntu 20.04/22.04 предпочтительнее использовать официальные репозитории и пакеты PHP, совместимые с вашей версией PHP (7.4, 8.0 и выше). PPA ondrej/php часто используется для более новых версий PHP.
  • При переходе с MySQL на MariaDB проверьте отличия в плагинах аутентификации и особенностях системных таблиц.

Минимальная методология развёртывания (шаблон)

  1. Подготовка: обновление системы, установка Apache, MySQL, PHP.
  2. Установка phpMyAdmin и нужных PHP-расширений.
  3. Конфигурация аутентификации MySQL (если требуется смена плагина для root).
  4. Создание отдельных пользователей для веб-доступа.
  5. Настройка HTTPS и .htaccess / IP-фильтра.
  6. Тестирование доступа и функциональности.
  7. Резервное копирование конфигураций и баз.

Модель принятия решений (диаграмма)

flowchart TD
  A[Начало: Нужно ли веб-управление БД?] -->|Да| B{Можно ли ограничить по IP/VPN?}
  A -->|Нет| Z[Использовать CLI/SSH только]
  B -->|Да| C[Ограничить доступ по IP или VPN]
  B -->|Нет| D{Можно ли добавить .htaccess/2FA?}
  D -->|Да| E[Добавить .htaccess и 2FA через прокси]
  D -->|Нет| F[Отклонить веб-доступ; использовать SSH туннель]
  C --> G[Настроить HTTPS и обновления]
  E --> G
  F --> G
  G --> H[Тестирование и бекапы]
  H --> I[Внедрение в прод]

1‑строчный глоссарий

  • phpMyAdmin — веб-интерфейс для управления MySQL/MariaDB.
  • auth_socket — плагин MySQL, позволяющий аутентификацию по системному пользователю без пароля.
  • .htaccess — файл конфигурации Apache для локальных переопределений доступа.

Советы по соблюдению конфиденциальности

  • Не храните пароли в открытом виде в конфигурационных файлах.
  • Используйте менеджеры секретов или шифрование для ключевых параметров.
  • Ограничьте доступ к файлу /etc/phpmyadmin/.htpasswd только для root.

Краткое объявление для команды (100–200 слов)

phpMyAdmin установлен на Ubuntu 18.04 и настроен с дополнительной HTTP-аутентификацией. Для доступа используйте защищённое соединение HTTPS и учётные данные, выданные администратором. Проведено переключение root-аутентификации на mysql_native_password и создан отдельный пользователь phpmyadminuser с правами управления. Рекомендуется проходить дальше процедуру проверки бэкапов и включить лимиты доступа по IP или VPN.

Социальный предпросмотр

OG title: phpMyAdmin на Ubuntu 18.04 — установка и защита OG description: Пошаговое руководство по установке, настройке учётных записей и защите phpMyAdmin на Ubuntu 18.04 с чеклистами и планом отката.

Ресурсы

  • phpMyAdmin — официальный сайт и документация (посетите для последних инструкций и обновлений).

Итог: после выполнения шагов вы получите работающее и защищённое веб-приложение phpMyAdmin, готовое для безопасного администрирования MySQL/MariaDB. Проверьте и автоматизируйте обновления и резервное копирование, чтобы поддерживать безопасность на регулярной основе.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро