[英]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.