2017-03-02 138 views
0

我正在为本地macos机器上的nginx配置一个新的虚拟主机,我需要在/Users/abcd中指定根目录作为现有目录。在用户目录中有nginx虚拟主机根目录

我想:

root /Users/abcd/GitHub/rails/public; 

但我不断收到:

*1 stat() "/Users/abcd/GitHub/rails/public/" failed (13: Permission denied) 

我该如何解决这个问题?我更喜欢不涉及手动更改目录权限的操作,因为每当我添加一个新的虚拟主机时,总是会这样做乏味且容易出错。

+0

将nginx用户(www-data)添加到用户组? – unNamed

+0

我怎样才能确定www-data是nginx用户,以及如何将它添加到用户组(哪个用户?)? – linkyndy

+0

在配置用户指令或:ps aux | grep nginx – unNamed

回答

1

我知道OP说他不想改变权限,但这是你应该做的第一件事。

现在回答OP的situataion:

添加下面一行到nginx.conf

user abcd; 

现在重启nginx的服务。

+0

只适用于一个用户,并非全部... – unNamed

+0

@unnamed我没有明白,请详细说明。 –

+0

只有在用户“abcd”有权访问时才会授予访问权限。其他目录如默认值将不再工作。 – unNamed

0

在nginx.conf

user www-data; 

然后你的WWW的数据添加到用户组:

adduser www-data abcd 

如果你想发布您刚才添加的这家目录multible用户www-data用户到用户组。

adduser www-data <usergroup> 
+0

不幸的是,第一个命令不起作用:''getpwnam(“www-data”)在/usr/local/etc/nginx/nginx.conf中失败:3' – linkyndy

+0

然后用户www-data可能不存在,你可以为此创建一个新用户:useradd www-data – unNamed

+0

如果我尝试使用自己的应用程序,它应该是同样的事情。但我的印象是macos以不同于nginx的方式处理用户...... – linkyndy

相关问题