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

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

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


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 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

So installieren Sie WordPress mit Nginx in Ubuntu 20.04