Seit Debian Buster ist phpMyAdmin nicht mehr in den Repositories zu finden und muss manuell installiert werden.
Weseln Sie auf dem Server (auf dem ihr phpMyAdmin installiert werden soll) zu folgendem Pfad:
cd /usr/share
und holt euch mittels wget die aktuellste Version von https://www.phpmyadmin.net/
wget https://files.phpmyadmin.net/phpMyAdmin/4.9.0.1/phpMyAdmin-4.9.0.1-all-languages.zip
Im Anschluss wird die Zip Datei entpackt, umbenannt und mit den passenden Rechten für den Apache Webserver ausgestattet:
unzip phpMyAdmin-4.9.0.1-all-languages.zip mv phpMyAdmin-4.9.0.1-all-languages phpmyadmin chown www-data:www-data -R phpmyadmin
Als nächstes erstellen wir unter MariaDB eine Datenbank sowie einen Benutzer für phpMyAdmin. ACHTUNG: Passwort unbedingt abändern!
mysql -u root CREATE DATABASE phpmyadmin DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; GRANT ALL ON phpmyadmin.* TO 'phpmyadmin'@'localhost' IDENTIFIED BY 'Ihr-Sicheres-Passwort'; FLUSH PRIVILEGES; EXIT;
Sollten nicht alle Abhängigkeiten von PHP installiert sein, so kann man dies wie folgt nachholen:
apt install php-phpseclib php-php-gettext php-imagick php7.3-imap php7.3-gmp php7.3-common php7.3-gd php7.3-mbstring php7.3-xml php7.3-json php7.3-curl php7.3-zip php7.3-bz2 php7.3-intl php7.3-mysql
Nun wird die Konfigurationsdatei für den Apache Server unter /etc/apache2/conf-available/phpmyadmin.conf
angelegt:
Alias /nichtphpmyadmin /usr/share/phpmyadmin <Directory /usr/share/phpmyadmin> Options SymLinksIfOwnerMatch DirectoryIndex index.php AllowOverride All <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> <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>
Bitte darauf achten nicht /phpmyadmin als Alias zu verwenden, da dieser Pfad von Hackern und Co immer zuerst ausprobiert wird. Im obigen Beispiel wurde der Alias /nichtphpmyadmin verwendet. Achten Sie auch auf die Zeile
AllowOverride All
Diese ist nur erforderlich, wenn Sie die Installation zusätzlich mit einem htaccess Passwortschutz versehen wollen (empfohlen), andernfalls ändern Sie die Angabe in AllowOverwrite None
.
Um den Passwortschutz einzurichten, legen sie die Datei /usr/share/phpmyadmin/.htaccess
mit folgendem Inhalt an:
AuthName "Restricted" AuthType Basic AuthUserFile /etc/phpmyadmin/.htpasswd require valid-user
Die .htpasswd
Datei wird unter /etc/phpmyadmin/.htpasswd
erstellt. Der Ordner /etc/phpmyadmin
muss dazu ggf. neu erstellt werden.
htpasswd -c /etc/phpmyadmin/.htpasswd meinBenutzerName
Jetzt erstellen wir ein temporäres Arbeitsverzeichnis für phpMyAdmin
:
mkdir -p /var/lib/phpmyadmin/tmp chown www-data:www-data /var/lib/phpmyadmin/tmp
Die Apache Konfigurationsdatei wird noch aktiviert und Apache neu gestartet:
a2enconf phpmyadmin.conf systemctl restart apache2
Zum Schluss kann man entweder die URL von phpMyAdmin
mit einem angehängten /setup
aufrufen um die Konfiguration abzuschließen, oder man kopiert die config.sample.inc.php
zu config.inc.php
und ergänzt manuell einen 32stelligen Blowfish Secret Schlüssel. Dieser muss nicht gemerkt werden.