Dieses Tutorial zeigt Ihnen, wie Sie phpMyAdmin mit Nginx, MariaDB und PHP7.4 (LEMP) auf Ubuntu 20.04 installieren. phpMyAdmin ist ein kostenloses und quelloffenes webbasiertes Datenbankverwaltungstool, das in PHP geschrieben ist. Es bietet Benutzern eine grafische Webschnittstelle zum Verwalten von MySQL- oder MariaDB-Datenbanken.
phpMyAdmin erlaubt Administratoren:
- Durchsuchen Sie Datenbanken und Tabellen;
- Datenbanken erstellen, kopieren, umbenennen, ändern und löschen;
- Tabellen erstellen, kopieren, umbenennen, ändern und löschen;
- Tabellenpflege durchführen;
- Felder hinzufügen, bearbeiten und löschen;
- alle SQL-Anweisungen ausführen, sogar mehrere Abfragen;
- Indizes erstellen, ändern und löschen;
- Textdateien in Tabellen laden;
- Dumps von Tabellen oder Datenbanken erstellen und lesen;
- Daten in die Formate SQL, CSV, XML, Word, Excel, PDF und LaTeX exportieren;
- mehrere Server verwalten;
- MySQL-Benutzer und -Privilegien verwalten;
- Servereinstellungen und Laufzeitinformationen mit Konfigurationshinweisen überprüfen;
- prüfen Sie die referenzielle Integrität in MyISAM-Tabellen;
- Erstellen Sie automatisch komplexe Abfragen mit Query-by-Example (QBE)
- Erforderliche Tabellen verbinden;
- PDF-Grafiken des Datenbanklayouts erstellen;
- global in einer Datenbank oder einer Teilmenge davon suchen;
- gespeicherte Daten mithilfe vordefinierter Funktionen in ein beliebiges Format umwandeln, z. B. BLOB-Daten als Bild oder Download-Link anzeigen;
- InnoDB-Tabellen und Fremdschlüssel verwalten;
Voraussetzungen
Um diesem Tutorial folgen zu können, muss auf Ihrem lokalen Computer oder auf einem Remote-Server ein Ubuntu 20.04-Betriebssystem ausgeführt werden.
Wenn Sie nach einem VPS (Virtual Private Server) suchen, können Sie auf diesen speziellen Link klicken, um 100 $ kostenloses Guthaben auf DigitalOcean zu erhalten. (Nur für neue Benutzer). Wenn Sie bereits DigitalOcean-Benutzer sind, können Sie auf diesen speziellen Link klicken, um 50 $ kostenloses Guthaben auf Vultr zu erhalten (nur für neue Benutzer).
Es wird davon ausgegangen, dass Sie den LEMP-Stack bereits auf Ubuntu 20.04 installiert haben. Wenn nicht, sehen Sie sich bitte das folgende Tutorial an.
- So installieren Sie den LEMP-Stack (Nginx, MariaDB, PHP7.4) unter Ubuntu 20.04
Lassen Sie uns damit beginnen, phpMyAdmin zu installieren.
Schritt 1:Laden Sie phpMyAdmin auf Ubuntu 20.04 herunter und installieren Sie es
phpMyAdmin ist im Software-Repository von Ubuntu 20.04 enthalten, sodass wir es einfach mit dem folgenden Befehl installieren können.
sudo apt update sudo apt install phpmyadmin
Der obige Befehl installiert alle notwendigen Abhängigkeiten, einschließlich PHP7-Erweiterungen. Während der Installation werden Sie gefragt, ob Sie dbconfig-common
verwenden möchten um die Datenbank zu konfigurieren. Drücken Sie die Tab-Taste, um Ja auszuwählen.
Dadurch wird auch ein neuer Datenbankbenutzer namens phpmyadmin
erstellt . Geben Sie diesem Benutzer ein Passwort.
Als nächstes werden Sie aufgefordert, einen zu konfigurierenden Webserver auszuwählen. Nginx ist nicht auf der Liste, drücken Sie also die Tabulatortaste und drücken Sie OK, um diesen Schritt zu überspringen.
Sobald dies erledigt ist, wird eine neue Datenbank namens phpmyadmin
erstellt erstellt und der Datenbankbenutzer phpmyadmin
verfügt über die erforderlichen Berechtigungen zum Verwalten dieser Datenbank. Wenn Sie genauso neugierig sind wie ich, können Sie sich bei MariaDB anmelden und überprüfen, welche Berechtigungen phpmyadmin
haben Benutzer wurde gewährt.
Sie können den folgenden Befehl verwenden, um sich beim MariaDB-Server anzumelden.
sudo mysql -u root
Überprüfen Sie dann die Berechtigungen.
show grants for [email protected];
Ausgabe:
Wie Sie sehen können, Benutzer phpmyadmin
hat alle Rechte auf die Datenbank phpmyadmin
. Jetzt können Sie beenden, indem Sie Folgendes ausführen:
exit;
Schritt 2:Nginx-Serverblock für phpMyAdmin erstellen
Um auf die phpMyAdmin-Weboberfläche zugreifen zu können, müssen wir einen Nginx-Serverblock erstellen, indem wir den folgenden Befehl ausführen.
sudo nano /etc/nginx/conf.d/phpmyadmin.conf
Wir werden es so konfigurieren, dass wir über eine Subdomain auf phpMyAdmin zugreifen können. Fügen Sie den folgenden Text in die Datei ein. Ersetzen Sie pma.example.com
mit Ihrer tatsächlichen Subdomain und vergessen Sie nicht, dafür einen DNS-A-Eintrag zu erstellen.
server { listen 80; listen [::]:80; server_name pma.example.com; root /usr/share/phpmyadmin/; index index.php index.html index.htm index.nginx-debian.html; access_log /var/log/nginx/phpmyadmin_access.log; error_log /var/log/nginx/phpmyadmin_error.log; location / { try_files $uri $uri/ /index.php; } location ~ ^/(doc|sql|setup)/ { deny all; } location ~ \.php$ { fastcgi_pass unix:/run/php/php7.4-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; include snippets/fastcgi-php.conf; } location ~ /\.ht { deny all; } }
Ihre phpMyAdmin-Dateien befinden sich in /usr/share/phpmyadmin/
Verzeichnis. Speichern und schließen Sie die Datei. Testen Sie dann die Nginx-Konfigurationen.
sudo nginx -t
Wenn der Test erfolgreich ist, laden Sie Nginx neu, damit die Änderungen wirksam werden.
sudo systemctl reload nginx
Jetzt sollten Sie über
auf die phpMyAdmin-Weboberfläche zugreifen könnenpma.example.com
Schritt 3:TLS-Zertifikat installieren
Um die phpMyadmin-Weboberfläche zu sichern, können wir ein kostenloses TLS-Zertifikat von Let’s Encrypt installieren. Installieren Sie den Let’s Encrypt-Client aus dem Ubuntu 20.04-Software-Repository wie folgt:
sudo apt install certbot python3-certbot-nginx
Python3-certbot-nginx
ist das Nginx-Plugin für Certbot. Führen Sie nun den folgenden Befehl aus, um das TLS-Zertifikat zu erhalten und zu installieren.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp -d pma.example.com --email [email protected]
Wo:
- –nginx :Verwenden Sie den Nginx-Authentifikator und das Installationsprogramm
- –stimme zu :Nutzungsbedingungen von Let’s Encrypt akzeptieren
- –Weiterleitung :HTTPS durch 301-Umleitung erzwingen.
- –hsts :Strict-Transport-Security-Header zu jeder HTTP-Antwort hinzufügen.
- –staple-ocsp :Aktiviert OCSP-Heften.
- – muss geheftet werden :Fügt dem Zertifikat die Erweiterung OCSP Must Staple hinzu.
- -d Flag folgt eine Liste von Domänennamen, getrennt durch ein Komma. Sie können bis zu 100 Domainnamen hinzufügen.
- –E-Mail :E-Mail, die für die Registrierung und den Wiederherstellungskontakt verwendet wird.
Sie werden gefragt, ob Sie E-Mails von EFF (Electronic Frontier Foundation) erhalten möchten. Nachdem Sie J oder N ausgewählt haben, wird Ihr TLS-Zertifikat automatisch bezogen und für Sie konfiguriert, was durch die folgende Meldung angezeigt wird.
Schritt 4:Testen Sie Ihr TLS-Zertifikat
Gehen Sie zu ssllabs.com, um Ihr TLS-Zertifikat und Ihre Konfiguration zu testen. Sie sollten A+ erhalten weil HSTS aktiviert ist.
Schritt 5:phpMyAdmin-Anmeldefehler beheben
Wenn Sie sich mit dem MariaDB-Root-Konto anmelden, wird möglicherweise der folgende Fehler angezeigt.
#1698 - Access denied for user 'root '@'localhost'
und
mysqli_real_connect(): (HY000/1698): Access denied for user 'root '@'localhost'
Wenn Sie sich mit dem Benutzer phpmyadmin
anmelden , wird der obige Fehler nicht angezeigt. Allerdings Benutzer phpmyadmin
kann nur zur Verwaltung von phpmyadmin
verwendet werden Datenbank. Die Ursache des Fehlers ist, dass der MariDB-Root-Benutzer standardmäßig über das unix_socket-Plugin authentifiziert wird, anstatt das mysql_native_password
zu verwenden Plugin. Um dieses Problem zu umgehen, können wir einen weiteren Admin-Benutzer erstellen und dem neuen Admin-Benutzer alle Berechtigungen gewähren.
Melden Sie sich über die Befehlszeile beim MariaDB-Server an.
sudo mariadb -u root
Erstellen Sie einen Admin-Benutzer mit Passwortauthentifizierung.
create user [email protected] identified by 'your-chosen-password';
Gewähren Sie alle Berechtigungen für alle Datenbanken.
grant all privileges on *.* to [email protected] with grant option;
Berechtigungen leeren und beenden;
flush privileges; exit;
Jetzt können Sie sich mit dem Admin-Konto bei phpMyAdmin anmelden und alle Datenbanken verwalten.
Automatische Verlängerung des TLS-Zertifikats
Um das Let’s Encrypt-Zertifikat automatisch zu erneuern, bearbeiten Sie einfach die Crontab-Datei des Root-Benutzers.
sudo crontab -e
Fügen Sie dann unten die folgende Zeile hinzu.
@daily certbot renew --quiet && systemctl reload nginx
Nginx muss neu geladen werden, damit es das neue Zertifikat für Clients abholen kann.