【问题标题】:NGiNX Custom path of phpmyadminphpmyadmin 的 NGiNX 自定义路径
【发布时间】:2021-04-07 16:05:58
【问题描述】:

我正在尝试更改 phpmyadmin 的目录,该目录正在使用我的主 webroot 进行单点登录。我的 Vhost 配置如下。

        listen 80 ;
        listen [::]:80 ;

        root /var/www/html;
        index index.php index.html index.htm ;
        server_name dewittborough.example.com;
       # add_header X-Robots-Tag "noindex, nofollow, nosnippet, noarchive";
        location / {
        include "/etc/nginx/custom_wp" ;
            try_files $uri $uri.php $uri/ /phpmyadmin;
    }
   include /etc/nginx/skip_cache.conf ;
   include /etc/nginx/gzip_location.conf ;
   include /etc/nginx/header.conf ;
    location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass  unix:/var/run/php/php7.3-fpm.sock;
    include "/etc/nginx/customfastcgi" ;
    proxy_connect_timeout 300;
    proxy_send_timeout 300;
    proxy_read_timeout 300;
    send_timeout 300;
    client_max_body_size 256M;
    include /etc/nginx/fastcgi_main.conf ;
    }
    location = /phpmyadmin {
    root /var/www/;
}
}

如果我将 phpmyadmin 的目录移动到 /var/www/ 我得到 404 未找到。 示例登录 URL 如下 https://dewittborough.example.com/phpmyadmin/sso.php?&remote_token=ikoblfqshqakinuiqd

【问题讨论】:

  • 检查 NGINX 错误和访问日志,您应该会看到它尝试访问的完整路径。如果这不会给您提示该怎么做 - 使用日志记录更新您的问题。
  • 错误日志中没有错误。访问日志在下面提到。 MYIP - - [31/Dec/2020:10:15:53 +0000] "GET /phpmyadmin/sso.php?container=dewittborough&remote_token=jxtjpaclarrkzntjiv HTTP/1.0" 404 139 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36" "myIP"

标签: nginx phpmyadmin


【解决方案1】:

首先,您使用= 符号声明了 PMA 位置。这意味着当您访问/phpmyadmin 时,该位置将触发。它不会触发带有/phpmyadmin/sso.php 的位置,因为它不等于/phpmyadmin。所以先把位置改成这样:

location /phpmyadmin/ {
  ...
}

接下来是您的root 指令。关于root 的一件事是它连接 rootlocation。所以有了这样的配置:

location /phpmyadmin/ {
  root /var/www;
}

NGINX 将在/var/www/phpmyadmin/ 中查找文件。如果您不喜欢这种行为,请将root 替换为alias

location /phpmyadmin/ {
  alias /var/www/; # Beware of this trailing slash (/), it's mandatory.
}

通过此配置,您将能够访问index.php/var/www//phpmyadmin/ 下的其他文件。请注意,/phpmyadmin/html/ 会将您带到/var/www/html/

【讨论】:

  • 问题仍然存在,日志中没有错误。 location /phpmyadmin/ { alias /var/www/; }
  • @wajahat021 如果您在配置中的某处有log_not_found off;,或者您正在查看错误的文件(错误日志与访问日志分开),您可能不会在错误日志中看到 404。应该有这样一行:[error] 6#6: *1 open() "/var/www/static/foo/bar" failed (2: No such file or directory).
猜你喜欢
  • 2015-04-23
  • 2011-01-16
  • 2022-01-26
  • 2017-06-19
  • 1970-01-01
  • 2012-02-21
  • 2018-06-29
  • 1970-01-01
  • 2013-04-24
相关资源
最近更新 更多