Ugrás a fő tartalomra
50% kedvezmény minden csomagra, korlátozott ideig. Már $2.48/mo
10 min left
Adatbázisok és analitika

Hogyan telepítsük az Adminert Linux VPS-re (Nginx-szel és megfelelő védelemmel)

H Szerző: Haze 10 perc olvasás
Adminer login screen served by Nginx on a Linux VPS

Egy nyitott címen futó Adminer-példány az egyik leghalkabb módja az adatbázis elveszítésének. Valaki üzembe helyezi az egyetlen PHP-fájlt egy tábla ellenőrzéséhez, az URL működik, és a fájl hónapokig ott marad, amíg egy elavult másolat támadási felületté nem válik. Ezért szentel ez a Linux VPS-en lévő Adminer telepítési útmutató ugyanannyi teret a biztonságnak, mint az üzemeltetésnek.

Az Adminer egyetlen PHP-fájl (kb. 503 KB a teljes buildben), amely MySQL-t, MariaDB-t, PostgreSQL-t, SQLite-ot és számos más adatbázist támogat. Rendkívül egyszerű üzembe helyezni, ami pontosan az oka annak, hogy sokszor gondatlanul telepítik.

Telepíti azt egy modern Ubuntu vagy Debian VPS-re Nginx-szel és PHP-FPM-mel, hozzáad HTTP-hitelesítést, IP-engedélylistát és HTTPS-t Let's Encrypttel, és egy egyértelmű szabállyal zárja le arról, mikor kell teljesen kihagyni a nyilvános beállítást, és helyette SSH-alagúton keresztül elérni az Adminert.

Röviden

  • Az Adminer egy PHP-fájl, amelyet a következővel tölt le egy webgyökérbe: wget webgyökérbe tölt le; Nginx és PHP-FPM kiszolgálja.
  • Egy nyilvános Adminer-példányhoz mindhárom szükséges: egy HTTP-hitelesítési réteg, egy IP-engedélylista és HTTPS. Egyikük önmagában nem elegendő.
  • A legérzékenyebb adatbázisoknál egyáltalán ne tegye ki az Adminert: kösse a következőhöz: localhost és SSH-alagúton keresztül érje el.
  • A frissítés egyetlen parancs: futtassa újra a wget letöltési parancsot. A legújabb biztonsági kiadások miatt a naprakész tartás valódi üzemeltetési feladat, nem csupán ajánlott.

Előfeltételek: Mire lesz szüksége a telepítés előtt

Ez az útmutató az Ubuntu 26.04-et és 24.04-et, valamint a Debian 13-at célozza meg, Ubuntu 22.04 és Debian 12 kompatibilitási megjegyzésekkel. Az alapértelmezett PHP-FPM verziók: 8.5 az Ubuntu 26.04-en, 8.3 az Ubuntu 24.04-en, 8.4 a Debian 13-on, 8.2 a Debian 12-n és 8.1 az Ubuntu 22.04-en.

  • Ubuntu 22.04, Ubuntu 24.04, Ubuntu 26.04, Debian 12 vagy Debian 13 operációs rendszert futtató Linux VPS, amelyen van egy sudo hozzáférés
  • Már futó adatbázis-kiszolgáló (MySQL, MariaDB vagy PostgreSQL), akár ezen a VPS-en, akár egy olyanon, amelyet az Adminer elérheti a hálózaton. Ez az útmutató nem telepít adatbázist; azt az eszközt telepíti, amellyel az adatbázist kezeli.
  • PHP-FPM az operációs rendszer által támogatott adattárakból. Bár az Adminer lefordított fájlja támogatja a PHP 5.3+ verziót, használja a fent felsorolt, az aktuális disztribúció által biztosított verziót ahelyett, hogy elavult PHP-kiadást telepítene.
  • A nyilvános HTTPS-beállításhoz a VPS-re feloldó hosztnévre, valamint a 80-as és 443-as TCP bejövő portok elérhetőségére van szükség. Certbot Nginx munkafolyamat HTTP-01 érvényesítést használ a 80-as porton. A Let's Encrypt most már támogatja a rövid életű IP-cím tanúsítványok, de a Certbot nem telepíti ezeket automatikusan a Nginx-munkafolyamatán keresztül, ezért ez az útmutató hosztnevet használ.

Megjegyzés: Ez az útmutató szándékosan Nginx-et használ. Ha Apache-t futtat, a letöltési és a biztonsági megerősítési logika még mindig érvényes, de az alábbi szerverblokk-konfiguráció nem.

Nginx és PHP-FPM telepítése

Kezdje a csomagindex frissítésével, majd telepítse a Nginx-et és a PHP-FPM-et a kiszolgálóhoz szükséges PHP adatbázis-bővítménnyel együtt:

sudo apt update
sudo apt install -y nginx php-fpm php-mysql

PostgreSQL háttérkiszolgálóhoz telepítse a php-pgsql helyett vagy mellett php-mysql:

sudo apt install -y php-pgsql

Ellenőrizze, hogy a PHP-FPM-szoftvercsatorna létezik:

ls /run/php/

Egyezze meg a szoftvercsatorna fájlnevét a fent felsorolt verzióval, például php8.5-fpm.sock Ubuntu 26.04-en, php8.3-fpm.sock Ubuntu 24.04-en, vagy php8.4-fpm.sock Debian 13-on. Ha a várt szoftvercsatorna hiányzik, ellenőrizze a megfelelő szolgáltatást a következővel: systemctl status php8.5-fpm, cserélve a 8.5 az operációs rendszerre telepített verzióra.

Profi tipp: A szoftvercsatorna-eltérés az egyik lehetséges oka a 502 Bad Gateway. Egyezze meg a fastcgi_pass a fájlnévhez alatta /run/php/, ellenőrizze, hogy a megfelelő PHP-FPM-szolgáltatás fut, majd ellenőrizze a /var/log/nginx/error.log ha a hiba fennmarad.

Az Adminer letöltése

Hozzon létre egy könyvtárat az Adminer kiszolgálásához, majd töltse le oda az egyetlen fájlt. latest.php URL mindig az aktuális stabil kiadásra mutat:

sudo mkdir -p /var/www/adminer
sudo wget -O /var/www/adminer/adminer.php https://www.adminer.org/latest.php

Ha csak MySQL-lel vagy MariaDB-vel dolgozik, a csak MySQL-es build kisebb (kb. 406 KB), és ugyanúgy tölthető le:

sudo wget -O /var/www/adminer/adminer.php https://www.adminer.org/latest-mysql.php

Tartsa az Adminer könyvtárat root tulajdonában, miközben olvasási hozzáférést ad a PHP-FPM-nek:

sudo chown -R root:root /var/www/adminer
sudo chmod 755 /var/www/adminer
sudo chmod 644 /var/www/adminer/adminer.php

You do not need to track the version number: the latest.php Az URL azt jelenti, hogy a letöltés újbóli futtatása az Ön frissítési útja is, amelyre a karbantartási szakasz visszatér.

Az Nginx szerverblokk konfigurálása

Hozzon létre egy szerverblokot, amely az Adminer könyvtárat szolgálja ki és továbbítja a .php kéréseket a korábban azonosított PHP-FPM szoftvercsatornához. Nyisson meg egy új sitefájlt:

sudo nano /etc/nginx/sites-available/adminer

Illessze be az alábbiakat, cserélve a db.example.com a már a VPS-re mutató hosztnévvel, és győződjön meg arról, hogy a fastcgi_pass szoftvercsatorna megegyezik a PHP-verziójával:

# /etc/nginx/sites-available/adminer
server {
    listen 80;
    server_name db.example.com;
    root /var/www/adminer;

    location = / {
        return 302 /adminer.php;
    }

    location = /adminer.php {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.3-fpm.sock;
    }

    location / {
        return 404;
    }
}

Engedélyezze a webhelyet szimbolikus link létrehozásával ide: sites-enabled, majd tesztelje a konfigurációt anélkül, hogy még újra betöltené az Nginx-et:

sudo ln -s /etc/nginx/sites-available/adminer /etc/nginx/sites-enabled/
sudo nginx -t

nginx -t azt kell jelentenie, hogy a szintaxis érvényes és a teszt sikeres. Ne töltse be újra még az Nginx-et, mert a webhely nem rendelkezik hitelesítéssel vagy IP-korlátozással. Folytassa e két biztonsági megerősítési lépéssel; az IP-korlátozási lépés hajtja végre az első újratöltést, miután mindkét védelem be van állítva.

Zárja le: Hitelesítés, IP-korlátozás és HTTPS

Egy nyilvános Adminer-példány közvetlenül az adatbázis-hitelesítő adatai előtt áll, ezért rétegzett védelemre van szüksége, nem egyetlen zárkára. Az alábbi három réteg különböző feladatokat végez: a HTTP-hitelesítés megállít mindenkit jelszó nélkül a webszerveren, az IP-engedélylista megakadályozza a nem jóváhagyott címekről érkező kapcsolatokat, a HTTPS pedig megakadályozza, hogy a beírt hitelesítő adatok egyszerű szövegként haladjanak át a hálózaton. Adja hozzá mindhárom réteget. Egyik sem helyettesíti a másik kettőt.

HTTP alapszintű hitelesítés hozzáadása

Telepítse a htpasswd segédprogramot, amely a apache2-utils csomagban az Ubuntu és Debian rendszereken:

sudo apt install -y apache2-utils

Hozzon létre egy jelszófájlt és egy felhasználót (a rendszer kéri a jelszót):

sudo htpasswd -B -C 10 -c /etc/nginx/.htpasswd adminuser
sudo chown root:www-data /etc/nginx/.htpasswd
sudo chmod 640 /etc/nginx/.htpasswd

Adja hozzá az irányelveket az Adminer PHP pontos helyéhez, hogy maga a PHP-kérés is védve legyen:

location = /adminer.php {
    auth_basic           "Restricted";
    auth_basic_user_file /etc/nginx/.htpasswd;
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php8.3-fpm.sock;
}

Mindkét direktíva dokumentálva van a Nginx HTTP auth_basic modulreferencia. Futtat sudo nginx -t a konfiguráció érvényesítéséhez, de még ne töltse be újra az Nginx-et; ezután kerül hozzáadásra az IP-engedélylista. Ne küldje el az alapszintű hitelesítési adatokat egyszerű HTTP-n keresztül; várjon az HTTPS engedélyezéséig alább.

Hozzáférés korlátozása IP-cím szerint

Az alapszintű hitelesítés blokkolja a nem hitelesített felhasználókat, de az Nginx még mindig kap kéréseket minden forrásból. Cserélje le a meglévő Adminer PHP-helyet a következő kombinált blokkra, hogy az IP-szabályok és az alapszintű hitelesítési irányelvek egy helyen maradjanak:

location = /adminer.php {
    satisfy all;

    allow                203.0.113.10;
    allow                203.0.113.0/28;
    deny                 all;

    auth_basic           "Restricted";
    auth_basic_user_file /etc/nginx/.htpasswd;
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php8.3-fpm.sock;
}

Cserélje ki a példacímeket a tényleges nyilvános IP-címére vagy megbízható hálózati tartományára. Csak a allow bejegyzéseket, amelyekre szüksége van, és törölje a fel nem használt példákat. Az első bejegyzés egyetlen címet mutat be, a második pedig egy CIDR-tartományt. Az Nginx visszaadja a 403 Forbidden azon címeknek, amelyek nem felelnek meg egyetlen allow allow szabálynak sem. Nginx hozzáférési modulreferencia dokumentálja az irányelvek szintaxisát. Tesztelje és töltse be újra az Nginx-et:

sudo nginx -t && sudo systemctl reload nginx

HTTPS engedélyezése Let's Encrypttel

A VPS-re mutató domainnel telepítse a Certbotot és Nginx-pluginjét, majd kérjen tanúsítványt:

sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d db.example.com

A Certbot szerkeszti a szerverblokját, hogy a 443-as porton HTTPS-t szolgáljon ki, és felajánlja a HTTP HTTPS-re irányítását; fogadja el az átirányítást. Megújítási időzítőt is telepít, így a tanúsítvány automatikusan megújul lejárat előtt. A megújítási útvonalat a következővel erősítheti meg: sudo certbot renew --dry-run, amelynek hibamentesen kell befejeződnie.

Most látogasson el a https://db.example.com/adminer.php egy engedélyezett címről, és erősítse meg, hogy az Nginx kéri az alapszintű hitelesítési adatokat, mielőtt az Adminer betöltődik.

Adminer login screen after first successful load, showing the database system dropdown and server and username fields

Válasszon hozzáférési modellt: Nyilvános HTTPS vs. SSH-alagút

A fenti beállítás akkor megfelelő, ha böngészőhozzáférésre van szüksége egy adatbázishoz több gépről, vagy ha SSH-munkamenet nyitása nem praktikus. Ez nem az egyetlen modell, és egy érzékeny adatbázishoz nem a legvédelmesebb.

Érzékeny beállításoknál ne tegye nyilvánosan elérhetővé az Adminert. Az Adminer hivatalos biztonsági útmutatása javasolja, hogy tegye elérhetetlenné a nyilvános internetről, amikor csak lehetséges. Ha csak alagúton keresztüli hozzáférést választ, cserélje le a nyilvános Nginx szerverblokot erre a csak loopbackes konfigurációra, és hagyja ki a nyilvános HTTPS-beállítást:

# /etc/nginx/sites-available/adminer
server {
    listen 127.0.0.1:8080 default_server;
    server_name _;
    root /var/www/adminer;

    location = / {
        return 302 /adminer.php;
    }

    location = /adminer.php {
        auth_basic           "Restricted";
        auth_basic_user_file /etc/nginx/.htpasswd;
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.3-fpm.sock;
    }

    location / {
        return 404;
    }
}

Tesztelje és töltse be újra a csereonfigurációt:

sudo nginx -t && sudo systemctl reload nginx

Ezután nyissa meg az alagutat a saját gépéről:

ssh -N -L 127.0.0.1:8080:127.0.0.1:8080 user@your-server-ip

Az alagút futásával nyissa meg http://127.0.0.1:8080/adminer.php. Az Nginx csak a VPS loopback-interfészén keresztül fogad el Adminer-kapcsolatokat, míg az SSH a titkosított kapcsolatán keresztül szállítja a forgalmat. Ez a OpenSSH helyi továbbítási dokumentáció.

Használja a nyilvános HTTPS, Alapszintű hitelesítés és IP-engedélylista beállítását, ha közvetlen böngészőhozzáférésre van szüksége több gépről. Ha nyilvános hozzáférés nem szükséges, részesítse előnyben a csak loopbackes SSH-beállítást.

Fő tanulság: A legbiztonságosabb Adminer az, amelyik soha nem érhető el a nyilvános internetről.

Az Adminer frissen tartása

Az elfelejtett példány az igazi kockázat itt, és érdemes ütemezett feladatként kezelni, nem utólagos gondolatként. Az Adminer frissítése egyetlen parancs, ugyanaz a wget parancsot, amellyel telepítette, mert latest.php mindig az aktuális kiadást tölti le:

sudo wget -O /var/www/adminer/adminer.php https://www.adminer.org/latest.php

Ez nem elméleti aggodalom. Adminer 5.4.3, 2026. július 9-én kiadott verzió, egyetlen kiadásban kezelt hét GitHub biztonsági figyelmeztetést. A korábbi tanácsadás a CVE-2026-25892 megmutatta, hogy még az Adminer verziólekérdező végpontja is átalakítható hitelesítés nélküli szolgáltatásmegtagadási vektorrá; a problémát az 5.4.2 verzióban javították. Egy elavult másolat nyilvánosan dokumentált sebezhetőségeket halmoz fel, ezért frissítése rutinszerű karbantartásnak kell lennie.

Megjegyzés: Maradjon az aktuális upstream Adminer-kiadáson. az AdminerEvo tárhely 2025 januárjában archiválva lett és nem aktívan karbantartott alternatíva.

Telepítés VPS-en

Ha inkább kihagyná a kézi lépéseket, az Adminer egy kattintásos telepítésként elérhető a a Cloudzy marketplace egy Cloudzy Linux VPS. A piactér képe Apache-ot, Basic Auth-ot és önaláírt tanúsítványt használ, tehát eltér a fenti Nginx, IP-engedélylista és Let's Encrypt veremtől. Tekintse át ezeket a biztonsági különbségeket, mielőtt produkciós adatbázis-hitelesítési adatokat adna meg.

Az Adminer saját lábnyoma elhanyagolható; az adatbázis határozza meg a méretezést. A CPU-t, a memóriát és a tárhelyet az adatbázis adat- és indexmérete, a lekérdezési terhelés, a csatlakozások száma, a biztonsági mentések és a várható növekedés alapján válassza, nem az Adminer alapján.

Gyakran ismételt kérdések

Biztonságos-e az Adminert nyilvánosan elérhetővé tenni egy VPS-en?

Önmagában nem. Ha nyilvánosan kell elérhetővé tenni az Adminert, helyezze azt HTTP Basic Authentication, IP-engedélylista és HTTPS mögé együtt. Ezek a vezérlők csökkentik a kockázatot, de nem teszik kockázatmentessé a nyilvános elérhetőséget. Érzékeny adatbázisoknál kösse az Adminert a következőhöz: localhost és SSH-alagúton keresztül érje el.

Hogyan férhetek hozzá az Adminerhez anélkül, hogy az interneten elérhetővé tenném?

Konfigurálja a fent látható, csak loopbackes Nginx szerverblokot úgy, hogy az Adminer hallgasson a 127.0.0.1:8080paranccsal, majd futtasd a ssh -N -L 127.0.0.1:8080:127.0.0.1:8080 user@your-server-ip a saját gépén. Nyissa meg a http://127.0.0.1:8080/adminer.php amíg az alagút fut.

Tud az Adminer PostgreSQL-hez is csatlakozni, nemcsak MySQL-hez?

Igen. Az Adminer alapból támogatja a MySQL-t, MariaDB-t, PostgreSQL-t, SQLite-ot, MS SQL-t és Oracle-t, bővítményeken keresztül több adatbázis is elérhető. Telepítse az adatbázisához megfelelő PHP-kiterjesztést, például php-pgsql a PostgreSQL-hez, hogy a PHP kommunikálni tudjon vele.

Hogyan tartsam az Adminert frissen?

Futtassa újra a letöltési parancsot: sudo wget -O /var/www/adminer/adminer.php https://www.adminer.org/latest.phpA latest.php URL mindig a jelenlegi stabil kiadást adja vissza, tehát ez felülírja a másolatát a legújabb verzióval. A legújabb biztonsági kiadások miatt érdemes ezt ütemezetten elvégezni, nem csak amikor emlékszel rá.

A apt csomagból kell-e telepíteni az Adminert, vagy közvetlenül letölteni?

Töltse le közvetlenül az egyetlen fájlt. Ez azonnal biztosítja az aktuális verziót, és a frissítéseket egysorossá teszi, míg egy disztribúciós csomag elmaradhat a hivatalos kiadástól. A közvetlen fájl ugyanaz az eszköz, rövidebb úttal a legújabb biztonsági javításokhoz.

Megosztás

Több a blogról

Folytassa az olvasást.

Készen áll a telepítésre? Már 2,48 $/hó-tól.

Független felhő 2008 óta. AMD EPYC, NVMe, 40 Gbps. 14 napos pénzvisszafizetési garancia.