kürzlich wollte ich mal wieder PHPMyAdmin auf meinem NAS installieren, nachdem ich das jahrelang nicht mehr genutzt hab. Leider wurde da anscheinend das Verhalten zu früheren Versionen geändert. Und das gefällt mir gar nicht.
Auf meinem NAS (192.168.109.10) läuft Nginx, php8.2-fpm und MariaDB.
/etc/nginx/sites-available/phpmyadmin.conf
Code: Alles auswählen
server {
listen 80;
listen 443 ssl;
include ssl.conf;
ssl_certificate /etc/ssl/nginx/nginx.crt;
ssl_certificate_key /etc/ssl/nginx/nginx.key;
server_name phpmyadmin phpmyadmin.mydomain;
access_log off;
# access_log /var/log/nginx/phpmyadmin.access_log main;
error_log /var/log/nginx/phpmyadmin.error_log notice;
root /var/www/phpmyadmin/;
location ~ \.php$ {
try_files $uri =404;
include fastcgi_params;
fastcgi_pass unix:/run/php/phpmyadmin.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_buffer_size 128k;
fastcgi_buffers 256 16k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_index index.php;
}
}
Code: Alles auswählen
$i = 0;
/* Server: localhost [1] */
$i++;
$cfg['Servers'][$i]['verbose'] = '';
$cfg['Servers'][$i]['host'] = '127.0.0.1';
$cfg['Servers'][$i]['port'] = '';
$cfg['Servers'][$i]['socket'] = '/run/mysqld/mysql.sock';
$cfg['Servers'][$i]['connect_type'] = 'socket';
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'strenggeheim';
$cfg['Servers'][$i]['AllowNoPassword'] = false;
Code: Alles auswählen
Aug 18 20:19:55 kobold phpMyAdmin[2947]: user denied: root (root-denied) from 192.168.109.21
Allerdings war das Verhalten früher bei PHPMyAdmin, dass nicht die Client-IP (192.168.109.21) an die Datenbank durchgereicht wurde sondern die lokale IP (127.0.0.1 bzw. localhost). Ich finde das aktuelle Verhalten ziemlich suboptimal.
Wie bekomm ich hin, dass phpmyadmin wieder "lokal" läuft, d.h. nicht die IP meines Desktoprechners an die Datenbank durchreicht?