我正在使用Capistrano将多个Rails应用程序部署到Apache和Passenger 4服务器。我也在使用rvm-capistrano gem在服务器上安装新版本的Ruby。
据我了解,每个VirtualHost定义中的PassengerRuby行指定应该为每个应用程序使用哪个Ruby和哪个gemset。当应用程序从Ruby 1.9.3-p374升级到Ruby 1.9.3-p545时,必须将此VirtualHost定义更改为指向新版本的Ruby,对吗?
当Capistrano部署应用程序时,有没有办法更自动地完成这项工作?它可能以某种方式更改Apache配置文件,或者定义Ruby路径以间接指向Capistrano可以更改的其他配置。该怎么做?
答案 0 :(得分:1)
我会写一个配方来管理Passenger配置文件。基本模式如下:
rvm:whatever_task_you_use_to_install_upgrade
这个模式在这个RailsCast中很好地说明了:http://railscasts.com/episodes/337-capistrano-recipes?view=asciicast
或者,有很多关于安装和管理Passenger的上限配方的exmaples。这是一个不使用erb的内容,而是写入Passenger配置的内联文本(参见第39行):https://github.com/nesquena/cap-recipes/blob/master/lib/cap_recipes/tasks/passenger/install.rb