GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So installieren Sie phpMyAdmin mit Nginx (LEMP) unter Ubuntu 18.04 LTS

Dieses Tutorial zeigt Ihnen, wie Sie phpMyAdmin mit Nginx, MariaDB und PHP7.2 (LEMP) auf Ubuntu 18.04 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. Außerdem erfahren Sie, wie Sie die Zwei-Faktor-Authentifizierung auf phpMyAdmin aktivieren.

Voraussetzungen

Um diesem Tutorial zu folgen, muss ein Ubuntu 18.04-Betriebssystem auf Ihrem lokalen Computer oder auf einem Remote-Server 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 ein kostenloses Guthaben von 50 $ für Vultr zu erhalten (nur für neue Benutzer).

Es wird davon ausgegangen, dass Sie den LEMP-Stack bereits auf Ubuntu 18.04 installiert haben. Wenn nicht, sehen Sie sich bitte das folgende Tutorial an.

  • So installieren Sie den LEMP-Stack (Nginx, MariaDB, PHP7.2) unter Ubuntu 18.04

Lassen Sie uns damit beginnen, phpMyAdmin zu installieren.

Schritt 1:Laden Sie phpMyAdmin herunter und installieren Sie es

phpMyAdmin ist im Software-Repository von Ubuntu 18.04 enthalten, sodass wir es einfach mit dem folgenden Befehl installieren können.

sudo apt update
sudo apt install phpmyadmin

Während der Installation werden Sie aufgefordert, einen zu konfigurierenden Webserver auszuwählen. Nginx ist nicht in der Liste, drücken Sie also die Tabulatortaste und drücken Sie OK, um diesen Schritt zu überspringen.

Wählen Sie als Nächstes Ja, um eine neue Datenbank zu erstellen, und lassen Sie dbconfig-common um es zu konfigurieren.

Dadurch wird auch ein neuer Datenbankbenutzer namens phpmyadmin erstellt . Geben Sie diesem Benutzer ein Passwort.

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 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 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.2-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önnen
pma.example.com

Beachten Sie, dass phpMyAdmin in neueren Versionen von Firefox nicht funktioniert. Sie können Google Chrome verwenden, um die phpMyAdmin-Weboberfläche zu besuchen. Bevor Sie Benutzeranmeldeinformationen in das Anmeldeformular eingeben, aktivieren wir HTTPS.

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 18.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 --must-staple -d pma.example.com --email your-email-address

Erklärung:

  • –nginx :Verwenden Sie den Nginx-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.

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.

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 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 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 phpMyAmin anmelden und alle Datenbanken verwalten.

Einen anderen Port verwenden

Die Verwendung eines anderen Ports anstelle des Standardports 443 kann vorteilhaft sein, da Sie diesen Port schließen können, wenn Sie phpMyAdmin nicht verwenden, um Hacking-Aktivitäten zu verhindern, oder Sie können festlegen, welche IP-Adressen auf diesen Port zugreifen dürfen. Es ist sehr einfach zu konfigurieren. Öffnen Sie einfach die Serverblockdatei.

sudo nano /etc/nginx/conf.d/phpmyadmin.conf

Suchen Sie die folgenden zwei Zeilen:

listen [::]:443 ssl ipv6only=on; # managed by Certbot
listen 443 ssl; # managed by Certbot

Ändern Sie 443 in einen anderen Port, z. B. 8443.

listen [::]:8443 ssl ipv6only=on; # managed by Certbot
listen 8443 ssl; # managed by Certbot

Sie können ihnen auch http2 wie unten hinzufügen, um das HTTP/2-Protokoll zu aktivieren.

listen [::]:8443 ssl http2 ipv6only=on; # managed by Certbot
listen 8443 ssl http2; # managed by Certbot

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 können Sie auf phpMyAdmin zugreifen über:

https://pma.example.com:8443

Installieren Sie die neueste stabile Version von phpMyAdmin

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.

parameter must be an array or an object that implements countable

Um das Kompatibilitätsproblem zu beheben, können wir phpMyAdmin 4.8 installieren, die zum Zeitpunkt dieses Schreibens die neueste stabile Version ist. Laden Sie es mit wget herunter .

wget https://files.phpmyadmin.net/phpMyAdmin/4.8.0.1/phpMyAdmin-4.8.0.1-all-languages.zip

Dann extrahieren.

sudo apt install unzip

unzip phpMyAdmin-4.8.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.8 nach /usr/share/phpmyadmin/ Verzeichnis.

sudo mv phpMyAdmin-4.8.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.8 verwenden, ohne Nginx neu zu laden oder neu zu starten.

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.

Automatische Verlängerung des 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

--quiet flag unterdrückt die Standardausgabe. Wenn Sie einen Standardfehler erhalten möchten, fügen Sie die folgende Zeile am Anfang der crontab-Datei hinzu.

MAILTO=your-email-address

Das Neuladen von Nginx ist dafür erforderlich, um den Clients das neue Zertifikat zu präsentieren.

Ich hoffe, dieses Tutorial hat Ihnen geholfen, phpMyAdmin mit Nginx unter Ubuntu 18.04 LTS zu installieren. Wenn Sie diesen Beitrag nützlich fanden, abonnieren Sie wie immer unseren kostenlosen Newsletter, um weitere Tipps und Tricks zu erhalten. Pass auf dich auf.


Ubuntu
  1. So installieren Sie phpMyAdmin mit Nginx unter Ubuntu 18.04

  2. So installieren Sie Seafile mit Nginx unter Ubuntu 20.04 LTS

  3. So installieren Sie Seafile mit Nginx unter Ubuntu 18.04 LTS

  4. So installieren Sie GitBucket mit Nginx unter Ubuntu 18.04 LTS

  5. So stellen Sie Modsecurity mit Nginx auf Ubuntu 20.04 LTS bereit

So installieren Sie phpMyAdmin unter Ubuntu 18.04 LTS

So installieren Sie LEMP auf Ubuntu 18.04 LTS

So installieren Sie phpMyAdmin mit Nginx unter Ubuntu 18.04 LTS

So installieren Sie LEMP auf Ubuntu 20.04 LTS

So installieren Sie phpMyAdmin mit Nginx unter Ubuntu 20.04 LTS

So installieren Sie den LEMP-Stack mit PhpMyAdmin in Ubuntu 20.04