Skip to content
VDS · Baze podataka

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

SimptomUzrok
Pretraživač preuzima adminer.phpPHP nije povezan sa ovom putanjom
#1045 Access deniedKorisnik baze je vezan za drugi host
Uvoz velikog dump-a se prekidaupload_max_filesize i max_execution_time su premali; bolje je uvesti iz konzole
Hiljade zahteva na /phpmyadmin u logovimaRutinsko skeniranje — panel treba zatvoriti
Panel radi, ali sajt neZajednič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.