2011-08-14 166 views
5

我用rmagick安裝了carrierwave gem。Rails 3 + carrierwave + nginx =權限被拒絕

我可以得到它工作正常,如果加載thro WEBrick但獲得500內部服務器錯誤時嘗試使用nginx代替。

nginx的error.log中說:

2011/08/14 10:06:40 [crit] 760#0: *4247 open() "/usr/local/Cellar/nginx/1.0.4/client_body_temp/0000000033" failed (13: Permission denied), client: 127.0.0.1, server: jewellery.dev, request: "POST /items/28?locale=en HTTP/1.1", host: "jewellery.dev:8080", referrer: "http://jewellery.dev:8080/items/28/edit?locale=en" 

而且我已經創建的文件夾初始化包含文件:

CarrierWave.configure do |config| 
    config.permissions = 0777 
end 

我缺少的東西?

回答

9

這是不相關的CarrierWave,Nginx的就是不能在文件夾/usr/local/Cellar/nginx/1.0.4/client_body_temp/與臨時上傳的文件,這意味着你的Nginx的過程中沒有按寫沒有權利。確保運行nginx的用戶可以在這個特定的路徑下讀/寫文件,如果你沒有改變配置,Nginx通常以用戶身份啓動它,因此你可以給他讀/寫這個文件夾的訪問權限。

運行以下命令:

ps aux | grep "nginx: worker process" 

,看看哪些用戶正在運行nginx的。

+1

沒錯。謝謝Maurício!你救了我兩次指望這個!剛剛做了'chown /usr/local/Cellar/nginx/1.0.4/client_body_temp/'它工作! :) –

+0

在較新版本的nginx中,文件夾可能是**/var/lib/nginx/body ** – Clark