2017-03-02 122 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