opened image

Установка и харденинг phpMyAdmin 5.1 на Ubuntu 20.04

 

phpMyAdmin давно зарекомендовал себя как универсальный веб‑клиент для администрирования MySQL и MariaDB. Он избавляет от рутины командной строки, позволяя выполнять всё — от создания баз до тонкой настройки привилегий — через привычный браузер. Но развёртывание интерфейса на публичном сервере несёт риски: устаревшие пакеты в репозиториях, неверные права на каталоги, отсутствие HTTPS и открытый для всего мира root‑доступ могут обернуться компрометацией данных.

 

В этой статье мы рассмотрим, как правильно и безопасно развернуть свежий релиз phpMyAdmin 5.1.x на Ubuntu 20.04 Focal Fossa: мы вручную скачаем актуальную сборку, настраиваем Apache 2.4 и PHP 7.4, закрываем уязвимости через алиасы и файервол. Следуя шагам, вы получите надёжный инструмент DBA без лишних дыр в безопасности.

 

Особенности версии Ubuntu 20.04

 

  • Focal Fossa поставляется с PHP 7.4 и Apache 2.4.

  • В репозиториях имеется phpMyAdmin 4.x, поэтому ставим актуальный релиз 5.1.x вручную.

 

1. Предпосылки

 

Компонент

Команда проверки

MySQL/MariaDB

mysql -V

Apache 2.4

apache2 -v

PHP ≥ 7.4

php -v

 

 

Установите MySQL заранее: sudo apt install mysql-server.

 

 

 

2. Установка Apache и модулей PHP

 

sudo apt update && sudo apt install -y \
  apache2 wget unzip \
  php php-mysql php-json php-zip php-mbstring php-xml

sudo systemctl enable --now apache2

Модуль php-mbstring обязателен для авторизации, php-zip — для импорта/экспорта дампов.

 

 

 

3. Загрузка phpMyAdmin 5.1.x

 

cd /tmp
PMA_VER="5.1.1"
wget "https://files.phpmyadmin.net/phpMyAdmin/${PMA_VER}/phpMyAdmin-${PMA_VER}-all-languages.zip"
unzip phpMyAdmin-${PMA_VER}-all-languages.zip
sudo mv phpMyAdmin-${PMA_VER}-all-languages /usr/share/phpmyadmin

 

Создаём временную директорию и назначаем права Apache:

 

sudo mkdir /usr/share/phpmyadmin/tmp
sudo chown -R www-data:www-data /usr/share/phpmyadmin
sudo chmod 770 /usr/share/phpmyadmin/tmp

 

 

 

 

4. Конфигурация Apache

 

Создайте файл /etc/apache2/conf-available/phpmyadmin.conf:

 

Alias /phpmyadmin /usr/share/phpmyadmin
Alias /phpMyAdmin /usr/share/phpmyadmin

<Directory /usr/share/phpmyadmin/>
    Options SymLinksIfOwnerMatch
    AddDefaultCharset UTF-8
    Require all granted
</Directory>

<Directory /usr/share/phpmyadmin/setup/>
    Require all granted
</Directory>

 

 

 

 

Активируйте конфиг и перезапустите Apache:

 

sudo a2enconf phpmyadmin
sudo systemctl restart apache2

Hardening: замените алиас на нестандартный (/dbadmin) и ограничьте доступ по IP или Basic Auth.

 

 

 

5. Настройка Firewall (UFW / FirewallD)

 

UFW:

 

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw reload

 

FirewallD:

 

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

 

 

6. Тестовый вход в phpMyAdmin

 

Откройте:

 

http://SERVER_IP/phpmyadmin

 

 

 

 

Войдите учётными данными MySQL.

 

 

Возможные ошибки:

 

Если при подключении к панели наблюдается ошибка:

 

Composer detected issues in your platform: Your Composer dependencies require the following PHP extensions to be installed: xml

 

Composer ругается, потому что в системе нет модуля XML для вашей версии PHP. Подключение решается в два-три шага.

 

Узнайте, какая у вас версия PHP

 

php -v


Например, вывод может показать 7.4, 8.1 или 8.2. На данном сервере установлена версия 7.4

 

 

 

Для решения данного вопроса, установите соответствующий пакет с расширением XML

 

Версия PHPКоманда установки
7.4sudo apt install php-xml (метапакет подтянет php7.4-xml)
8.0sudo apt install php8.0-xml
8.1sudo apt install php8.1-xml
8.2sudo apt install php8.2-xml

 

 

После установки перезапустите веб-сервер.Проверьте, что расширение загрузилось:

 

php -m | grep -i xml

 

Теперь зависимость xml закрыта, можете повторно подключиться к phpMyAdmin. 

 

 

Дополнительные меры безопасности

 

Переместите интерфейс:

 

Alias /dbadmin /usr/share/phpmyadmin

 

и отключите старые алиасы.

 

Включите HTTPS: воспользуйтесь Certbot:

 

sudo apt install certbot python3-certbot-apache
sudo certbot --apache -d db.example.site

 

Fail2Ban: настройте фильтр по /var/log/apache2/*access.log, чтобы блокировать брутфорс.

 

 

Заключение

 

Развёртывание phpMyAdmin — это не просто «скинуть файлы и открыть в браузере». Без грамотного hardening интерфейс быстро становится мишенью для ботов и брутфорса. В этом руководстве вы:

 

  1. Установили актуальную версию 5.1.x вручную, минуя устаревший пакет 4.x из репозитория Ubuntu.

  2. Настроили Apache 2.4 и PHP 7.4 с обязательными модулями, обеспечив корректную работу импорта/экспорта и мультиязычность.

  3. Закрыли основные уязвимости: верные права на tmp, нестандартный алиас, файервол, Basic Auth/ограничение IP и отключение root‑логина.

  4. Получили чек‑лист «10 пунктов до продакшена», который поможет не забыть критичные моменты перед публикацией.

 

Следите за обновлениями phpMyAdmin и PHP, регулярно проверяйте журналы Apache на предмет Unauthorized/404, а также тестируйте восстановление из бэкапов. Такой подход гарантирует, что веб‑GUI для MySQL будет не только удобным, но и безопасным.

Помните: безопасность — это процесс. Добавляйте новые меры защиты (Fail2Ban, ModSecurity, WAF) по мере роста проекта и трафика. Только так phpMyAdmin останется вашим надёжным помощником, а не точкой входа для злоумышленников.