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:

phpMyAdmin Anmeldung

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

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

Sichere Anmeldung

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.

Das könnte dich auch interessieren …