> For the complete documentation index, see [llms.txt](https://docs.instantroot.de/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.instantroot.de/kvm-server/linux/phpmyadmin-installieren.md).

# phpMyAdmin installieren

phpMyAdmin ist eine webbasierte Verwaltungsoberfläche für MySQL- und MariaDB-Datenbanken.

Mit phpMyAdmin kannst du Datenbanken, Tabellen, Benutzer und Inhalte direkt im Browser verwalten. Das ist besonders praktisch, wenn du keine Datenbankbefehle über die Konsole ausführen möchtest.

### Voraussetzungen

Für phpMyAdmin benötigst du einen Server mit:

* Linux
* Webserver, zum Beispiel Apache oder Nginx
* PHP
* MySQL oder MariaDB
* SSH-Zugriff
* Root- oder sudo-Rechten

In dieser Anleitung verwenden wir Debian oder Ubuntu als Grundlage.

### Vor der Installation

Aktualisiere zuerst dein System.

Befehl:

`apt update`

Danach installierst du verfügbare Updates.

Befehl:

`apt upgrade`

Wenn wichtige Systemupdates installiert wurden, kann ein Neustart sinnvoll sein.

Befehl:

`reboot`

### MariaDB installieren

Falls noch keine Datenbank installiert ist, kannst du MariaDB installieren.

Befehl:

`apt install mariadb-server mariadb-client`

Starte MariaDB und aktiviere den automatischen Start beim Booten.

Befehl:

`systemctl enable mariadb`

Befehl:

`systemctl start mariadb`

Prüfe den Status.

Befehl:

`systemctl status mariadb`

### MariaDB absichern

Nach der Installation solltest du MariaDB absichern.

Befehl:

`mysql_secure_installation`

Folge den Fragen im Terminal.

Empfehlungen:

| Frage                                 | Empfehlung                   |
| ------------------------------------- | ---------------------------- |
| Root-Passwort ändern                  | Ja, falls noch nicht gesetzt |
| Anonyme Benutzer entfernen            | Ja                           |
| Root-Login aus der Ferne deaktivieren | Ja                           |
| Testdatenbank entfernen               | Ja                           |
| Rechte neu laden                      | Ja                           |

### Datenbankbenutzer erstellen

Für phpMyAdmin und deine Anwendungen solltest du nicht dauerhaft mit dem MariaDB-Root-Benutzer arbeiten.

Melde dich bei MariaDB an.

Befehl:

`mysql`

Erstelle eine Datenbank.

Befehl:

`CREATE DATABASE webseite;`

Erstelle einen Benutzer.

Befehl:

`CREATE USER 'webuser'@'localhost' IDENTIFIED BY 'SICHERES_PASSWORT';`

Gib dem Benutzer Rechte auf die Datenbank.

Befehl:

`GRANT ALL PRIVILEGES ON webseite.* TO 'webuser'@'localhost';`

Lade die Rechte neu.

Befehl:

`FLUSH PRIVILEGES;`

Verlasse MariaDB.

Befehl:

`EXIT;`

Ersetze `SICHERES_PASSWORT` durch ein eigenes, starkes Passwort.

### phpMyAdmin installieren

Installiere phpMyAdmin über die Paketverwaltung.

Befehl:

`apt install phpmyadmin`

Während der Installation kann eine Abfrage erscheinen.

Bei Apache kannst du Apache auswählen, damit phpMyAdmin automatisch eingebunden wird.

Bei Nginx wird phpMyAdmin normalerweise nicht automatisch eingebunden. In diesem Fall musst du die Konfiguration manuell vornehmen.

### Installation mit Apache

Wenn du Apache verwendest, wähle während der Installation **apache2** aus.

Falls die Auswahl nicht erscheint oder nicht korrekt gesetzt wurde, kannst du phpMyAdmin manuell aktivieren.

Befehl:

`ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf`

Danach aktivierst du die Konfiguration.

Befehl:

`a2enconf phpmyadmin`

Apache neu laden:

`systemctl reload apache2`

phpMyAdmin ist danach normalerweise erreichbar unter:

`http://SERVER-IP/phpmyadmin`

Wenn du bereits eine Domain mit SSL verwendest, nutze besser:

`https://deinedomain.de/phpmyadmin`

### Installation mit Nginx

Bei Nginx muss phpMyAdmin meistens manuell eingebunden werden.

Ein einfacher Weg ist ein symbolischer Link in dein Webverzeichnis.

Beispiel für `/var/www/html`:

`ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin`

Danach ist phpMyAdmin erreichbar unter:

`http://SERVER-IP/phpmyadmin`

Wenn du eine eigene Domain verwendest, kann die Adresse so aussehen:

`https://deinedomain.de/phpmyadmin`

Achte darauf, dass PHP-FPM für deine Nginx-Webseite korrekt eingerichtet ist. Ohne funktionierende PHP-Verarbeitung zeigt Nginx PHP-Dateien nicht korrekt an.

### Benötigte PHP-Erweiterungen prüfen

phpMyAdmin benötigt verschiedene PHP-Erweiterungen.

Installiere häufig benötigte Erweiterungen:

`apt install php-mbstring php-zip php-gd php-json php-curl php-mysql`

Danach Apache oder PHP-FPM neu starten.

Bei Apache:

`systemctl restart apache2`

Bei Nginx mit PHP-FPM:

`systemctl restart php8.2-fpm`

Die PHP-Version kann abweichen. Prüfe deine installierte Version bei Bedarf mit:

`php -v`

### Login in phpMyAdmin

Öffne phpMyAdmin im Browser.

Beispiel:

`https://deinedomain.de/phpmyadmin`

Melde dich mit einem MariaDB- oder MySQL-Benutzer an.

Beispiel:

| Feld         | Wert                            |
| ------------ | ------------------------------- |
| Benutzername | `webuser`                       |
| Passwort     | Passwort des Datenbankbenutzers |

### Root-Login in phpMyAdmin

Auf vielen Systemen kann sich der MariaDB-Root-Benutzer nicht direkt in phpMyAdmin anmelden.

Das liegt häufig daran, dass der Root-Benutzer über Unix-Socket-Authentifizierung arbeitet.

Das ist normal.

Nutze für phpMyAdmin besser einen eigenen Datenbankbenutzer.

Wenn du einen administrativen Datenbankbenutzer erstellen möchtest, kannst du das in MariaDB tun.

Befehl:

`CREATE USER 'adminuser'@'localhost' IDENTIFIED BY 'SICHERES_PASSWORT';`

Befehl:

`GRANT ALL PRIVILEGES ON *.* TO 'adminuser'@'localhost' WITH GRANT OPTION;`

Befehl:

`FLUSH PRIVILEGES;`

Nutze solche administrativen Benutzer nur, wenn du sie wirklich brauchst.

### phpMyAdmin absichern

phpMyAdmin ist ein häufiges Ziel automatischer Angriffe. Deshalb solltest du die Installation absichern.

### Zugriffspfad ändern

Der Standardpfad `/phpmyadmin` ist bekannt und wird häufig automatisch gescannt.

Du kannst den Pfad ändern, indem du den Link anders benennst.

Beispiel:

`mv /var/www/html/phpmyadmin /var/www/html/dbverwaltung`

Danach erreichst du phpMyAdmin unter:

`https://deinedomain.de/dbverwaltung`

Bei Apache musst du dafür die Konfiguration anpassen, wenn phpMyAdmin über `/etc/phpmyadmin/apache.conf` eingebunden wird.

### Zusätzlichen Passwortschutz verwenden

Du kannst phpMyAdmin zusätzlich mit einem HTTP-Passwortschutz absichern.

Das ist sinnvoll, weil Angreifer dann nicht direkt zur phpMyAdmin-Anmeldemaske gelangen.

Bei Apache kannst du dafür `.htaccess` und `.htpasswd` verwenden.

Installiere das benötigte Paket:

`apt install apache2-utils`

Erstelle eine Passwortdatei:

`htpasswd -c /etc/phpmyadmin/.htpasswd admin`

Danach musst du den Passwortschutz in der Apache-Konfiguration für phpMyAdmin einbinden.

### Zugriff per IP begrenzen

Wenn du phpMyAdmin nur von einer bestimmten IP-Adresse aus verwendest, kannst du den Zugriff zusätzlich einschränken.

Das ist besonders sicher, wenn du eine feste IP-Adresse hast.

Beispiel für Apache-Konfiguration:

`Require ip DEINE-IP-ADRESSE`

Ersetze `DEINE-IP-ADRESSE` durch deine eigene IP-Adresse.

### HTTPS verwenden

phpMyAdmin sollte nicht unverschlüsselt über HTTP genutzt werden.

Aktiviere HTTPS mit einem SSL-Zertifikat, zum Beispiel über Let's Encrypt.

Wenn du phpMyAdmin über HTTP verwendest, können Anmeldedaten im Netzwerk leichter abgefangen werden.

### Datenbankbenutzer begrenzen

Verwende für Webseiten und Anwendungen eigene Datenbankbenutzer.

Gib einem Benutzer nur die Rechte, die er wirklich benötigt.

Beispiel:

Eine WordPress-Webseite benötigt normalerweise nur Rechte auf ihre eigene Datenbank, nicht auf alle Datenbanken des Servers.

### Häufige Probleme

#### phpMyAdmin ist nicht erreichbar

Prüfe:

* läuft der Webserver?
* ist phpMyAdmin installiert?
* stimmt der Pfad?
* ist PHP korrekt eingerichtet?
* blockiert die Firewall Port `80` oder `443`?
* zeigt die Domain auf den richtigen Server?

Status von Apache prüfen:

`systemctl status apache2`

Status von Nginx prüfen:

`systemctl status nginx`

#### PHP-Datei wird heruntergeladen

Wenn der Browser eine PHP-Datei herunterlädt, verarbeitet dein Webserver PHP nicht korrekt.

Bei Apache prüfe, ob PHP installiert und aktiviert ist.

Bei Nginx prüfe, ob PHP-FPM korrekt eingebunden ist.

#### Login schlägt fehl

Prüfe:

* Benutzername korrekt?
* Passwort korrekt?
* Datenbankbenutzer existiert?
* Benutzer darf sich von `localhost` anmelden?
* MariaDB oder MySQL läuft?

Bei MariaDB kannst du Benutzer so anzeigen:

`SELECT User, Host FROM mysql.user;`

#### Root-Login funktioniert nicht

Das ist bei MariaDB auf Debian oder Ubuntu häufig normal.

Nutze einen eigenen Datenbankbenutzer statt Root.

#### Fehlende PHP-Erweiterung

Wenn phpMyAdmin eine fehlende PHP-Erweiterung meldet, installiere die passende Erweiterung.

Beispiel:

`apt install php-mbstring`

Danach den Webserver oder PHP-FPM neu starten.

#### 403 Forbidden

Ein 403-Fehler bedeutet, dass der Zugriff verweigert wird.

Mögliche Ursachen:

* falsche Rechte
* falsche Webserver-Konfiguration
* IP-Beschränkung
* fehlende Index-Datei
* Zugriffspfad nicht erlaubt

#### 404 Not Found

Ein 404-Fehler bedeutet, dass der Pfad nicht gefunden wurde.

Mögliche Ursachen:

* phpMyAdmin ist nicht installiert
* symbolischer Link fehlt
* falscher Pfad
* Apache-Konfiguration nicht aktiviert
* Webserver wurde nicht neu geladen

### Wartung

Halte phpMyAdmin regelmäßig aktuell.

Aktualisierung unter Debian oder Ubuntu:

`apt update`

`apt upgrade`

Wenn du phpMyAdmin manuell installiert hast, musst du Updates selbst einspielen.

### Alternative zu phpMyAdmin

phpMyAdmin ist praktisch, aber nicht immer notwendig.

Alternativen sind:

* Adminer
* MySQL Workbench
* DBeaver
* direkte Verwaltung über die MySQL-Konsole

Für öffentlich erreichbare Server ist eine schlanke Lösung wie Adminer oft einfacher, sollte aber ebenfalls gut abgesichert werden.

### Support kontaktieren

Wenn du phpMyAdmin nicht einrichten kannst, kontaktiere den Support.

Gib dabei bitte an:

* Betriebssystem
* verwendeter Webserver: Apache oder Nginx
* verwendete PHP-Version
* verwendete Datenbank: MySQL oder MariaDB
* genaue Fehlermeldung
* URL oder Pfad, unter dem phpMyAdmin erreichbar sein soll
* was du bereits versucht hast

Sende niemals Datenbankpasswörter, Root-Passwörter oder private Zugangsdaten an den Support.
