Wie man phpMyAdmin unter Debian 11 installiert und sichert
phpMyAdmin ist eine kostenlose, quelloffene und webbasierte Anwendung, mit der du MySQL- und MariaDB-Datenbanken über die Weboberfläche verwalten kannst. Das Anlegen und Verwalten einer Datenbank über die Kommandozeile ist für Anfänger/innen sehr schwierig. phpMyAdmin bietet eine einfachere Möglichkeit, MySQL-Datenbanken, Benutzerkonten und Berechtigungen zu verwalten, SQL-Anweisungen auszuführen sowie Daten zu importieren und zu exportieren – und zwar über den Webbrowser.
In diesem Beitrag zeigen wir dir, wie du das Datenbankverwaltungstool phpMyAdmin unter Debian 11 installierst und sicher machst.
Voraussetzungen
- Ein Server, auf dem Debian 11 läuft.
- Ein Root-Passwort ist auf dem Server eingerichtet.
Erste Schritte
Bevor du beginnst, solltest du deine Systempakete auf die neueste Version aktualisieren. Du kannst alle Pakete mit dem folgenden Befehl aktualisieren:
apt-get update -y
Sobald dein System aktualisiert ist, kannst du mit dem nächsten Schritt fortfahren.
LAMP-Server installieren
phpMyAdmin ist eine PHP-basierte Anwendung und läuft auf einem Webserver. Daher musst du den LAMP-Server auf deinem Server installieren. Du kannst ihn mit dem folgenden Befehl installieren:
apt-get install apache2 mariadb-server libapache2-mod-php php-cli php-mysql php-zip php-curl php-xml php-mbstring php-zip php-gd unzip -y
Sobald alle Pakete installiert sind, kannst du mit dem nächsten Schritt fortfahren.
phpMyAdmin installieren und konfigurieren
Lade zunächst die neueste Version von phpMyAdmin mit folgendem Befehl von der offiziellen Website herunter:
wget https://files.phpmyadmin.net/phpMyAdmin/5.1.1/phpMyAdmin-5.1.1-all-languages.zip
Sobald der Download abgeschlossen ist, entpackst du die heruntergeladene Datei mit dem folgenden Befehl:
unzip phpMyAdmin-5.1.1-all-languages.zip
Verschiebe das entpackte Verzeichnis mit folgendem Befehl in das Verzeichnis /usr/share:
mv phpMyAdmin-5.1.1-all-languages /usr/share/phpmyadmin
Als Nächstes erstellst du das erforderliche Verzeichnis mit dem folgenden Befehl:
mkdir -p /var/lib/phpmyadmin/tmp
Lege als Nächstes die Eigentumsrechte für das phpMyAdmin-Verzeichnis fest:
chown -R www-data:www-data /var/lib/phpmyadmin
Als Nächstes kopierst du die phpMyAdmin-Beispielkonfigurationsdatei:
cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php
Als Nächstes installierst du pwgen und generierst einen geheimen Schlüssel mit folgendem Befehl:
apt-get install pwgen -y pwgen -s 32 1
Ausgabe:
pau9t1SG6lmaeCFxKqeeaY5N4erIa25K
Als nächstes bearbeitest du die Datei config.inc.php und konfigurierst sie:
nano /usr/share/phpmyadmin/config.inc.php
Definiere deinen geheimen Schlüssel und kommentiere die folgenden Zeilen nicht:
$cfg['blowfish_secret'] = 'pau9t1SG6lmaeCFxKqeeaY5N4erIa25K'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */ $cfg['Servers'][$i]['controluser'] = 'pma'; $cfg['Servers'][$i]['controlpass'] = 'password'; $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin'; $cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark'; $cfg['Servers'][$i]['relation'] = 'pma__relation'; $cfg['Servers'][$i]['table_info'] = 'pma__table_info'; $cfg['Servers'][$i]['table_coords'] = 'pma__table_coords'; $cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages'; $cfg['Servers'][$i]['column_info'] = 'pma__column_info'; $cfg['Servers'][$i]['history'] = 'pma__history'; $cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs'; $cfg['Servers'][$i]['tracking'] = 'pma__tracking'; $cfg['Servers'][$i]['userconfig'] = 'pma__userconfig'; $cfg['Servers'][$i]['recent'] = 'pma__recent'; $cfg['Servers'][$i]['favorite'] = 'pma__favorite'; $cfg['Servers'][$i]['users'] = 'pma__users'; $cfg['Servers'][$i]['usergroups'] = 'pma__usergroups'; $cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding'; $cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches'; $cfg['Servers'][$i]['central_columns'] = 'pma__central_columns'; $cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings'; $cfg['Servers'][$i]['export_templates'] = 'pma__export_templates'; $cfg['TempDir'] = '/var/lib/phpmyadmin/tmp';
Speichere und schließe die Datei, wenn du fertig bist.
phpMyAdmin Admin-Benutzer anlegen
Es ist immer empfehlenswert, einen eigenen Benutzer für die Verwaltung der Datenbank über phpMyAdmin anzulegen.
Importiere zunächst die phpMyAdmin-Tabellen mit dem folgenden Befehl in die MariaDB-Datenbank:
mysql < /usr/share/phpmyadmin/sql/create_tables.sql
Als Nächstes verbindest du dich mit der MariaDB-Shell mit folgendem Befehl:
mysql
Sobald du verbunden bist, erteile der phpmyadmin-Datenbank mit dem folgenden Befehl alle notwendigen Rechte:
MariaDB [(none)]> GRANT SELECT, INSERT, UPDATE, DELETE ON phpmyadmin.* TO 'pma'@'localhost' IDENTIFIED BY 'password';
Als Nächstes erstellst du mit dem folgenden Befehl einen Benutzer admin:
MariaDB [(none)]> CREATE USER myadmin;
Erteile dem Benutzer admin mit folgendem Befehl alle erforderlichen Rechte:
MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'myadmin'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
Lösche die Berechtigungen und verlasse die MariaDB-Shell mit folgendem Befehl:
MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> EXIT;
Wenn du damit fertig bist, kannst du mit dem nächsten Schritt fortfahren.
Apache für phpMyAdmin konfigurieren
Als Nächstes musst du eine Konfigurationsdatei für den virtuellen Apache-Host für phpMyAdmin erstellen. Du kannst sie mit dem folgenden Befehl erstellen:
nano /etc/apache2/conf-available/phpmyadmin.conf
Füge die folgenden Zeilen ein:
Alias /phpmyadmin /usr/share/phpmyadmin <Directory /usr/share/phpmyadmin> Options SymLinksIfOwnerMatch DirectoryIndex index.php <IfModule mod_php5.c> <IfModule mod_mime.c> AddType application/x-httpd-php .php </IfModule> <FilesMatch ".+\.php$"> SetHandler application/x-httpd-php </FilesMatch> php_value include_path . php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/ php_admin_value mbstring.func_overload 0 </IfModule> <IfModule mod_php.c> <IfModule mod_mime.c> AddType application/x-httpd-php .php </IfModule> <FilesMatch ".+\.php$"> SetHandler application/x-httpd-php </FilesMatch> php_value include_path . php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/ php_admin_value mbstring.func_overload 0 </IfModule> </Directory> # Authorize for setup <Directory /usr/share/phpmyadmin/setup> <IfModule mod_authz_core.c> <IfModule mod_authn_file.c> AuthType Basic AuthName "phpMyAdmin Setup" AuthUserFile /etc/phpmyadmin/htpasswd.setup </IfModule> Require valid-user </IfModule> </Directory> # Disallow web access to directories that don't need it <Directory /usr/share/phpmyadmin/templates> Require all denied </Directory> <Directory /usr/share/phpmyadmin/libraries> Require all denied </Directory> <Directory /usr/share/phpmyadmin/setup/lib> Require all denied </Directory>
Speichere und schließe die Datei, wenn du fertig bist. Aktiviere dann die phpMyAdmin-Konfigurationsdatei mit folgendem Befehl:
a2enconf phpmyadmin.conf
Als Nächstes lädst du den Apache-Dienst neu, damit die Änderungen übernommen werden:
systemctl reload apache2
Du kannst den Status des Apache-Dienstes mit folgendem Befehl überprüfen:
systemctl status apache2
Du solltest die folgende Ausgabe sehen:
? apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2021-08-17 10:16:28 UTC; 2s ago Docs: https://httpd.apache.org/docs/2.4/ Process: 45027 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS) Main PID: 45031 (apache2) Tasks: 6 (limit: 2341) Memory: 14.6M CPU: 89ms CGroup: /system.slice/apache2.service ??45031 /usr/sbin/apache2 -k start ??45032 /usr/sbin/apache2 -k start ??45033 /usr/sbin/apache2 -k start ??45034 /usr/sbin/apache2 -k start ??45035 /usr/sbin/apache2 -k start ??45036 /usr/sbin/apache2 -k start Aug 17 10:16:28 debian systemd[1]: Starting The Apache HTTP Server...
Zugriff auf phpMyAdmin
Jetzt ist phpMyAdmin installiert und konfiguriert. Öffne nun deinen Webbrowser und rufe phpMyAdmin über die URL http://your-server-ip/phpmyadmin auf. Du solltest die phpMyAdmin Anmeldeseite sehen:
Gib deinen Admin-Benutzernamen und dein Passwort ein und klicke auf die SchaltflächeGo. Auf der folgenden Seite solltest du das phpMyAdmin Dashboard sehen:
phpMyAdmin sichern
Es ist eine gute Idee, phpMyAdmin mit einer Zwei-Faktor-Authentifizierung zu sichern. Dazu kannst du die Authentifizierungs- und Autorisierungsfunktionen in der .htaccess verwenden.
Bearbeite zunächst die Konfigurationsdatei von phpMyAdmin:
nano /etc/apache2/conf-available/phpmyadmin.conf
Füge die Zeile „AllowOverride All“ in den folgenden Serverblock ein:
<Directory /usr/share/phpmyadmin> Options FollowSymLinks DirectoryIndex index.php AllowOverride All <IfModule mod_php5.c>
Speichere und schließe die Datei, wenn du fertig bist, und starte den Apache-Dienst neu:
systemctl restart apache2
Als Nächstes erstellst du eine .htaccess-Datei und definierst den Apache-Authentifizierungstyp:
nano /usr/share/phpmyadmin/.htaccess
Füge die folgenden Zeilen hinzu:
AuthType Basic AuthName "Restricted Files" AuthUserFile /usr/share/phpmyadmin/.htpasswd Require valid-user
Speichere und schließe die Datei und erstelle einen Benutzer mit dem folgenden Befehl:
htpasswd -c /usr/share/phpmyadmin/.htpasswd secureuser
Du wirst aufgefordert, ein Passwort festzulegen (siehe unten):
New password: Re-type new password: Adding password for user secureuser
Überprüfe phpMyAdmin
Zu diesem Zeitpunkt ist phpMyAdmin mit einer zusätzlichen Authentifizierung gesichert. Um sie zu überprüfen, öffne deinen Webbrowser und rufe phpMyAdmin über die URL http://your-server-ip/phpmyadmin auf. Du wirst nach dem zusätzlichen Benutzernamen und dem Passwort gefragt (siehe unten):
Nachdem du deinen Benutzernamen und dein Passwort eingegeben hast, wirst du zur normalen phpMyAdmin-Anmeldeseite weitergeleitet.
Fazit
Glückwunsch! Du hast phpMyAdmin unter Debian 11 erfolgreich installiert und gesichert. Jetzt kannst du phpMyAdmin erkunden und deine Datenbank über den Webbrowser verwalten.