So installierst und sicherst du phpMyAdmin auf Alma Linux

phpMyAdmin ist eine kostenlose und quelloffene Datenbankverwaltungsanwendung für MySQL und MariaDB. Sie ermöglicht es dir, verschiedene datenbankbezogene Aufgaben zu verwalten und Abfragen über eine webbasierte Oberfläche auszuführen. Sie ist in PHP geschrieben und bietet eine robuste und benutzerfreundliche Oberfläche für die Verwaltung von Datenbanken über einen Webbrowser. Sie ist plattformübergreifend und kann auf vielen Betriebssystemen laufen, darunter Windows, macOS, Linux und BSDs.

In diesem Lernprogramm lernst du, wie du phpMyAdmin auf Alma Linux 8 installierst.

Voraussetzungen

  • Ein Server, auf dem Alma Linux 8 läuft.
  • Ein gültiger Domainname, der auf die IP deines Servers zeigt.
  • Ein Root-Passwort ist auf dem Server eingerichtet.

LEMP-Server installieren

Installiere zunächst den Nginx-Webserver und den MariaDB-Datenbankserver mit dem folgenden Befehl:

dnf install nginx mariadb -y

Als Nächstes installierst du das Remi PHP Repository mit dem folgenden Befehl:

dnf -y install http://rpms.remirepo.net/enterprise/remi-release-8.rpm

Deaktiviere das Standard-PHP-Modul und aktiviere das Remi-PHP-Modul mit dem folgenden Befehl:

dnf module -y reset php
dnf module install php:remi-7.4 -y

Als Nächstes installierst du PHP mit den anderen benötigten Erweiterungen mit folgendem Befehl:

dnf install php php-cli php-common php-fpm php-curl php-gd php-mbstring php-process php-snmp php-xml php-zip php-memcached php-mysqlnd php-json php-mbstring php-pdo php-pdo-dblib php-xml unzip wget -y

Sobald alle Pakete installiert sind, bearbeitest du die PHP-FPM-Konfigurationsdatei:

nano /etc/php-fpm.d/www.conf

Ändere den Benutzer und die Gruppe von apache zu Nginx:

user = nginx
group = nginx

Speichere und schließe die Datei und starte und aktiviere die Dienste Nginx, MariaDB und PHP-FPM mit dem folgenden Befehl:

systemctl start nginx php-fpm mariadb
systemctl enable nginx php-fpm mariadb

Erstelle einen Benutzer für phpMyAdmin

Als Nächstes empfiehlt es sich, einen eigenen Benutzer für phpMyAdmin anzulegen, um alle Aufgaben der Datenbankverwaltung zu erledigen. Sichern Sie zunächst die MariaDB, indem Sie den folgenden Befehl ausführen:

mysql_secure_installation

Dieses Skript setzt ein Root-Passwort, entfernt anonyme Benutzer, verbietet den Root-Login aus der Ferne und entfernt die Testdatenbank wie unten gezeigt:

Set root password? [Y/n] n
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

Als Nächstes meldest du dich mit folgendem Befehl bei MariaDB an:

mysql

Sobald du eingeloggt bist, erstelle eine Datenbank und einen Benutzer mit dem folgenden Befehl:

MariaDB [(none)]> CREATE DATABASE phpmyadmin CHARACTER SET utf8 COLLATE utf8_unicode_ci;
MariaDB [(none)]> CREATE USER 'phpmyadmin'@'%' IDENTIFIED BY 'password';

Als Nächstes erteilst du dem Benutzer admin alle Berechtigungen:

MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'%';

Lösche die Berechtigungen und verlasse die MariaDB-Konsole mit folgendem Befehl:

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

Installiere phpMyAdmin auf Alma Linux 8

Als Nächstes lädst du die neueste Version von phpMyAdmin von der offiziellen Website herunter:

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

Sobald der Download abgeschlossen ist, entpackst du die heruntergeladene Datei mit dem folgenden Befehl:

unzip phpMyAdmin-5.1.3-all-languages.zip

Als Nächstes verschiebst du das entpackte Verzeichnis in das Nginx-Web-Root-Verzeichnis:

mv phpMyAdmin-5.1.3-all-languages /usr/share/nginx/phpmyadmin

Kopiere dann die Beispielkonfigurationsdatei mit folgendem Befehl:

cp /usr/share/nginx/phpmyadmin/config{.sample,}.inc.php

Als Nächstes bearbeitest du die Konfigurationsdatei mit dem folgenden Befehl:

nano /usr/share/nginx/phpmyadmin/config.inc.php

Definiere dein Geheimnis wie unten gezeigt:

$cfg['blowfish_secret'] = 'securekey';

Speichere und schließe die Datei und ändere dann den Eigentümer des phpMyAdmin-Verzeichnisses:

chown -R nginx:nginx /usr/share/nginx/phpmyadmin
chown -R nginx:nginx /var/lib/php/session/

Nginx für phpMyAdmin konfigurieren

Als Nächstes musst du eine Konfigurationsdatei für den virtuellen Nginx-Host für phpMyAdmin erstellen. Du kannst sie mit dem folgenden Befehl erstellen:

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

Füge die folgenden Zeilen hinzu:

server {
    listen       80;
    server_name  phpmyadmin.example.com;
    root         /usr/share/nginx/phpmyadmin;
    
    access_log /var/log/nginx/phpmyadmin_access.log;
    error_log /var/log/nginx/phpmyadmin_error.log;

    index   index.php;

    location / {
        try_files    $uri $uri/ /index.php?$args;
    }
    location ~ \.php$ {
         try_files $uri =404;
         fastcgi_intercept_errors on;
         include        fastcgi_params;
         fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
         fastcgi_pass unix:/run/php-fpm/www.sock;
     }
}

Speichere und schließe die Datei und überprüfe Nginx mit folgendem Befehl auf Syntaxfehler:

nginx -t

Du erhältst die folgende Ausgabe:

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

Starte anschließend den Nginx-Dienst neu, um die Änderungen zu übernehmen:

systemctl restart nginx php-fpm

Du kannst nun den Nginx-Status mit folgendem Befehl überprüfen:

systemctl status nginx

Du solltest die folgende Ausgabe sehen:

? nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/nginx.service.d
           ??php-fpm.conf
   Active: active (running) since Fri 2022-04-15 10:06:39 UTC; 3s ago
  Process: 85445 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
  Process: 85443 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
  Process: 85442 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
 Main PID: 85449 (nginx)
    Tasks: 2 (limit: 11412)
   Memory: 3.8M
   CGroup: /system.slice/nginx.service
           ??85449 nginx: master process /usr/sbin/nginx
           ??85450 nginx: worker process

Apr 15 10:06:39 linux systemd[1]: nginx.service: Succeeded.
Apr 15 10:06:39 linux systemd[1]: Stopped The nginx HTTP and reverse proxy server.
Apr 15 10:06:39 linux systemd[1]: Starting The nginx HTTP and reverse proxy server...
Apr 15 10:06:39 linux nginx[85443]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Apr 15 10:06:39 linux nginx[85443]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Apr 15 10:06:39 linux systemd[1]: nginx.service: Failed to parse PID from file /run/nginx.pid: Invalid argument
Apr 15 10:06:39 linux systemd[1]: Started The nginx HTTP and reverse proxy server.

Firewall konfigurieren

Als Nächstes musst du den HTTP-Dienst über die Firewall zulassen. Du kannst ihn mit dem folgenden Befehl zulassen:

firewall-cmd --permanent --zone public --add-service http

Lade die Firewall neu, um die Änderungen zu übernehmen:

firewall-cmd --reload

Zugriff auf phpMyAdmin Web UI

Öffne nun deinen Webbrowser und rufe phpMyAdmin über die URL http://phpmyadmin.example.com auf. Du solltest die phpMyAdmin Anmeldeseite sehen:

Gib deinen Admin-Benutzernamen und dein Passwort ein und klicke auf die Schaltfläche “ Go“. Sobald du eingeloggt bist, solltest du das phpMyAdmin Dashboard sehen:

Klicke auf die Schaltfläche Datenbanken. Du solltest die folgende Seite sehen:

Gib den Namen der Datenbank ein, die du erstellen möchtest, und klicke auf die Schaltfläche Erstellen.

Wähle die Datenbanken aus, die du löschen willst, und klicke auf die Schaltfläche Löschen, um eine Datenbank zu löschen. Du solltest die folgende Seite sehen:

Klicke auf die Schaltfläche OK, um das Löschen der ausgewählten Datenbanken zu bestätigen.

Fazit

Herzlichen Glückwunsch! Du hast phpMyAdmin mit Nginx erfolgreich auf Alma Linux 8 installiert. Du kannst jetzt deine MySQL- und MariaDB-Datenbanken über einen Webbrowser verwalten. Wenn du noch Fragen hast, kannst du dich gerne an mich wenden.

Das könnte dich auch interessieren …