Skip to content
VDS · Бази даних

phpMyAdmin і Adminer: панелі для баз даних

Як встановити вебпанель для бази даних на VDS і закрити її так, щоб вона не стала вхідними дверима: доступ за паролем, обмеження за адресою, альтернативи.

Оновлено 23 серпня 2026 р.

Вебпанель зручна для разових правок і перегляду таблиць. Вона ж є найпоширенішою причиною зламу сервера: адреси /phpmyadmin перебирають автоматично, а форма входу дає прямий доступ до даних.

Adminer: один файл

Adminer — це один PHP-файл, який підтримує MySQL, PostgreSQL і SQLite. Встановлювати нічого не потрібно:

mkdir -p /var/www/tools
curl -L -o /var/www/tools/adminer.php \
  https://github.com/vrana/adminer/releases/latest/download/adminer.php
chown www-data:www-data /var/www/tools/adminer.php

Потрібен робочий PHP-FPM. Файл краще перейменувати на щось неочевидне — це не захист, але позбавляє від масового сканування.

phpMyAdmin

apt install -y phpmyadmin

Пакет підключається до Apache автоматично; для Nginx укажіть шлях вручну:

location /db-panel {
    alias /usr/share/phpmyadmin;
    index index.php;
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_param SCRIPT_FILENAME $request_filename;
        fastcgi_pass unix:/run/php/php8.3-fpm.sock;
    }
}

Обов'язковий захист

Ніколи не встановлюйте панель без цих трьох пунктів.

Доступ лише з вашої адреси:

location /db-panel {
    allow 203.0.113.10;
    deny all;
}

Додатковий пароль на рівні вебсервера:

apt install -y apache2-utils
htpasswd -c /etc/nginx/.htpasswd admin
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;

І третій — лише HTTPS: сертифікат Let's Encrypt. Без нього пароль від бази даних передається у відкритому вигляді.

Найкращий варіант: панель не виставлена назовні

Якщо ваша адреса динамічна, не виставляйте панель назовні взагалі. Налаштуйте SSH-тунель і працюйте з настільним клієнтом — DBeaver, TablePlus, HeidiSQL:

ssh -L 3307:127.0.0.1:3306 root@YOUR_ADDRESS -N

Деталі — віддалений доступ. Так назовні виставлено лише SSH, і панель вам просто не потрібна.

Типові помилки

СимптомПричина
Браузер завантажує adminer.phpPHP не підключено до цього шляху
#1045 Access deniedКористувач бази даних прив'язаний до іншого хоста
Імпорт великого дампа перериваєтьсяupload_max_filesize і max_execution_time замалі; краще імпортувати з консолі
Тисячі запитів до /phpmyadmin у логахРутинне сканування — панель потрібно закрити
Панель працює, а сайт — ніСпільний пул PHP-FPM вичерпано важкими запитами панелі

Дампи через вебпанель на великих базах даних обриваються за таймаутом. Справжній бекап роблять з консолі за розкладом — бекапи бази даних.