![nginx 根目录作为域中的子目录](https://linux22.com/image/685936/nginx%20%E6%A0%B9%E7%9B%AE%E5%BD%95%E4%BD%9C%E4%B8%BA%E5%9F%9F%E4%B8%AD%E7%9A%84%E5%AD%90%E7%9B%AE%E5%BD%95.png)
我使用 nginx/1.10.1 和 PHP 7 FPM。
我将 phpmyadmin 从 Github 克隆到 /var/www/vhosts/phpmyadmin
我的域名位于 /var/www/vhosts/domain/domain.tld
域名与我的 nginx 配置配合良好,但我想将此目录与 phpmyadmin /var/www/vhosts/phpmyadmin 一起使用,例如在 domain.tld/phpmyadmin 上使用。
这里是我当前的 nginx 配置:
server {
listen 443 http2 default_server ssl;
root /var/www/vhosts/domain/domain.tld;
index index.php index.html index.htm;
server_name domain.tld www.domain.tld;
location / {
# return 301 https://$host$request_uri;
try_files $uri $uri/ /index.php;
}
location /phpmyadmin/ {
root /var/www/vhosts/phpmyadmin;
# return 301 https://$host$request_uri;
# try_files $uri $uri/ /index.html;
}
location /piwik {
root /var/www/vhosts;
# return 301 https://$host$request_uri;
try_files $uri $uri/ /index.php;
}
答案1
您应该在您的部分中使用root /var/www/vhosts;
或alias /var/www/vhosts/phpmyadmin;
来代替。root /var/www/vhosts/phpmyadmin;
location /phpmyadmin/
root
定义该部分的文档根目录,在查找资源时,URI 会附加在其后。因此,在您的情况下,nginx 会在/var/www/vhosts/phpmyadmin/phpmyadmin/index.php
您尝试获取http://www.domain.tld/phpmyadmin/
URL 时进行查找。
alias
不同之处在于,它会从 URI 中删除与其location
定义部分匹配的部分。