在输入登录名和密码时,它会将我带到根域:
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环境变量也可以这样做,但对我来说不起作用