Dieses Tutorial zeigt Ihnen, wie Sie phpMyAdmin mit Apache, MariaDB, PHP7.2 (LAMP-Stack) auf Ubuntu 18.04 LTS installieren. phpMyAdmin ist ein kostenloses und quelloffenes webbasiertes Datenbankverwaltungstool, das in PHP geschrieben ist. Es bietet eine grafische Webschnittstelle für Benutzer zum Verwalten von MySQL- oder MariaDB-Datenbanken. Wir werden auch lernen, wie man die Zwei-Faktor-Authentifizierung auf phpMyAdmin aktiviert.
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 zu folgen, benötigen Sie ein Ubuntu 18.04-Betriebssystem, das auf Ihrem lokalen Computer oder auf einem Remote-Server ausgeführt wird.
Wenn Sie nach einem VPS (Virtual Private Server) suchen, können Sie über meinen Empfehlungslink ein Konto bei Vultr erstellen, um 50 $ kostenloses Guthaben zu erhalten (nur für neue Benutzer). Und wenn Sie phpMyAdmin mit einem Domainnamen einrichten müssen, empfehle ich, Domainnamen von NameCheap zu kaufen, da der Preis niedrig ist und sie Whois-Datenschutz kostenlos bieten.
Es wird davon ausgegangen, dass Sie den LAMP-Stack bereits auf Ubuntu 18.04 installiert haben. Wenn nicht, sehen Sie sich bitte das folgende Tutorial an.
- So installieren Sie den LAMP-Stack (Apache, MariaDB, PHP7.2) auf Ubuntu 18.04 LTS
Lassen Sie uns damit beginnen, phpMyAdmin zu installieren.
Schritt 1:Laden Sie phpMyAdmin auf Ubuntu 18.04 herunter und installieren Sie es
phpMyAdmin ist im Software-Repository von Ubuntu 18.04 enthalten. So können wir es einfach mit dem folgenden Befehl installieren.
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 aufgefordert, einen zu konfigurierenden Webserver auszuwählen. Drücken Sie die space
Leiste, um Apache2 auszuwählen. (Ein Sternchen * zeigt an, dass das Element ausgewählt ist). Drücken Sie dann Tab
Taste und Enter
um Ihre Auswahl zu bestätigen.
Wählen Sie im nächsten Bildschirm Yes
um eine Datenbank für phpMyAdmin mit dbconfig-common
zu konfigurieren .
Legen Sie dann ein Passwort für den phpmyadmin
fest Benutzer in MariaDB/MySQL.
Sobald dieser Schritt abgeschlossen ist, wird eine neue Datenbank mit dem Namen phpmyadmin
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 von phpmyadmin
Benutzer.
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;
Führen Sie nun den folgenden Befehl aus, um zu überprüfen, ob die /etc/apache2/conf-enabled/phpmyadmin.conf
Datei existiert.
file /etc/apache2/conf-enabled/phpmyadmin.conf
Wenn beim Installationsprozess kein Fehler auftritt, sollten Sie die folgende Befehlsausgabe sehen.
/etc/apache2/conf-enabled/phpmyadmin.conf: symbolic link to ../conf-available/phpmyadmin.conf
Wenn diese Datei auf Ihrem Server nicht vorhanden ist, haben Sie wahrscheinlich nicht den Apache-Webserver im phpMyAdmin-Setup-Assistenten ausgewählt. Sie können es mit den folgenden Befehlen beheben.
sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf sudo a2enconf phpmyadmin sudo systemctl reload apache2
Schritt 2:Zugriff auf phpMyAdmin aus einem Unterverzeichnis
Bei der Installation von phpMyAdmin wird eine Konfigurationsdatei unter /etc/apache2/conf-enabled/phpmyadmin.conf
abgelegt , wodurch wir über ein Unterverzeichnis auf phpMyAdmin zugreifen können. Wenn Sie andere Webanwendungen wie WordPress auf demselben Ubuntu 18.04-Server installiert haben, fügen Sie einfach /phpmyadmin
hinzu nach Ihrem Domainnamen in der Adressleiste des Browsers.
your-domain.com/phpmyadmin
Wenn phpMyAdmin auf Ihrem lokalen Ubuntu-Computer installiert ist, können Sie auf die phpMyAdmin-Weboberfläche zugreifen, indem Sie den folgenden Text in die Adressleiste des Browsers eingeben.
localhost/phpmyadmin
Wenn die Verbindung abgelehnt wird oder nicht hergestellt werden kann, verhindert möglicherweise eine Firewall HTTP-Anforderungen. Wenn Sie die iptables-Firewall verwenden, müssen Sie den folgenden Befehl ausführen, um die TCP-Ports 80 und 443 zu öffnen.
sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT sudo iptables -I INPUT -p tcp --dport 443 -j ACCEPT
Wenn Sie eine UFW-Firewall verwenden, führen Sie diesen Befehl aus, um die TCP-Ports 80 und 443 zu öffnen.
sudo ufw allow http sudo ufw allow https
Jetzt können Sie den Benutzernamen und das Passwort von MariaDB/MySQL verwenden, um sich bei phpMyAdmin anzumelden
Schritt 3:Greifen Sie von einer Subdomain auf phpMyAdmin zu
Wenn Ihr Ubuntu 18.04-Server keinen anderen virtuellen Apache-Host hat, möchten Sie möglicherweise eine Subdomain verwenden, um auf die phpMyAdmin-Weboberfläche zuzugreifen. Auf diese Weise können Sie HTTPS aktivieren, um den Datenverkehr zu verschlüsseln.
Zuerst müssen wir einen virtuellen Apache-Host für phpMyAdmin erstellen. Das vorhandene phpMyAdmin-Konfigurations-Snippet kann als Vorlage verwendet werden. Kopieren wir es in eine neue Datei.
sudo cp /etc/apache2/conf-enabled/phpmyadmin.conf /etc/apache2/sites-available/phpmyadmin.conf
Bearbeiten Sie dann die neue Datei mit einem Befehlszeilen-Texteditor wie Nano.
sudo nano /etc/apache2/sites-available/phpmyadmin.conf
Fügen Sie am Anfang dieser Datei die folgenden Zeilen hinzu. Ersetzen Sie pma.example.com durch Ihre bevorzugte Subdomain für phpMyAdmin. Vergessen Sie nicht, einen DNS-A-Eintrag für diese Subdomain zu erstellen.
<VirtualHost *:80> ServerName pma.example.com DocumentRoot /usr/share/phpmyadmin ErrorLog ${APACHE_LOG_DIR}/pma.error.log CustomLog ${APACHE_LOG_DIR}/pma.access.log combined
Fügen Sie am Ende dieser Datei die folgende Zeile hinzu.
</VirtualHost>
Speichern und schließen Sie die Datei. (Um eine Datei im Nano-Texteditor zu speichern, drücken Sie Ctrl+O
, und drücken Sie dann zur Bestätigung die Eingabetaste. Drücken Sie zum Beenden Ctrl+X
.) Aktivieren Sie dann diesen virtuellen Host.
sudo a2ensite phpmyadmin.conf
Laden Sie den Apache-Webserver neu, damit diese Änderung wirksam wird.
sudo systemctl reload apache2
Jetzt sollten Sie über
auf die phpMyAdmin-Weboberfläche zugreifen könnenpma.example.com
Bevor Sie Benutzeranmeldeinformationen in das Anmeldeformular eingeben, aktivieren wir HTTPS.
Schritt 4:HTTPS auf phpMyAdmin mit Apache aktivieren
Um die phpMyadmin-Weboberfläche zu sichern, können wir ein kostenloses TLS-Zertifikat von Let’s Encrypt installieren. Führen Sie den folgenden Befehl aus, um den Let’s Encrypt-Client (certbot) aus dem Ubuntu 18.04-Software-Repository zu installieren.
sudo apt install certbot python3-certbot-apache
Python3-certbot-apache
ist das Apache-Plugin für Certbot. Führen Sie nun den folgenden Befehl aus, um das TLS-Zertifikat zu erhalten und zu installieren.
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --must-staple -d pma.example.com --email [email protected]
Erklärung:
- –apache: Verwenden Sie den Apache-Authentifikator und das Installationsprogramm
- –stimme zu :Nutzungsbedingungen von Let’s Encrypt akzeptieren
- –Weiterleitung :301-Weiterleitung hinzufügen.
- –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 durch Kommas getrennte Liste von Domänennamen. 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 5:phpMyAdmin-Anmeldefehler beheben
Wenn Sie versuchen, sich mit dem MariaDB-Root-Konto bei phpMyAdmin anzumelden, 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 liegt darin, 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 lösen, 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 mysql -u root
Erstellen Sie einen Admin-Benutzer mit Passwortauthentifizierung.
create user [email protected] identified by 'your-preferred-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;
Nun können Sie sich mit dem admin
bei phpMyAmin anmelden Konto erstellen und alle Datenbanken verwalten.
Schritt 6:Neueste stabile Version von phpMyAdmin installieren
Das Ubuntu 18.04-Repository wird mit PHP7.2 und phpMyAdmin 4.6.6 ausgeliefert. Sie können Ihre phpMyAdmin-Version in der Titelleiste des Browsers überprüfen.
PHP7.2 wird jedoch von phpMyAdmin seit Version 4.7.4 unterstützt. Wenn Sie phpMyAdmin 4.6.6 mit PHP7.2 verwenden, sehen Sie die folgende Warnmeldung auf der Registerkarte Export und Import.
parameter must be an array or an object that implements countable
Um das Kompatibilitätsproblem zu beheben, können wir phpMyAdmin 4.9 installieren, die zum Zeitpunkt dieses Schreibens die neueste stabile Version ist. Laden Sie es mit wget
herunter .
wget https://files.phpmyadmin.net/phpMyAdmin/4.9.0.1/phpMyAdmin-4.9.0.1-all-languages.zip
Hinweis:Sie können immer das obige URL-Format verwenden, um die neueste stabile Version von phpMyAdmin herunterzuladen. Ersetzen Sie einfach 4.9.0.1 durch die neueste Versionsnummer.
Dann extrahieren.
sudo apt install unzip unzip phpMyAdmin-4.9.0.1-all-languages.zip
Sichern Sie die ursprünglichen phpMyAdmin-Dateien.
sudo mv /usr/share/phpmyadmin /usr/share/phpmyadmin-original
Verschieben Sie phpMyadmin 4.9 nach /usr/share/phpmyadmin/
Verzeichnis.
sudo mv phpMyAdmin-4.9.0.1-all-languages /usr/share/phpmyadmin
Bearbeiten Sie die Konfigurationsdatei des Anbieters.
sudo nano /usr/share/phpmyadmin/libraries/vendor_config.php
Suchen Sie die folgende Zeile.
define('CONFIG_DIR', '');
Ändern Sie es in
define('CONFIG_DIR', '/etc/phpmyadmin/');
Speichern und schließen Sie die Datei. Erstellen Sie dann das tmp
Ordner zum Speichern von Cache-Dateien.
sudo mkdir /usr/share/phpmyadmin/tmp
Ändern Sie die Eigentümerschaft des Benutzers und der Gruppe in www-data
.
sudo chown www-data:www-data /usr/share/phpmyadmin/tmp
Jetzt können Sie phpMyAdmin 4.9 verwenden, ohne die PHP-Fehler zu sehen.
Zwei-Faktor-Authentifizierung aktivieren
Sie können phpMyAdmin auch absichern, indem Sie die Zwei-Faktor-Authentifizierung aktivieren, eine Funktion, die in Version 4.8 hinzugefügt wurde. Um es zu aktivieren, melden Sie sich bei phpMyAdmin an. Gehen Sie dann zu Settings
-> Two-factor authentication
und wählen Sie Authentifizierungsanwendung (2FA) aus .
Nachdem Sie auf Zwei-Faktor-Authentifizierung konfigurieren geklickt haben klicken, wird Ihnen ein QR-Code angezeigt, den Sie mit einer Zwei-Faktor-Authentifizierungs-App auf Ihrem Telefon scannen müssen.
Google Authenticator ist eine beliebte 2FA-App, aber ich empfehle FreeOTP, eine von Red Hat entwickelte Open-Source-2FA-App. Sobald Sie den von Ihrer 2FA-App generierten Authentifizierungscode eingeben, wird die Zwei-Faktor-Authentifizierung aktiviert. Wenn Sie sich jetzt ab- und wieder anmelden, müssen Sie neben Benutzername und Passwort auch den Authentifizierungscode eingeben.