Tutorial: phpMyAdmin auf Ubuntu 18.04 & Apache installieren
Dieses Tutorial erklärt, wie ihr phpMyAdmin für die Administration eurer MySQL-Datenbank auf Ubuntu 18.04 LTS (Bionic Beaver) installieren könnt.
Dieses Tutorial setzt voraus, dass Apache, MySQL sowie PHP bereist installiert ist. Ein Tutorial dafür findet ihr hier: Tutorial: Apache, MySQL, PHP (LAMP) auf Ubuntu 18.04 installieren
In diesem Tutorial werden wir die neueste phpMyAdmin-Version herunterladen und in den Webspace-Ordner /var/www/phpmyadmin entpacken.
Auf Ubuntu 18.04 gibt es zwar ein Systempackage für phpMyAdmin, ich würde aber davon abraten dieses zu installieren. Es ist eine sehr veraltete Version von phpMyAdmin, die leider mit aktuellen PHP-Versionen nicht lauffähig ist.
Inhaltsverzeichnis
- 1 Voraussetzung: MySQL Benutzer mit Passwort vorhanden
- 2 Express-Setup: Alle Befehle im Überblick
- 3 Schritt 1 – Notwendige Abhängigkeiten installieren
- 4 Schritt 2 – phpMyAdmin herunterladen & entpacken
- 5 Schritt 3 – Rechte anpassen
- 6 Schritt 4 – Apache-Konfiguration anpassen
- 7 phpMyAdmin Aufrufen
- 8 phpMyAdmin per .htaccess absichern
Voraussetzung: MySQL Benutzer mit Passwort vorhanden
Damit ihr euch per phpMyAdmin mit dem MySQL-Datenbankserver verbinden könnt, muss ein MySQL-Benutzer mit Passwort erstellt werden.
Standardmäßig ist der MySQL root-User unter Ubuntu 18.04 so konfiguriert, dass sich nur der Unix root-User mit der Datenbank verbinden kann. phpMyAdmin wird aber aus Sicherheitsgründen nicht als root-User ausgeführt. Damit wir uns per phpMyAdmin mit der Datenbank verbinden können, ist deswegen nötig einen neuen Benutzer mit Passwort zu erstellen.
Ein neuer Benutzer kann wie folgt erstellt werden:
1 2 3 |
sudo mysql -e "CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';" sudo mysql -e "GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost' WITH GRANT OPTION;" sudo mysql -e "FLUSH PRIVILEGES;" |
Ihr müsst newuser und password entsprechend mit eurem Benutzernamen und einem sicheren Passwort ersetzen.
Danach könnt ihr testen, ob ihr euch mit dem MySQL-Server wie folgt verbinden könnt:
1 |
mysql -u newuser -p |
Wenn der Login mit Benutzername und Passwort funktioniert hat könnt ihr anfangen phpMyAdmin zu installieren.
Express-Setup: Alle Befehle im Überblick
Nachfolgend die Befehle im Überblick zur Installation von phpMyAdmin auf Ubuntu 18.04.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# Installiere unzip sowie notwendige PHP-Erweiterungen für phpMyAdmin sudo apt install -y php-mysql php-mbstring php-zip unzip sudo phpenmod mysqli sudo phpenmod mbstring sudo phpenmod zip # Download & Entpacken der letzten phpMyAdmin-Version wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.zip unzip phpMyAdmin-latest-all-languages.zip # Erstelle Ordner /var/www/phpmyadmin und kopiere entpackte Dateien sudo mkdir /var/www/phpmyadmin sudo cp -r phpMyAdmin-*/* /var/www/phpmyadmin/ # Ändere Besitzer von phpmyadmin auf www-data sudo chown -R www-data:www-data /var/www/phpmyadmin sudo chmod -R 755 /var/www/phpmyadmin # Erstelle Apache Configuration, so dass domain.de/phpmyadmin auf /var/www/phpmyadmin verweist printf "Alias /phpmyadmin /var/www/phpmyadmin/ <Directory /var/www/phpmyadmin/> AllowOverride all </Directory>" | sudo tee /etc/apache2/conf-available/phpmyadmin.conf # Aktivierte phpmyadmin-Konfiguration sudo a2enconf phpmyadmin sudo systemctl reload apache2 # Optional: phpMyAdmin per Passwort schützen # /var/www/phpmyadmin/.htaccess erstellen und mit Passwortschutz versehen printf "AuthType Basic AuthName \"Restricted Files\" AuthUserFile /var/www/phpmyadmin/.htpasswd Require valid-user" | sudo tee /var/www/phpmyadmin/.htaccess # /var/www/phpmyadmin/.htpasswd erstellen. USERNAME durch Benutzernamen ersetzen sudo htpasswd -c /var/www/phpmyadmin/.htpasswd USERNAME |
In den nächsten Abschnitten sind die einzelnen Schritte noch mal im Detail erklärt.
Schritt 1 – Notwendige Abhängigkeiten installieren
Damit phpMyAdmin läuft, werden die PHP-Erweiterungen mysqli, mbstring sowie zip benötigt. Ebenso benötigen wird unzip zum Entpacken der zip-Datei:
1 |
sudo apt install php-mysql php-mbstring php-zip unzip |
Als nächstes müssen wir die mysqli und mbstring-Erweiterung noch aktivieren:
1 2 3 |
sudo phpenmod mysqli sudo phpenmod mbstring sudo phpenmod zip |
Schritt 2 – phpMyAdmin herunterladen & entpacken
Ihr könnt entweder auf www.phpmyadmin.net die letzte Version von phpMyAdmin herunterladen und in euren Webspace-Ordner entpacken nach /var/www/phpmyadmin. Oder ihr könnt folgende Shell-Befehle verwenden:
1 2 3 4 5 6 7 |
# Download & Entpacken der letzten phpMyAdmin-Version wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.zip unzip phpMyAdmin-latest-all-languages.zip # Erstelle Ordner /var/www/phpmyadmin und kopiere entpackte Dateien sudo mkdir /var/www/phpmyadmin sudo cp -r phpMyAdmin-*/* /var/www/phpmyadmin/ |
Dies lädt die neueste phpMyAdmin-Version herunter, entpackt diese, erstellt einen Ordner /var/www/phpmyadmin und kopiert die entpackten die Dateien in dieses Verzeichnis.
Schritt 3 – Rechte anpassen
Damit phpMyAdmin optimal laufen kann, sollten die Dateien den Besitzer und die Gruppe www-data haben. Ebenso sollten die Zugriffsrechte auf 755 gesetzt werden.
1 2 |
sudo chown -R www-data:www-data /var/www/phpmyadmin sudo chmod -R 755 /var/www/phpmyadmin |
Schritt 4 – Apache-Konfiguration anpassen
Wir werden die Apache-Konfiguration so anpassen, dass sobald jemand http://domain.de/phpmyadmin aufruft, entsprechend phpMyAdmin angezeigt wird.
Dafür erstellen wir eine neue Datei:
1 |
sudo nano /etc/apache2/conf-available/phpmyadmin.conf |
Diese Datei erhält folgenden Inhalt:
1 2 3 4 5 |
#Inhalt der Datei /etc/apache2/conf-available/phpmyadmin.conf Alias /phpmyadmin /var/www/phpmyadmin/ <Directory /var/www/phpmyadmin/> AllowOverride all </Directory> |
Zum Abschluss müssen wird diese Konfiguration noch aktivieren und Apache die Konfiguration neu laden lassen:
1 2 |
sudo a2enconf phpmyadmin sudo systemctl reload apache2 |
phpMyAdmin Aufrufen
Sofern ihr bei der Installation die automatische Konfiguration für Apache2 ausgewählt habt, könnt ihr phpMyAdmin unter folgender URL aufrufen:
http://domain_oder_ip/phpmyadmin
Als Benutzername und Passwort müsst ihr die Login-Daten von einem MySQL-Datenbankbenutzer eingeben. Weiter oben im Artikel, im Abschnitt Voraussetzung: MySQL Benutzer mit Passwort vorhanden wurde erklärt, wie man per Kommandozeile einen MySQL-Benutzer mit Passwort erstellen kann.
phpMyAdmin per .htaccess absichern
phpMyAdmin ist ein beliebtes Ziel von Angreifer. Als zusätzlichen Schutz empfiehlt es sich, phpMyAdmin komplett per Passwort abzusichern. Dies geht über eine entsprechende .htaccess-Datei.
Im phpMyAdmin-Verzeichnis erstellen wir eine neue .htacces-Datei:
1 |
sudo nano /var/www/phpmyadmin/.htaccess |
Diese erhält folgenden Inhalt:
1 2 3 4 |
AuthType Basic AuthName "Restricted Files" AuthUserFile /var/www/phpmyadmin/.htpasswd Require valid-user |
Diese Zeilen bedeuten dabei:
- AuthType: Die Art der Passwort-Authentifizierung. Basic bedeutet eine einfache Eingabe von Benutzername und Passwort.
- AuthName: Eine Nachricht, die der Benutzer vor dem Login erhält.
- AuthUserFile: Der Pfad für die Passwortdatei, die wir im nächsten Schritt erstellen.
- Require valid-user: Nur korrekt authentifizierte Benutzer können phpMyAdmin nutzen.
Zum Schluss müssen wir noch die .htpasswd-Datei erstellen:
1 |
sudo htpasswd -c /var/www/phpmyadmin/.htpasswd USERNAME |
Tauscht dabei USERNAME mit dem gewünschten Benutzernamen aus.
Wenn ihr nun phpMyAdmin aufruft, sollte der folgende Dialog auftauchen:
Dort müsst ihr den per htpasswd definierten Benutzernamen und Passwort eingeben. Erst dann erscheint das eigentliche phpMyAdmin-Formular, um euch an der MySQL-Datenbank anzumelden.
Dieser doppelte Passwort-Schutz hat den Vorteil, dass phpMyAdmin komplett von außen vor Angriffen abgeschirmt ist.