2011-08-14 127 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