phpMyAdmin i Adminer: paneli za baze podataka
Kako da instaliraš web panel za bazu podataka na VDS-u i zaključaš ga da ne postane ulazna vrata: pristup lozinkom, ograničenja adresa, alternative.
Ažurirano 23. avgust 2026.
Web panel je zgodan za pojedinačne izmene i pregled tabela. On je i najčešći uzrok kompromitacije servera: /phpmyadmin URL-ovi se automatski brute-force-uju, a forma za prijavu daje direktan pristup podacima.
Adminer: jedan fajl
Adminer je jedan PHP fajl i podržava MySQL, PostgreSQL i SQLite. Nema šta da se instalira:
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
Potreban ti je funkcionalan PHP-FPM. Najbolje je da preimenuješ fajl u nešto neočigledno — to nije zaštita, ali eliminiše masovno skeniranje.
phpMyAdmin
apt install -y phpmyadmin
Paket se automatski povezuje sa Apache-om; za Nginx ručno navedi putanju:
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;
}
}
Obavezna zaštita
Nikada ne instaliraj panel bez ove tri stavke.
Pristup samo sa svoje adrese:
location /db-panel {
allow 203.0.113.10;
deny all;
}
Dodatna lozinka na nivou web servera:
apt install -y apache2-utils
htpasswd -c /etc/nginx/.htpasswd admin
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
I treće — samo HTTPS: Let's Encrypt sertifikat. Bez njega se lozinka baze šalje u čistom tekstu.
Najbolja opcija: panel koji nije izložen spolja
Ako ti je adresa dinamička, nemoj uopšte da izlažeš panel. Podesi SSH tunel i radi sa desktop klijentom — DBeaver, TablePlus, HeidiSQL:
ssh -L 3307:127.0.0.1:3306 root@YOUR_ADDRESS -N
Detalji — udaljeni pristup. Na ovaj način spolja nije izloženo ništa osim SSH-a, a panel ti jednostavno ne treba.
Česte greške
| Simptom | Uzrok |
|---|---|
Pretraživač preuzima adminer.php | PHP nije povezan sa ovom putanjom |
#1045 Access denied | Korisnik baze je vezan za drugi host |
| Uvoz velikog dump-a se prekida | upload_max_filesize i max_execution_time su premali; bolje je uvesti iz konzole |
Hiljade zahteva na /phpmyadmin u logovima | Rutinsko skeniranje — panel treba zatvoriti |
| Panel radi, ali sajt ne | Zajednički PHP-FPM pool je iscrpljen zahtevima panela |
Dump-ovi preko web panela na velikim bazama ispadaju zbog tajmauta. Pravi backup se pravi iz konzole po rasporedu — backup baze.