phpMyAdmin ist ein kostenloses Open-Source-Tool zur Verwaltung von MySQL- und MariaDB-Servern über eine webbasierte Schnittstelle. Mit phpMyAdmin können Sie Datenbanken und Benutzer erstellen und verwalten, SQL-Anweisungen ausführen, Daten importieren und exportieren und Datenbankaktivitäten wie das Erstellen, Löschen von Tabellen, Spalten, Indizes, Berechtigungen und vieles mehr durchführen. phpMyAdmin ist eines der beliebtesten und am weitesten verbreiteten Verwaltungstools, insbesondere für Webhosting-Dienste.
Funktionen
- Bietet eine einfache und benutzerfreundliche Webschnittstelle.
- Daten aus CSV und SQL importieren.
- Unterstützt die meisten MySQL-Funktionen, einschließlich Erstellen, Kopieren, Löschen, Umbenennen, Löschen und Ändern von Datenbanken, Tabellen, Feldern und Indizes.
- Ermöglicht Ihnen, Daten in verschiedene Formate wie PDF, CSV, SQL, XML und viele mehr zu exportieren.
- Mehrere Server verwalten.
- Erstellen komplexer Abfragen mit Query-by-Example (QBE).
In diesem Tutorial zeigen wir Ihnen, wie Sie phpMyAdmin auf einem CentOS 8-Server installieren und sichern.
Anforderungen
- Ein Server mit CentOS 8.
- Auf dem Server ist ein Root-Passwort konfiguriert.
LAMP-Server installieren
Zuerst müssen Sie Apache, MariaDB, PHP und andere PHP-Bibliotheken auf Ihrem Server installieren. Sie können alle mit dem folgenden Befehl installieren:
dnf install httpd mariadb-server php php-pdo php-pecl-zip php-json php-common php-fpm php-mbstring php-cli php-mysqlnd php-json php-mbstring wget unzip
Sobald alle Pakete installiert sind, starten Sie den Apache- und MariaDB-Dienst und ermöglichen Sie ihnen, nach dem Systemneustart mit dem folgenden Befehl zu starten:
systemctl start httpd
systemctl start mariadb
systemctl enable httpd
systemctl enable mariadb
Wenn Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.
MariaDB konfigurieren
Standardmäßig ist MariaDB nicht gesichert. Sie müssen es also zuerst sichern. Sie können dies tun, indem Sie das Skript mysql_secure_installation ausführen:
mysql_secure_installation
Beantworten Sie alle Fragen wie unten gezeigt:
Root-Passwort setzen? [J/n] JNeues Passwort:Anonyme Benutzer entfernen? [J/n] YRoot-Anmeldung aus der Ferne verbieten? [J/n] YTestdatenbank und Zugriff darauf entfernen? [J/n] YBerechtigungstabellen jetzt neu laden? [J/n] Ja
Sobald Sie fertig sind, sollten Sie die folgende Ausgabe sehen:
... Erfolgreich! Aufräumen...Fertig! Wenn Sie alle oben genannten Schritte ausgeführt haben, sollte Ihre MariaDB-Installation jetzt sicher sein. Vielen Dank, dass Sie MariaDB verwenden!
An diesem Punkt ist Ihre MariaDB-Installation gesichert.
Installieren Sie phpMyAdmin
Standardmäßig ist phpMyAdmin nicht im Standard-Repository von CentOS 8 verfügbar. Sie müssen also die neueste Version von phpMyAdmin von der offiziellen Website herunterladen. Sie können es mit dem folgenden Befehl herunterladen:
wget https://files.phpmyadmin.net/phpMyAdmin/4.9.2/phpMyAdmin-4.9.2-all-languages.zip
Entpacken Sie die heruntergeladene Datei nach dem Herunterladen mit dem folgenden Befehl:
phpMyAdmin-4.9.2-all-languages.zip entpacken
Verschieben Sie als Nächstes den extrahierten Inhalt wie unten gezeigt in das Verzeichnis /usr/share:
mv phpMyAdmin-4.9.2-all-languages /usr/share/phpmyadmin
Wechseln Sie als Nächstes in das Verzeichnis /usr/share/phpmyadmin und benennen Sie die Datei in config.sample.inc.php um:
cd /usr/share/phpmyadmin
mv config.sample.inc.php config.inc.php
Als nächstes öffnen Sie die Datei mit Ihrem bevorzugten Texteditor wie unten gezeigt:
nano config.inc.php
Ändern Sie die folgende Zeile:
$cfg['blowfish_secret'] ='dein-geheimes-passwort';
Speichern und schließen Sie die Datei, wenn Sie fertig sind. Importieren Sie dann die create_tables.sql mit dem folgenden Befehl:
mysqlGeben Sie Ihr Root-Passwort ein, wenn Sie zum Importieren der Tabelle aufgefordert werden.
Erstellen Sie als Nächstes ein tmp-Verzeichnis für phpmyadmin und geben Sie die entsprechenden Berechtigungen:
mkdir /usr/share/phpmyadmin/tmp
chown -R apache:apache /usr/share/phpmyadmin
chmod 777 /usr/share/phpmyadmin/tmpApache für phpMyAdmin konfigurieren
Als Nächstes müssen Sie eine Konfigurationsdatei für den virtuellen Apache-Host für phpMyAdmin erstellen. Sie können es mit dem folgenden Befehl erstellen:
nano /etc/httpd/conf.d/phpmyadmin.confFügen Sie die folgenden Zeilen hinzu:
Alias /phpmyadmin /usr/share/phpmyadminAddDefaultCharset UTF-8 # Apache 2.4 Alle gewährten # Apache 2.2 Order Deny,Allow Deny from All Allow from 127.0.0.1 Allow from ::1 # Apache 2.4 Erfordern alle gewährten # Apache 2.2 Order Deny,Allow Deny from All Allow from 127.0.0.1 Allow from ::1 Speichern und schließen Sie die Datei, wenn Sie fertig sind. Starten Sie dann den Apache-Dienst mit dem folgenden Befehl neu:
systemctl startet httpd neuSie können den Status des Apache mit dem folgenden Befehl überprüfen:
systemctl-Status httpdSie sollten die folgende Ausgabe sehen:
? httpd.service - Der Apache HTTP-Server Geladen:geladen (/usr/lib/systemd/system/httpd.service; aktiviert; Herstellervoreinstellung:deaktiviert) Drop-In:/usr/lib/systemd/system/httpd.service.d ??php-fpm.conf Aktiv:aktiv (läuft) seit Mi 2019-12-18 01:07:52 EST; Vor 6s Dokumente:man:httpd.service(8) Haupt-PID:5636 (httpd) Status:„Gestartet, hört auf:Port 80“ Aufgaben:213 (Grenze:25044) Speicher:28,7 MB CGroup:/system.slice/httpd .service ??5636 /usr/sbin/httpd -DFOREGROUND ??5639 /usr/sbin/httpd -DFOREGROUND ??5640 /usr/sbin/httpd -DFOREGROUND ??5641 /usr/sbin/httpd -DFOREGROUND ??5642 / usr/sbin/httpd -DFOREGROUNDDec 18 01:07:52 centos8 systemd[1]:Apache HTTP Server gestoppt.Dec 18 01:07:52 centos8 systemd[1]:Apache HTTP Server gestartet ... Dec 18 01:07:52 centos8 httpd[5636]:AH00558:httpd:Der vollqualifizierte Domänenname des Servers konnte mithilfe von fe80::200:d0>Dec 18 nicht zuverlässig ermittelt werden. 01:07:52 centos8 httpd[5636]:Server konfiguriert, lauscht :port 80Dec 18 01:07:52 centos8 systemd[1]:Apache HTTP Server gestartet.
Konfigurieren Sie SELinux und die Firewall
Standardmäßig ist SELinux in CentOS 8 aktiviert. Daher müssen Sie SELinux konfigurieren, damit phpMyAdmin korrekt funktioniert.
Installieren Sie zuerst das Paket policycoreutils-python-utils, um eine SELinux-Umgebung mit dem folgenden Befehl zu verwalten:
dnf install policycoreutils-python-utils
Aktivieren Sie als Nächstes den Zugriff auf das Verzeichnis /usr/share/phpmyadmin mit dem folgenden Befehl:
semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/phpmyadmin/'
semanage fcontext -a -t httpd_sys_rw_content_t "/usr/share/phpmyadmin/tmp(/.*)?"
Gehen Sie nun durch alle Dateien in Ihrem phpmyadmin-Verzeichnis, indem Sie den folgenden Befehl ausführen:
restorecon -Rv '/usr/share/phpmyadmin/'
Als Nächstes müssen Sie eine Firewall-Regel erstellen, um den HTTP-Dienst von externen Netzwerken zuzulassen. Sie können es mit dem folgenden Befehl zulassen:
firewall-cmd --permanent --add-service=http
firewall-cmd --reload
phpMyAdmin ist nun installiert und konfiguriert. Jetzt ist es Zeit zu überprüfen, ob es funktioniert oder nicht.
Öffnen Sie Ihren Webbrowser und geben Sie die URL http://your-server-ip/phpmyadmin ein. Sie werden auf die folgende Seite weitergeleitet:
Sichern Sie phpMyAdmin
Zu diesem Zeitpunkt funktioniert die phpMyAdmin-Instanz ordnungsgemäß. Es ist jedoch eine wichtige Aufgabe für Sie, Ihre phpMyAdmin-Instanz vor der Außenwelt zu schützen. In diesem Abschnitt zeigen wir Ihnen, wie Sie Ihre phpMyAdmin-Instanz sichern.
Erlaube phpMyAdmin von einer bestimmten IP
Zuerst müssen Sie Ihr phpMyAdmin so konfigurieren, dass es nur von der IP-Adresse Ihrer Heimverbindung zugänglich ist.
Sie können es konfigurieren, indem Sie die Datei /etc/httpd/conf.d/phpmyadmin.conf bearbeiten:
nano /etc/httpd/conf.d/phpmyadmin.conf
Suchen Sie die folgenden Zeilen:
Erfordern alle gewährten
Und ersetzen Sie sie durch Folgendes:
Require ip your-home--connection-ip-address Require ip ::1
Speichern und schließen Sie die Datei, wenn Sie fertig sind.
Zusätzliche Authentifizierungsebene konfigurieren
Es ist eine gute Idee, Ihr phpmyadmin-Verzeichnis mit einem Passwort zu schützen, indem Sie eine einfache Authentifizierung einrichten.
Erstellen Sie dazu eine neue Authentifizierungsdatei mit dem htpasswd-Tool wie unten gezeigt:
mkdir /etc/phpmyadmin
htpasswd -c /etc/phpmyadmin/.htpasswd admin
Sie werden aufgefordert, Ihr Admin-Passwort wie unten gezeigt einzugeben:
Neues Passwort:Neues Passwort erneut eingeben:Passwort für Benutzer admin hinzufügen
Als nächstes müssen Sie Apache konfigurieren, um die .htpasswd-Datei zu verwenden. Sie können dies tun, indem Sie die Datei /etc/httpd/conf.d/phpmyadmin.conf.
bearbeitennano /etc/httpd/conf.d/phpmyadmin.conf
Fügen Sie die folgenden Zeilen unterhalb der Zeile „AddDefaultCharset UTF-8“ hinzu:
Optionen +FollowSymLinks +Multiviews +Indizes AllowOverride None AuthType basic AuthName "Authentication Required" AuthUserFile /etc/phpmyadmin/.htpasswd Require valid-user
Speichern Sie die Datei und starten Sie den Apache-Dienst neu, damit die Änderungen wirksam werden:
systemctl startet httpd neu
Zugriff auf phpMyAdmin
Jetzt ist Ihre phpMyAdmin-Instanz mit einer zusätzlichen Sicherheitsebene gesichert. Öffnen Sie Ihren Webbrowser und geben Sie die URL http://your-server-ip/phpmyadmin ein. Sie werden aufgefordert, die Anmeldeinformationen des Benutzers einzugeben, den Sie zuvor erstellt haben, wie unten gezeigt:
Geben Sie Ihren Admin-Benutzernamen und Ihr Passwort ein und klicken Sie dann auf die Schaltfläche OK. Sie werden zur Anmeldeseite von phpMyAdmin weitergeleitet:
Geben Sie nun Ihre Anmeldeinformationen für den MySQL-Administrator ein und klicken Sie auf die Schaltfläche Los. Sie sollten die folgende Seite sehen:
Schlussfolgerung
Herzliche Glückwünsche! Sie haben phpMyAdmin erfolgreich auf dem CentOS 8-Server installiert und gesichert. Sie können jetzt Datenbanken, Benutzer und Tabellen erstellen und diese über die webbasierte Oberfläche verwalten. Fühlen Sie sich frei, mich zu fragen, wenn Sie irgendwelche Fragen haben.