使用Capistrano进行部署:如何设置文件和文件夹权限?

时间:2011-08-21 10:55:11

标签: ruby-on-rails ruby ruby-on-rails-3 permissions capistrano

我正在使用Ruby on Rails 3.0.9,Paperclip和Capistrano宝石。当我在运行Ubuntu 10.04的VPS上部署我的应用程序(使用Capistrano)并尝试提交Paperclip附件时,它将无法正常工作。我知道问题与public目录的文件和文件夹权限有关(我上传该目录中的附件)。

因此,我不是每次部署应用程序时都设置权限手动,而是想写一个Capistrano配方,以便以“自动”方式设置这些权限我该怎么做?

我应该在本地计算机(运行Snow Leopard 10.6.7的Mac OS)中设置文件和文件夹权限,以便Capistrano将正确部署和设置这些权限吗?或者,我应该在system "chmod -R 777 #{RAILS_ROOT}/public"文件中添加config/environments/production.rb之类的代码吗?

1 个答案:

答案 0 :(得分:3)

你接近错了。

我确定你想要在部署之间保留你的附件,不是吗? 那么您的Paperclip附件应该位于“共享”目录下,如日志,tmp,pids等......

如果您尊重Paperclip默认位置:“:rails_root / public / system /:attachment /:id /:style /:filename”。 并且您不会使用公共/系统目录来破坏您的SVN或Git。

解决方案就像使用所需权限的:deploy_to / shared / system 目录一样简单。让Paperclip和Capistrano为您无缝处理该系统目录。