我目前面临一个非常奇怪的问题。
我有一个运行在xyz.com的网站,该网站植根于/var/www/xyz.com/。现在另外,我有一个应用程序的管理界面,它应该在xyz.com/admin上运行,并在/var/www/xyz.com/admin/中找到它的根目录。
但是,/ var / www / xid / admin /中的脚本要求将此目录精确地作为根目录运行(通过前面的斜杠进行相对寻址)。我不想改变脚本。现在问题在于:
如何使用我的nginx消除此问题(不修改管理脚本)?有人可以帮忙吗?
编辑:我确实通过上游为主要位置" /"工作,所以没有选择只留下额外的块。
答案 0 :(得分:0)
好的,我在这里可以看到两种解决方案。
首先是将root
替换为alias
http://nginx.org/en/docs/http/ngx_http_core_module.html#alias
location /admin/ {
alias /var/www/xyz.com/admin/;
...
}
因此,在此示例中,$document_root
位置/admin/
位置/var/www/xyz.com/admin/
。
第二种解决方案(我不知道为什么,但是你会觉得它很有用)。 PHP如何了解文档根目录?使用DOCUMENT_ROOT fastcgi参数。在fastcgi.conf
内,您可以看到字符串fastcgi_param DOCUMENT_ROOT $document_root;
。此参数可以在您的配置中重新设置
location /admin/ {
include fastcgi.conf;
fastcgi_param DOCUMENT_ROOT /my/new/root/;
...
}
第一个解决方案要好得多,所以我放置第二个解决方案只是为了展示PHP中的文档根目录以及它是如何工作的。