Adminer ist ein leichtgewichtiges, webbasiertes Tool zur Verwaltung von Datenbanken wie MySQL, MariaDB oder PostgreSQL. Im Gegensatz zu phpMyAdmin besteht Adminer aus nur einer einzigen PHP-Datei – und ist dadurch extrem einfach zu installieren, schnell und ressourcenschonend.
In diesem Artikel zeige ich dir, wie du Adminer auf einem Debian-Server installierst, einrichtest und sicher betreibst.
Was ist Adminer?
Adminer (früher phpMinAdmin) ist ein vollwertiger Datenbank-Manager, der über den Browser zugänglich ist. Er bietet:
- Verwaltung von Datenbanken, Tabellen, Nutzern und Rechten
- SQL-Abfragen im Browser
- Import/Export von Daten
- Unterstützung für MySQL, MariaDB, PostgreSQL, SQLite und weitere Systeme
Im Gegensatz zu phpMyAdmin ist Adminer:
- leichter (eine einzige Datei)
- schneller
- einfach zu deployen
- sicherer, wenn richtig konfiguriert
Voraussetzungen
| Komponente | Beschreibung | | -------------- | ------------------------------ | | Betriebssystem | Debian 12 oder 13 | | Webserver | Apache oder NGINX | | PHP | Version 8.1 oder höher | | Datenbank | MySQL, MariaDB oder PostgreSQL | | Benutzerrechte | sudo oder Root |
Schritt 1: System vorbereiten
Zuerst System aktualisieren:
``bash sudo apt update && sudo apt upgrade -y ``
Dann grundlegende Pakete installieren:
``bash sudo apt install apache2 php php-mysqli php-pgsql php-sqlite3 wget unzip -y ``
Hinweis:
php-mysqliist nötig für MySQL/MariaDBphp-pgsqlfür PostgreSQLphp-sqlite3für SQLite
Schritt 2: Adminer herunterladen
Adminer ist offiziell auf https://www.adminer.org/ erhältlich.
Lade die aktuelle Version herunter und verschiebe sie ins Webverzeichnis:
``bash cd /var/www/html sudo wget https://www.adminer.org/latest.php -O adminer.php ``
Prüfe, ob die Datei vorhanden ist:
``bash ls -lh /var/www/html/adminer.php ``
Schritt 3: Apache konfigurieren
Erstelle eine eigene Konfigurationsdatei für Adminer:
``bash sudo nano /etc/apache2/sites-available/adminer.conf ``
Füge Folgendes ein:
```apache
ErrorLog ${APACHE_LOG_DIR}/adminer_error.log CustomLog ${APACHE_LOG_DIR}/adminer_access.log combined ```
Damit erlaubst du den Zugriff nur aus deinem lokalen Netzwerk (192.168.1.x). Wenn du von außen zugreifen willst, passe die IP an oder nutze Authentifizierung (siehe unten).
Aktiviere die neue Konfiguration:
``bash sudo a2ensite adminer.conf sudo systemctl reload apache2 ``
Schritt 4: Zugriff absichern
Variante 1 – Passwortschutz mit .htaccess
Erstelle eine .htpasswd-Datei:
``bash sudo apt install apache2-utils -y sudo htpasswd -c /etc/apache2/.htpasswd admin ``
Nun das Verzeichnis schützen:
``bash sudo nano /etc/apache2/sites-available/adminer.conf ``
Ergänze innerhalb des -Blocks:
``apache ``
Dann Apache neu laden:
``bash sudo systemctl reload apache2 ``
Beim nächsten Zugriff auf http://dein-server/adminer.php fragt der Browser nach Benutzername und Passwort.
Variante 2 – HTTPS aktivieren
Für sicheren Zugriff über das Internet ist HTTPS Pflicht. Mit Let’s Encrypt aktivierst du SSL ganz einfach:
``bash sudo apt install certbot python3-certbot-apache -y sudo certbot --apache ``
Folge den Anweisungen und wähle deine Domain.
Schritt 5: Adminer starten
Öffne im Browser:
`` http://dein-server/adminer.php ``
Du siehst die Login-Maske:
- System: z. B. MySQL, PostgreSQL
- Server:
localhostoder IP deiner Datenbank - Benutzername: dein DB-User
- Passwort: dein DB-Passwort
- Datenbank: optional
Nach dem Login landest du im übersichtlichen Webinterface mit Zugriff auf alle Tabellen, Spalten, Indizes und SQL-Befehle.
Schritt 6: (Optional) Adminer-Design anpassen
Du kannst das Design mit Themes ändern. Beispiel:
``bash cd /var/www/html sudo wget https://raw.githubusercontent.com/vrana/adminer/master/designs/ng9/adminer.css ``
Die Datei adminer.css wird automatisch erkannt, wenn sie im selben Verzeichnis liegt.
Schritt 7: Sicherheitsmaßnahmen
1. Zugriff beschränken
Falls du Adminer nur intern nutzen willst, blockiere externen Zugriff über die Firewall:
``bash sudo ufw allow from 192.168.1.0/24 to any port 80 sudo ufw deny 80 ``
2. Keine dauerhafte öffentliche Instanz
Lass Adminer nicht dauerhaft im Internet offen, sondern nur bei Bedarf. Du kannst ihn temporär aktivieren:
``bash sudo a2ensite adminer.conf sudo systemctl reload apache2 ``
Und später wieder deaktivieren:
``bash sudo a2dissite adminer.conf sudo systemctl reload apache2 ``
🧾 3. Regelmäßige Updates
Da Adminer nur aus einer Datei besteht, kannst du ihn sehr leicht aktualisieren:
``bash cd /var/www/html sudo wget https://www.adminer.org/latest.php -O adminer.php ``
Schritt 8: (Optional) Adminer mit NGINX betreiben
Falls du NGINX statt Apache nutzt, ist die Einrichtung ähnlich einfach:
``bash sudo apt install nginx php-fpm -y ``
Erstelle eine Konfigurationsdatei:
``bash sudo nano /etc/nginx/sites-available/adminer ``
Inhalt:
```nginx server { listen 80; server_name adminer.local; root /var/www/html;
location / { index adminer.php; }
location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php8.2-fpm.sock; }
allow 192.168.1.0/24; deny all; } ```
Dann aktivieren:
``bash sudo ln -s /etc/nginx/sites-available/adminer /etc/nginx/sites-enabled/ sudo systemctl reload nginx ``
Schritt 9: Backup & Wiederherstellung
Da Adminer nur eine Datei ist, reicht ein einfaches Backup:
``bash sudo cp /var/www/html/adminer.php /opt/backups/adminer-$(date +%F).php ``
Willst du alle Datenbanksicherungen automatisieren, kannst du per Cronjob SQL-Exporte anlegen:
``bash crontab -e ``
Beispiel:
`` 0 3 * mysqldump -u root -pPASSWORT datenbankname > /opt/backups/db-$(date +\%F).sql ``
Adminer ist ein fantastisches Tool für jeden, der Datenbanken verwalten möchte – schnell, schlank und ohne Ballast. Mit nur einer PHP-Datei und den richtigen Sicherheitsmaßnahmen lässt sich ein sicherer und komfortabler Datenbankzugang schaffen.
Empfehlung: Verwende Adminer nur über HTTPS, mit IP-Filter oder Passwortschutz – dann ist es eine exzellente Alternative zu phpMyAdmin.
Nützliche Links
- Offizielle Website: https://www.adminer.org/de/
- GitHub Repository: https://github.com/vrana/adminer
- Adminer Security Guide: https://www.adminer.org/en/security/