Capistrano使用Passenger部署而不更改版本

时间:2013-03-07 21:55:47

标签: ruby-on-rails capistrano passenger

我有一个使用虚拟Ubuntu服务器,Apache,Passenger和Capistrano的Rails应用程序。

我第一次使用Capistrano部署应用程序时,我已将Passenger设置为在httpd.conf文件中使用此代码选择第一个版本:

<VirtualHost *:80>
  ServerName ndeavor.ameipro.com
  DocumentRoot /opt/bitnami/projects/ndeavor/releases/20130306192753/public
 <Directory /opt/bitnami/projects/ndeavor/releases/20130306192753/public>
   Allow from all
   Options -MultiViews
 </Directory>
</VirtualHost>

这开始了我的Rails应用程序的正确第一版。

现在,当我进行Cap Deploy时,我希望Capistrano自动让Passenger启动新版本。

因此,我在deploy.rb中取消注释了这些行

# If you are using Passenger mod_rails uncomment this:
  namespace :deploy do
  task :start do ; end
  task :stop do ; end
  task :restart, :roles => :app, :except => { :no_release => true } do
   run "#{try_sudo} touch #{File.join(current_path,'tmp','restart.txt')}"
  end
 end

新版本尚未开始。我应该从https.conf文件中删除VirtualHost条目吗?我缺少一些步骤吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

使用Capistrano进行部署时,您的版本目录中有一个名为current的符号链接。您的文档根目录应指向myapp/releases/current/public的公共目录。然后,Capistrano更新每个部署的符号链接以指向最新版本。