簡體   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