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 |
|
Apache 2.4 |
|
PHP ≥ 7.4 |
|
Установите 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.4 | sudo apt install php-xml (метапакет подтянет php7.4-xml) |
8.0 | sudo apt install php8.0-xml |
8.1 | sudo apt install php8.1-xml |
8.2 | sudo 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 интерфейс быстро становится мишенью для ботов и брутфорса. В этом руководстве вы:
Установили актуальную версию 5.1.x вручную, минуя устаревший пакет 4.x из репозитория Ubuntu.
Настроили Apache 2.4 и PHP 7.4 с обязательными модулями, обеспечив корректную работу импорта/экспорта и мультиязычность.
Закрыли основные уязвимости: верные права на
tmp
, нестандартный алиас, файервол, Basic Auth/ограничение IP и отключение root‑логина.Получили чек‑лист «10 пунктов до продакшена», который поможет не забыть критичные моменты перед публикацией.
Следите за обновлениями phpMyAdmin и PHP, регулярно проверяйте журналы Apache на предмет Unauthorized/404, а также тестируйте восстановление из бэкапов. Такой подход гарантирует, что веб‑GUI для MySQL будет не только удобным, но и безопасным.
Помните: безопасность — это процесс. Добавляйте новые меры защиты (Fail2Ban, ModSecurity, WAF) по мере роста проекта и трафика. Только так phpMyAdmin останется вашим надёжным помощником, а не точкой входа для злоумышленников.