15%

15% auf alle Hosting-Dienste sparen

Teste deine Fähigkeiten und erhalte Rabatt auf jeden Hosting-Plan

Benutze den Code:

Skills
Anfangen
01.11.2024

Wie man phpMyAdmin auf Ubuntu installiert und sichert (Vollständiger Leitfaden)

phpMyAdmin ist eines der am weitesten verbreiteten Open-Source-Tools zur Verwaltung von MySQL- und MariaDB-Datenbanken über eine browserbasierte grafische Benutzeroberfläche. Egal ob Sie Entwickler, Systemadministrator oder Website-Besitzer sind – es vereinfacht komplexe Datenbankoperationen erheblich – von der Ausführung von SQL-Abfragen bis zum Import/Export von Daten – ohne dass Kenntnisse der Befehlszeile erforderlich sind.

Da phpMyAdmin standardmäßig über eine öffentliche URL zugänglich ist, ist es ein ernstes Risiko, es ungesichert zu lassen. Dieser umfassende Leitfaden führt Sie durch die Installation von phpMyAdmin auf Ubuntu 20.04/22.04, die Konfiguration mit Apache und die Härtung gegen unbefugten Zugriff mit mehreren Sicherheitsebenen.

Inhaltsverzeichnis

  1. Voraussetzungen
  2. Schritt 1 – System und Paketindex aktualisieren
  3. Schritt 2 – phpMyAdmin installieren
  4. Schritt 3 – Apache für phpMyAdmin konfigurieren
  5. Schritt 4 – phpMyAdmin mit HTTP-Authentifizierung sichern
  6. Schritt 5 – Zugriff nach IP-Adresse einschränken (Optional, aber empfohlen)
  7. Schritt 6 – SSL aktivieren, um den Datenverkehr zu verschlüsseln
  8. Schritt 7 – Auf phpMyAdmin zugreifen
  9. Behebung häufiger Probleme
  10. Fazit

Voraussetzungen {#prerequisites}

Bevor Sie beginnen, stellen Sie sicher, dass die folgenden Anforderungen erfüllt sind:

  • Ein Server mit Ubuntu 20.04 oder 22.04 (physisch oder virtuell)
  • MySQL oder MariaDB installiert und aktiv ausgeführt
  • Apache2 Webserver installiert
  • Ein Benutzerkonto mit sudo-Berechtigungen
  • Ein Domänenname oder eine statische IP-Adresse, die auf Ihren Server verweist
  • (Empfohlen) Ein gültiges SSL-Zertifikat für verschlüsselten HTTPS-Zugriff

> Tipp: Wenn Sie noch keine Serverumgebung haben, erwägen Sie AlexHost VPS-Hosting – vollständig verwaltete oder nicht verwaltete Linux VPS-Pläne mit sofortiger Bereitstellung, Root-Zugriff und SSD-Speicher, ideal für die sichere Ausführung von phpMyAdmin.

Schritt 1 – System und Paketindex aktualisieren {#step-1}

Beginnen Sie immer damit, Ihre Paketlisten zu aktualisieren und alle ausstehenden Systemaktualisierungen anzuwenden. Dies stellt sicher, dass Sie die neueste verfügbare Version von phpMyAdmin installieren und Abhängigkeitskonflikte vermeiden.

sudo apt update && sudo apt upgrade -y

Schritt 2 – phpMyAdmin installieren {#step-2}

Installieren Sie phpMyAdmin mit dem offiziellen Ubuntu APT-Repository:

sudo apt install phpmyadmin -y

Während der Installation wird ein interaktiver Konfigurationsassistent angezeigt. Folgen Sie diesen Schritten sorgfältig:

2.1 – Webserver auswählen

Sie werden aufgefordert, einen Webserver zur automatischen Konfiguration auszuwählen:

Please choose the web server that should be automatically configured to run phpMyAdmin.

  [*] apache2
  [ ] lighttpd

Verwenden Sie die Leertaste, um apache2 auszuwählen, drücken Sie dann Tab, um <Ok> hervorzuheben, und drücken Sie Enter.

2.2 – Datenbank mit dbconfig-common konfigurieren

Als Nächstes werden Sie gefragt, ob Sie eine Datenbank für phpMyAdmin mit dbconfig-common konfigurieren möchten:

Configure database for phpmyadmin with dbconfig-common?

Wählen Sie Ja. Sie werden dann aufgefordert, ein MySQL-Anwendungspasswort für den internen Datenbankbenutzer von phpMyAdmin einzugeben. Geben Sie entweder ein starkes Passwort ein oder lassen Sie es leer, um eines automatisch zu generieren.

2.3 – Installation überprüfen

Nach Abschluss der Installation bestätigen Sie, dass phpMyAdmin installiert ist:

dpkg -l phpmyadmin

Sie sollten eine Zeile mit der installierten Paketversion sehen.

Schritt 3 – Apache für phpMyAdmin konfigurieren {#step-3}

In einigen Ubuntu-Konfigurationen wird die phpMyAdmin Apache-Konfigurationsdatei nicht automatisch aktiviert. Überprüfen und aktivieren Sie sie manuell.

3.1 – phpMyAdmin-Konfiguration aktivieren

sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf
sudo a2enconf phpmyadmin

3.2 – Konfigurationsdatei überprüfen

Öffnen Sie die Konfigurationsdatei, um ihren Inhalt zu überprüfen:

sudo nano /etc/apache2/conf-available/phpmyadmin.conf

Die Datei sollte die folgenden Direktiven (oder ähnliche) enthalten:

Alias /phpmyadmin /usr/share/phpmyadmin

<Directory /usr/share/phpmyadmin>
    Options Indexes FollowSymLinks
    DirectoryIndex index.php

    <IfModule mod_authz_core.c>
        # Apache 2.4
        <RequireAny>
            Require all granted
        </RequireAny>
    </IfModule>
</Directory>

<Directory /usr/share/phpmyadmin/setup>
    <IfModule mod_authz_core.c>
        # Apache 2.4
        <RequireAny>
            Require all granted
        </RequireAny>
    </IfModule>
</Directory>

Speichern und schließen Sie die Datei mit STRG+X, dann Y, dann Enter.

3.3 – Apache neu starten

Wenden Sie die Konfigurationsänderungen an:

sudo systemctl restart apache2

Überprüfen Sie, ob Apache ohne Fehler ausgeführt wird:

sudo systemctl status apache2

Schritt 4 – phpMyAdmin mit HTTP-Authentifizierung sichern {#step-4}

Standardmäßig kann jeder, der die IP-Adresse Ihres Servers kennt, die phpMyAdmin-Anmeldeseite erreichen. Das Hinzufügen einer HTTP-Authentifizierungsebene schafft ein zweites Passwort-Gate, bevor Benutzer überhaupt das phpMyAdmin-Anmeldeformular sehen.

4.1 – apache2-utils installieren

sudo apt install apache2-utils -y

4.2 – Passwortdatei und Benutzer erstellen

Erstellen Sie eine .htpasswd Datei und fügen Sie Ihren ersten Administratorbenutzer hinzu. Ersetzen Sie your_admin_user durch Ihren gewählten Benutzernamen:

sudo mkdir -p /etc/phpmyadmin
sudo htpasswd -c /etc/phpmyadmin/.htpasswd your_admin_user

Sie werden aufgefordert, ein Passwort einzugeben und zu bestätigen. Um später zusätzliche Benutzer hinzuzufügen (ohne das -c Flag, das die Datei überschreiben würde):

sudo htpasswd /etc/phpmyadmin/.htpasswd another_user

4.3 – phpMyAdmin Apache-Konfiguration aktualisieren

Bearbeiten Sie die phpMyAdmin-Konfigurationsdatei, um die Authentifizierung zu erzwingen:

sudo nano /etc/apache2/conf-available/phpmyadmin.conf

Suchen Sie den <Directory /usr/share/phpmyadmin> Block und fügen Sie die folgenden Zeilen darin ein:

<Directory /usr/share/phpmyadmin>
    Options Indexes FollowSymLinks
    DirectoryIndex index.php

    # HTTP Basic Authentication
    AuthType Basic
    AuthName "Restricted Access — Authorized Personnel Only"
    AuthUserFile /etc/phpmyadmin/.htpasswd
    Require valid-user

    <IfModule mod_authz_core.c>
        <RequireAny>
            Require valid-user
        </RequireAny>
    </IfModule>
</Directory>

Speichern und schließen Sie die Datei.

4.4 – Apache neu starten

sudo systemctl restart apache2

Wenn Sie zu /phpmyadmin navigieren, werden Sie zuerst zur Eingabe der HTTP-Authentifizierungsdaten aufgefordert, bevor die phpMyAdmin-Anmeldeseite angezeigt wird.

Schritt 5 – Zugriff nach IP-Adresse einschränken (Optional, aber empfohlen) {#step-5}

Für noch stärkeren Schutz beschränken Sie den phpMyAdmin-Zugriff nur auf bestimmte vertrauenswürdige IP-Adressen. Dies ist besonders nützlich, wenn Sie Ihren Server immer von einer festen IP-Adresse aus aufrufen (z. B. ein Büronetzwerk oder ein VPN).

Bearbeiten Sie die phpMyAdmin Apache-Konfiguration:

sudo nano /etc/apache2/conf-available/phpmyadmin.conf

Ändern Sie den <Directory> Block, um IP-basierte Einschränkungen einzubeziehen:

<Directory /usr/share/phpmyadmin>
    Options Indexes FollowSymLinks
    DirectoryIndex index.php

    AuthType Basic
    AuthName "Restricted Access"
    AuthUserFile /etc/phpmyadmin/.htpasswd

    <RequireAll>
        Require valid-user
        Require ip 203.0.113.50
        # Add more trusted IPs below:
        # Require ip 198.51.100.0/24
    </RequireAll>
</Directory>

Ersetzen Sie 203.0.113.50 durch Ihre tatsächliche vertrauenswürdige IP-Adresse oder Ihr Subnetz. Speichern Sie die Datei und starten Sie Apache neu:

sudo systemctl restart apache2

> Hinweis: Wenn sich Ihre IP-Adresse häufig ändert, erwägen Sie die Verwendung eines VPN mit einer statischen IP-Adresse oder verlassen Sie sich allein auf HTTP-Authentifizierung in Kombination mit SSL.

Schritt 6 – SSL aktivieren, um den Datenverkehr zu verschlüsseln {#step-6}

Das Senden von Datenbankdaten über einfaches HTTP ist ein kritisches Sicherheitsrisiko. Sie sollten immer über HTTPS auf phpMyAdmin zugreifen. Es gibt zwei Hauptansätze:

Option A – Let’s Encrypt SSL-Zertifikat verwenden (kostenlos)

Wenn Sie einen Domänennamen haben, der auf Ihren Server verweist, installieren Sie Certbot:

sudo apt install certbot python3-certbot-apache -y
sudo certbot --apache -d yourdomain.com

Certbot konfiguriert Apache automatisch so, dass HTTP zu HTTPS umgeleitet wird, und installiert ein kostenloses, automatisch erneuerbares Zertifikat.

Option B – Kommerzielles SSL-Zertifikat verwenden

Für Produktionsumgebungen, die sensible Daten verarbeiten, bietet ein kommerziell ausgegebenes SSL-Zertifikat stärkere Vertrauenssignale und Gewährleistungsschutz. Sie können vertrauenswürdige SSL-Zertifikate direkt von AlexHost SSL-Zertifikate erhalten, mit Optionen von Domain Validation (DV) bis Extended Validation (EV) Zertifikaten.

Nach der Installation Ihres SSL-Zertifikats stellen Sie sicher, dass Ihre phpMyAdmin-URL https:// verwendet:

https://yourdomain.com/phpmyadmin

Schritt 7 – Auf phpMyAdmin zugreifen {#step-7}

Mit Installation und Sicherheitsmaßnahmen in Betrieb öffnen Sie Ihren Browser und navigieren zu:

https://your_server_ip_or_domain/phpmyadmin

Sie werden nacheinander mit zwei Authentifizierungsaufforderungen konfrontiert:

  1. HTTP-Authentifizierungsaufforderung – Geben Sie den Benutzernamen und das Passwort ein, die Sie mit htpasswd erstellt haben
  2. phpMyAdmin-Anmeldeseite – Geben Sie Ihren MySQL/MariaDB-Benutzernamen ein (z. B. root) und sein Passwort

Nach erfolgreicher Anmeldung haben Sie vollständigen Zugriff auf Ihre MySQL-Datenbanken über die phpMyAdmin-Grafik-Benutzeroberfläche.

Behebung häufiger Probleme {#troubleshooting}

phpMyAdmin gibt einen 404 Not Found Fehler zurück

Die Apache-Konfiguration ist möglicherweise nicht verknüpft oder aktiviert. Führen Sie aus:

sudo a2enconf phpmyadmin
sudo systemctl reload apache2

Überprüfen Sie auch, ob der Symlink vorhanden ist:

ls -la /etc/apache2/conf-available/phpmyadmin.conf

„Kann keine Verbindung zum MySQL-Server herstellen” Fehler

Überprüfen Sie, ob MySQL/MariaDB ausgeführt wird:

sudo systemctl status mysql
# or for MariaDB:
sudo systemctl status mariadb

Wenn es gestoppt ist, starten Sie es:

sudo systemctl start mysql

HTTP 500 Interner Serverfehler

Dies deutet häufig darauf hin, dass ein PHP-Modul fehlt. Installieren Sie erforderliche PHP-Erweiterungen:

sudo apt install php-mbstring php-zip php-gd php-json php-curl -y
sudo systemctl restart apache2

Leere Seite nach der Anmeldung

Löschen Sie Ihren Browser-Cache oder überprüfen Sie die Apache-Fehlerprotokolle auf Details:

sudo tail -f /var/log/apache2/error.log

Zusammenfassung der Best Practices für Sicherheit

Bevor Sie live gehen, überprüfen Sie diese Sicherheitscheckliste:

15%

15% auf alle Hosting-Dienste sparen

Teste deine Fähigkeiten und erhalte Rabatt auf jeden Hosting-Plan

Benutze den Code:

Skills
Anfangen