Docker、nginx、phpmyadmin在授权过程中重定向错误



在输入登录名和密码时,它会将我带到根域:

www.example.com/phpmyadmin -> www.example.com/index.php

我需要:

www.example.com/phpmyadmin -> www.example.com/phpmyadmin/index.php

mynginx.conf:

resolver 127.0.0.11 valid=15s;
server {
listen 80;
server_name localhost;
set $upstream phpmyadmin:9000;
location ^~ /phpmyadmin {
alias /var/www/phpmyadmin/;
index index.php;
location ~ .php$ {
try_files      $uri = 404;
include        fastcgi_params;
fastcgi_split_path_info ^/phpmyadmin/(.+.php)(.*)$;
fastcgi_param  SCRIPT_FILENAME $fastcgi_script_name;
fastcgi_pass   $upstream;
}
}
}

docker compose.yml

phpmyadmin:
container_name: phpmyadmin
depends_on:
- mysql
image: phpmyadmin/phpmyadmin:fpm-alpine
environment:
- PMA_HOST=mysql
- MYSQL_ROOT_PASSWORD=somepass 
volumes: 
- phpmyadmin:/var/www/html
networks:
- web   
webserver:
image: nginx:1.16.1-alpine
container_name: webserver
depends_on: 
- phpmyadmin
ports: 
- "80:80"
- "443:443"
volumes:
- phpmyadmin:/var/www/phpmyadmin
- ./nginx-conf:/etc/nginx/conf.d
networks: 
- web

我在网上搜索了很多。这个问题在许多人中出现,许多人只是拒绝在子域上使用phpmyadmin。也许终于有解决方案了?

在安装的phpmyadmin目录中,应该有其配置文件,包括config.inc.php。我通过在文件末尾添加以下代码解决了这个问题:

$cfg['PmaAbsoluteUri'] = 'http://www.example.com/phpmyadmin';

理论上,PMA_ABSOLUTE_URI环境变量也可以这样做,但对我来说不起作用

最新更新