phpMyAdmin a Adminer: databázové panely
Ako nainštalovať webový panel pre databázu na VDS a zabezpečiť ho, aby sa nestal vstupnou bránou: prístup cez heslo, obmedzenie adries, alternatívy.
Aktualizované 23. augusta 2026
Webový panel je pohodlný na jednorazové úpravy a prezeranie tabuliek. Je to však aj najčastejšia príčina kompromitácie servera: adresy /phpmyadmin sa automaticky brute-forceujú a prihlasovací formulár poskytuje priamy prístup k dátam.
Adminer: jediný súbor
Adminer je jediný PHP súbor a podporuje MySQL, PostgreSQL aj SQLite. Netreba nič inštalovať:
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
Potrebuješ funkčný PHP-FPM. Najlepšie je premenovať súbor na niečo neobvyklé — nie je to ochrana, ale odstráni to hromadné skenovanie.
phpMyAdmin
apt install -y phpmyadmin
Balík sa k Apache pripojí automaticky; pre Nginx zadaj cestu ručne:
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;
}
}
Nevyhnutná ochrana
Nikdy neinštaluj panel bez týchto troch vecí.
Prístup len z tvojej adresy:
location /db-panel {
allow 203.0.113.10;
deny all;
}
Dodatočné heslo na úrovni webového servera:
apt install -y apache2-utils
htpasswd -c /etc/nginx/.htpasswd admin
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
A tretia vec je iba HTTPS: certifikát Let's Encrypt. Bez neho sa heslo k databáze posiela v čistom texte.
Najlepšia možnosť: žiadny panel vystavený navonok
Ak je tvoja adresa dynamická, panel vôbec nevystavuj. Nastav SSH tunel a pracuj s desktopovým klientom — DBeaver, TablePlus, HeidiSQL:
ssh -L 3307:127.0.0.1:3306 root@YOUR_ADDRESS -N
Podrobnosti — vzdialený prístup. Takto nie je navonok vystavené nič okrem SSH a panel jednoducho nepotrebuješ.
Časté chyby
| Príznak | Príčina |
|---|---|
Prehliadač stiahne adminer.php | PHP nie je pripojené k tejto ceste |
#1045 Access denied | Používateľ databázy je naviazaný na iný hostiteľ |
| Import veľkého dumpu sa preruší | upload_max_filesize a max_execution_time sú príliš malé; lepšie je importovať z konzoly |
Tisíce požiadaviek na /phpmyadmin v logoch | Rutinné skenovanie — panel by mal byť zatvorený |
| Panel funguje, ale stránka nie | Zdieľaný PHP-FPM pool vyčerpávajú náročné požiadavky panela |
Dumpty cez webový panel pri veľkých databázach vypršia. Skutočná záloha sa robí z konzoly podľa plánu — zálohy databázy.