繁体   English   中英

回形针:权限被拒绝错误

[英]Paperclip: Permission denied error

回形针在本地主机上工作正常,但是在我部署的应用程序上,当我尝试更新头像时,它返回以下错误:

Errno::EACCES in UsersController#update
Permission denied - /rails_apps/website/releases/20150807211111/public/system/users/avatars/000/000/562

这是我的用户控制器中的以下一行:

if @user.update_attributes(user_params)

这是在我的用户模型中:

has_attached_file :avatar, :styles => { :full => "400x720" }, :processors => [:cropper]
validates_attachment_content_type :avatar, :content_type => /\Aimage\/.*\Z/

我的服务器使用Ubuntu 10.04.4 LTS。

此错误是什么意思,我该如何解决?

这似乎是文件权限问题,而不是Ruby on Rails。 尝试在以运行Web服务器的用户身份登录的终端中运行以下命令:

chmod -R +w /rails_apps/website/releases/20150807211111/public

它与部署计算机上的文件夹和文件权限有关,与Rails无关。

你需要的可写性不只是添加到..../public文件夹,但专门的子文件夹..../avatars/ 这样做:

chmod -R a+w /rails_apps/website/releases/20150807211111/public/system/users/avatars

但是,通常认为这是不好的做法。 您应该将文件夹的所有者或组更改为运行Web服务器的用户的所有者或组。 然后,确保该用户/组可以写入该文件夹。

就像是:

 chown -R www-data:www-data /rails_apps/website/releases/

您的需求可能会有所不同。

使用Capistrano进行部署有助于在代码部署时完全自动化所需的更改。

我很久以前就遇到了同样的问题,以下对我有用:

chmod 755 /rails_apps/website/releases/20150807211111/public

如果您拥有自己的机器:

chmod 777 /rails_apps/website/releases/20150807211111/public

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM