我正在尝试将我的私人使用者从apache迁移到nginx,但我无法让这个位置工作。
我的服务器有多个应用程序,可以在某些/ root用户中使用,例如url.com/git url.com/mediaWiki,url.com/vnstat url.com/redmine
在apache中,每个应用都有一堆配置文件:
redmine.conf
<Location "/redmine">
Options none
Require all granted
PassengerEnabled On
RailsBaseURI /redmine
RailsEnv production
</Location>
vnstat_php.conf
Alias /vnstat /var/www/vnstat_php
<Directory /var/www/vnstat_php>
DirectoryIndex index.php
Require all granted
</Directory>
我试图在nginx上复制这个,但到目前为止,我最好的尝试最终得到了一个奇怪的网址。我只管理在主要的ngix配置文件上写的东西:
server {
listen 8123 default_server;
listen [::]:8123 default_server;
server_name _;
root /var/www/html;
location / {
}
location /vnstat/ {
root /var/www/vnstat_php/;
index index.php;
}
}
根页面正常工作,但/ vnstat链接将我发送到
2017/02/20 11:37:19 [error] 27538#0: *1 "/var/www/vnstat_php/vnstat/index.php" is not found (2: No such file or directory), client: 177.92.59.216, server: _, request: "GET /vnstat/ HTTP/1.1", host: "url.com:8123"
它正在/ var / www / vnstat_php /中寻找一个vnstat目录,而不是以root身份使用它。有人能指出我正确的方向吗?
答案 0 :(得分:0)
如http://nginx.org/en/docs/http/ngx_http_core_module.html#root
所述只需在根指令的值中添加URI即可构建文件的路径。如果必须修改URI,则应使用别名指令。
你应该在这种情况下使用别名:
http://nginx.org/en/docs/http/ngx_http_core_module.html#alias
location /vnstat/ {
alias /var/www/vnstat_php/;
}
但是将PHP与nginx一起使用时,您应该考虑使用FastCGI:https://www.nginx.com/resources/wiki/start/topics/examples/phpfcgi/