Wie installiert man phpMyAdmin mit Nginx und Let’s Encrypt SSL auf Ubuntu 20.04 LTS

phpMyAdmin ist eine kostenlose und Open-Source-Anwendung, die zur Verwaltung der MySQL- und MariaDB-Datenbank über eine webbasierte Schnittstelle verwendet werden kann. Mit phpMyAdmin können Sie verschiedene Aufgaben ausführen, darunter die Verwaltung von Benutzerkonten und Berechtigungen, den Import und Export von Daten, die Ausführung von SQL-Anweisungen und vieles mehr. Es wird mit einer breiten Palette an Dokumentation geliefert, die Sie bei der Durchführung verschiedener Operationen unterstützt.

In diesem Tutorial werden wir erklären, wie man phpMyAdmin mit Nginx unter Ubuntu 20.04 installiert und mit einem kostenlosen Let’s Encrypt SSL-Zertifikat sichert.

Voraussetzungen

  • Ein Server, auf dem Ubuntu 20.04 läuft.
  • Einen gültigen Domain-Namen, der auf Ihren Server zeigt.
  • Auf Ihrem Server ist ein Root-Passwort konfiguriert.

Installieren Sie Nginx, MariaDB und PHP

Zuerst müssen Sie den Nginx-Webserver, MariaDB, PHP und andere erforderliche PHP-Erweiterungen auf Ihrem Server installieren. Sie können sie alle mit dem folgenden Befehl installieren:

apt-get install nginx mariadb-server php php-cli php-mysql php-mbstring php-zip php-gd php-json php-curl php-fpm -y

Sobald alle Pakete installiert sind, können Sie mit dem nächsten Schritt fortfahren.

phpMyAdmin installieren

Standardmäßig ist das phpMyAdmin-Paket im Standard-Repository von Ubuntu 20.04 verfügbar. Sie können es installieren, indem Sie einfach den folgenden Befehl ausführen:

apt-get install phpmyadmin -y

Während der Installation werden Sie aufgefordert, den Webserver wie unten dargestellt auszuwählen:

Konfigurieren von phpmyadmin

Da wir den Nginx-Webserver verwenden, können Sie einfach TAB und dann ENTER drücken, um diese Eingabeaufforderung zu umgehen. Sie werden aufgefordert, eine Datenbank für die Verwendung von phpMyAdmin zu konfigurieren.

Verwenden Sie dbconfig allgemein

Wählen Sie Ja und drücken Sie Enter, um fortzufahren. Sie werden aufgefordert, ein Passwort für die Anwendung phpMyAdmin zu wählen und zu bestätigen, wie unten dargestellt:

Anwendungskennwort festlegen

Geben Sie Ihr gewünschtes Passwort ein und drücken Sie Enter, um die Installation abzuschließen.

Konfigurieren Sie die MariaDB-Datenbank

Standardmäßig ist die MariaDB nicht gesichert. Sichern Sie also die MariaDB und setzen Sie das MariaDB Root-Passwort mit dem folgenden Befehl:

mysql_secure_installation

Beantworten Sie alle Fragen wie unten gezeigt:

Enter current password for root (enter for none): 
Set root password? [Y/n] Y
New password: 
Re-enter new password: 
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Nachdem Sie die MariaDB gesichert haben, empfiehlt es sich, einen separaten Benutzer zu erstellen, der die Verbindung zu phpMyAdmin herstellt und die Datenbank verwaltet.

Loggen Sie sich dazu mit folgendem Befehl in die MariaDB-Shell ein:

mysql -u root -p

Geben Sie bei der Eingabeaufforderung Ihr Root-Passwort ein und erstellen Sie dann einen neuen Benutzer mit dem folgenden Befehl:

MariaDB [(none)]> create user admin@localhost identified by 'password';

Als nächstes gewähren Sie dem Benutzer alle Privilegien mit dem folgenden Befehl:

MariaDB [(none)]> grant all privileges on *.* to admin@localhost with grant option;

Als nächstes flushen Sie die Privilegien und beenden Sie die MariaDB-Shell mit dem folgenden Befehl:

MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;

Sobald Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Konfigurieren von Nginx für phpMyAdmin

Sie können eine neue Nginx-Konfigurationsdatei für virtuelle Hosts für phpMyAdmin mit dem folgenden Befehl erstellen:

nano /etc/nginx/sites-available/phpmyadmin

Fügen Sie die folgenden Zeilen hinzu:

server {
  listen 80;
  listen [::]:80;
  server_name phpmyadmin.linuxbuz.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;
  }
}

Speichern und schließen Sie die Datei, wenn Sie fertig sind. Erstellen Sie dann einen symbolischen Link auf das Verzeichnis /etc/nginx/sites-enabled/:

ln -s /etc/nginx/sites-available/phpmyadmin /etc/nginx/sites-enabled/

Legen Sie als nächstes die hash_bucket_size in der Nginx-Standardkonfigurationsdatei fest:

nano /etc/nginx/nginx.conf

Fügen Sie die folgende Zeile unterhalb der Zeile „http {„ ein:

    server_names_hash_bucket_size 64;

Speichern und schließen Sie die Datei. Überprüfen Sie dann Nginx mit dem folgenden Befehl auf einen Syntaxfehler:

nginx -t

Sie sollten die folgende Ausgabe erhalten:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Starten Sie abschließend den Nginx-Dienst neu, um die Änderungen zu übernehmen:

systemctl restart nginx

Sie können auch den Status des Nginx-Dienstes mit dem folgenden Befehl überprüfen:

systemctl status nginx

Sie sollten die folgende Ausgabe sehen:

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2020-05-15 06:24:03 UTC; 2s ago
       Docs: man:nginx(8)
    Process: 107736 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 107737 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 107738 (nginx)
      Tasks: 3 (limit: 2282)
     Memory: 3.7M
     CGroup: /system.slice/nginx.service
             ??107738 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ??107739 nginx: worker process
             ??107740 nginx: worker process

May 15 06:24:03 ubuntu2004 systemd[1]: Starting A high performance web server and a reverse proxy server...
May 15 06:24:03 ubuntu2004 systemd[1]: Started A high performance web server and a reverse proxy server.

Sichern Sie phpMyAdmin mit Let’s Encrypt SSL

Bevor Sie beginnen, müssen Sie den Certbot-Client installieren, um Let’s Encrypt SSL herunterzuladen und zu installieren.

Fügen Sie zunächst das Certbot-Repository mit folgendem Befehl hinzu:

add-apt-repository ppa:ahasenack/certbot-tlssni01-1875471

Aktualisieren Sie als Nächstes das Repository und installieren Sie den Certbot-Client mit dem folgenden Befehl:

apt-get update -y
apt-get install certbot python3-certbot-nginx -y

Sobald der Certbot installiert ist, führen Sie den folgenden Befehl aus, um Let’s Encrypt SSL für Ihre Domain herunterzuladen und zu installieren:

certbot --nginx -d phpmyadmin.linuxbuz.com

Sie werden gebeten, Ihre E-Mail einzugeben und die Dienstzeit wie unten gezeigt zu akzeptieren:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): hitjethva@gmail.com

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y

Obtaining a new certificate
Performing the following challenges:
http-01 challenge for phpmyadmin.linuxbuz.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/sites-enabled/phpmyadmin

Wählen Sie als nächstes, ob HTTP-Verkehr zu HTTPS umgeleitet werden soll oder nicht:

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

Geben Sie 2 ein und drücken Sie Enter, um die Installation abzuschließen.

Redirecting all traffic on port 80 to ssl in /etc/nginx/sites-enabled/phpmyadmin

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://phpmyadmin.linuxbuz.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=phpmyadmin.linuxbuz.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/phpmyadmin.linuxbuz.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/phpmyadmin.linuxbuz.com/privkey.pem
   Your cert will expire on 2020-08-12. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Zugang phpMyAdmin

Öffnen Sie nun Ihren Webbrowser und geben Sie die URL https://phpmyadmin.linuxbuz.com ein. Sie werden zur Login-Seite von phpMyAdmin weitergeleitet:

PHPMyAdmin Anmeldung

Geben Sie Ihren Admin-Benutzernamen und Ihr Passwort ein und klicken Sie auf die Schaltfläche Go. Sie sollten das phpMyAdmin Standard-Dashboard auf der folgenden Seite sehen:

PHPMyAdmin Dashboard

Schlussfolgerung

Herzlichen Glückwunsch! Sie haben phpMyAdmin erfolgreich installiert und sichern es mit Let’s Encrypt SSL on Ubuntu 20.04. Sie können nun mit MariaDB interagieren und verschiedene Aufgaben über den Webbrowser ausführen.

Das könnte dich auch interessieren …