在 phpmyadmin 上找不到 404 - nginx docker

Posted

技术标签:

【中文标题】在 phpmyadmin 上找不到 404 - nginx docker【英文标题】:404 not found on phpmyadmin - nginx docker 【发布时间】:2021-09-26 02:41:04 【问题描述】:

我想使用 docker 和 nginx 在同一个域上运行 phpmyadmin 和我的 API,如:

api => localhost:8888/ phpmyadmin => localhost:8888/phpmyadmin/

phpmyadmin 服务的 Docker 配置:

phpmyadmin:
  image: phpmyadmin
  restart: always
  environment:
    PMA_ARBITRARY: 1
    PMA_HOST: mysql
    PMA_USER: $DATABASE_USER
    PMA_PASSWORD: $DATABASE_PASSWORD
  depends_on:
    - mysql

这是 nginx 服务配置:

nginx:
  image: nginx:stable-alpine
  volumes:
    - ./nginx/default.conf:/etc/nginx/conf.d/default.conf:ro
  depends_on:
    - api
    - phpmyadmin
  restart: always
  ports:
    - '8888:80'

这是 nginx 配置文件:

upstream pma 
  server phpmyadmin;


server 
  listen 80;
  server_name localhost;
  # resolver 127.0.0.1;

  location / 
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    proxy_set_header Host $http_host;
    proxy_set_header X-NginX-Proxy true;

    proxy_pass http://api:8889/;
    proxy_redirect off;
  

  location ~/phpmyadmin(.*)$ 
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    proxy_set_header Host $http_host;
    proxy_set_header X-NginX-Proxy true;

    proxy_pass http://pma/$1/;
    proxy_redirect off;
  

一切正常,我可以使用 API,如 localhost:8888/url,它工作正常。但是当我请求localhost:8888/phpmyadmin/时,它会加载它,但是js和所有css给出404未找到,这是控制台预览:

我花了 3 个多小时挠头来解决这个问题,尽了最大的努力,但它不起作用。我对 nginx 非常陌生,所以任何人都可以帮助我。

【问题讨论】:

【参考方案1】:

您是否尝试在 docker phpmyadmin 服务环境中添加PMA_ABSOLUTE_URI?结帐this:

PMA_ABSOLUTE_URI - phpMyAdmin 的完整 URL。在反向代理配置中使用时有时需要。

像这样添加:

PMA_ABSOLUTE_URI: localhost:8888/phpmyadmin/

请注意最后一个/,非常非常重要,错过了就不行了。

【讨论】:

以上是关于在 phpmyadmin 上找不到 404 - nginx docker的主要内容,如果未能解决你的问题,请参考以下文章

在 Django 网站上找不到页面 404?

CodeIgniter:在 Live Server 上找不到 404 页面

Google Maps Javascript API V3 在移动/本机应用程序上找不到 404

laravel 5.1 表示除了 ('/') 之外的所有其他路由,使用 ec2 在在线亚马逊服务器上找不到 404 页面

Flask - 404 Not found : 在服务器上找不到请求的 URL。如果您手动输入了 URL,请检查您的拼写并重试

Typicode 我的 json 服务器显示“404 错误糟糕,在主分支或主分支上找不到 db.json 文件。尝试创建一个并重试。”