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/ (zum Zeitpunkt des Blogbeitrags ist 4.9.0.1 die aktuellste Version)
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
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). Um letzeren 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.
Da man sich mittels Root User nicht mehr von extern an der MariaDB anmelden kann, ist evtl auch folgender Artikel interessant: https://www.florian-fritsch.com/mariadb-kein-root-login-mit-phpmyadmin-moeglich/
Tom meint
Hallo Florian,
ich habe phpMyAdmin gestern auch nach deiner Anleitung so installiert. Mein System ist Linux Debian-Buster.
Es hat aber ganz am Ende nicht sooo ganz geklappt denn beim Aufruf der URL „127.0.0.1/nichtmyphpadin/setup“ erhielt ich die folgende Fehlermeldung:“The mysqli extension is missing. Please check your PHP configuration“.
Dazu ist es notwendig noch das flgende Paket zusätzlich zu installieren:
apt install php7.3-mysql
Florian meint
Hallo Tom,
leider ist hier nichts angekommen. Es wurde auch nicht gelöscht. Danke für die Ergänzung.
Gruß Flow
Joachim meint
Hat funktioniert