我正在尝试更改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 not found。示例登录URL如下所示https://dewittborough.example.com/phpmyadmin/sso.php?&remote_token=ikoblfqshqakinuiqd
发布于 2020-12-31 19:02:05
首先,您使用=符号声明了PMA位置。这意味着当你访问/phpmyadmin时,该位置将只触发。它不会用/phpmyadmin/sso.php触发位置,因为它不等于/phpmyadmin。因此,首先将位置更改为:
location /phpmyadmin/ {
...
}接下来是您的root指令。关于root的一件事是,它将、root和location连接在一起。因此,使用这样的配置:
location /phpmyadmin/ {
root /var/www;
}NGINX将在/var/www/phpmyadmin/中查找文件。如果您不喜欢这种行为,可以用alias替换root
location /phpmyadmin/ {
alias /var/www/; # Beware of this trailing slash (/), it's mandatory.
}使用此配置,您将能够在/phpmyadmin/下访问index.php和/var/www/中的其他文件。不过要注意,/phpmyadmin/html/会将您带到/var/www/html/。
https://stackoverflow.com/questions/65519049
复制相似问题