Docker、nginx、phpmyadmin 授权期间重定向错误

Posted

技术标签:

【中文标题】Docker、nginx、phpmyadmin 授权期间重定向错误【英文标题】:Docker, nginx, phpmyadmin bad redirect during authorization 【发布时间】:2020-07-20 08:50:00 【问题描述】:

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

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

我需要:

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

我的 nginx.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。或许终于有办法了?

【问题讨论】:

【参考方案1】:

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

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

理论上,使用 PMA_ABSOLUTE_URI 环境变量也可以做到这一点,但它对我不起作用。

【讨论】:

以上是关于Docker、nginx、phpmyadmin 授权期间重定向错误的主要内容,如果未能解决你的问题,请参考以下文章

nginx proxy_pass 到 phpmyadmin docker 容器

如何使用 nginx-proxy 与 wordpress docker 容器一起运行 phpmyadmin?

centos7一步一步搭建docker phpmyadmin 及nginx配置phpmyadmin非根目录重点讲解

docker 控制台中的 phpmyadmin 错误

sh Ubuntu 16.04的跛行堆栈(PHP7,Nginx,MySql,MongoDB,PhpMyAdmin,Git,Node.js,Bower,Gulp,Docker,Composer(带资产插

docker-compose:无法从我的 LEMP 堆栈访问 phpMyAdmin