You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker部署phpMyAdmin无法与Nginx连通,访问出现404错误

解决Nginx反向代理phpMyAdmin出现404的问题

问题根源

从phpMyAdmin日志可见,容器收到GET /phpmyadmin/ HTTP/1.0请求后返回404,核心原因如下:

  • phpMyAdmin容器内的Apache默认将/phpmyadmin作为站点根目录,Nginx直接转发/phpmyadmin/路径时,容器内无对应资源,触发404。
  • PMA_ABSOLUTE_URI配置错误,使用了本地端口路径而非实际访问的域名路径。
  • 更新后的phpMyAdmin配置中PMA_PORT设为3307,但MySQL容器使用默认3306端口,会导致后续数据库连接失败。

修正步骤

1. 调整Nginx配置

修改location /phpmyadmin/块,确保转发路径匹配容器内的根目录结构,并添加必要代理头:

location /phpmyadmin/ {
    proxy_pass http://127.0.0.1:8081/;  # 末尾添加斜杠,将请求转发到容器根目录
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
}

末尾的斜杠是关键:它会把/phpmyadmin/xxx转换为容器内的/xxx,完全匹配phpMyAdmin的目录结构。

2. 修正phpMyAdmin的Docker配置

更新docker-compose.yaml中的phpmyadmin服务配置:

phpmyadmin:
    image: phpmyadmin/phpmyadmin:latest
    restart: always
    ports:
      - "8081:80"
    environment:
      PMA_HOST: db
      PMA_PORT: 3306  # 修正为MySQL容器的默认端口
      PMA_ABSOLUTE_URI: https://mydomain/phpmyadmin/  # 改为实际访问的域名路径
      MYSQL_USER: myuser
      MYSQL_PASSWORD: mypassword
    depends_on:
      - db

3. 重启服务

  • 重启Nginx:sudo systemctl restart nginx
  • 重启phpMyAdmin容器:docker-compose up -d phpmyadmin

验证

访问https://mydomain/phpmyadmin/,应能正常进入登录界面。若仍有问题,可直接访问http://服务器IP:8081测试容器本身是否正常运行,排查是否为Nginx转发逻辑问题。

内容的提问来源于stack exchange,提问作者boyenec

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 06:22:43