为多个Ruby-on-Rails应用程序运行多个版本的Passenger

时间:2013-03-26 19:19:04

标签: ruby-on-rails apache passenger

安装Passenger Apache2模块之后,它给了我类似的东西:

LoadModule passenger_module /home/passenger/.rvm/gems/ruby-1.9.2-p290/gems/passenger-3.0.17/ext/apache2/mod_passenger.so
PassengerRoot /home/passenger/.rvm/gems/ruby-1.9.2-p290/gems/passenger-3.0.17
PassengerRuby /home/passenger/.rvm/wrappers/ruby-1.9.2-p290/ruby

(抱歉,我有一个名为passenger的用户帐户。请不要混淆。)

因此,如果我想部署另一个使用完全不同版本的ruby的rails应用程序,那么我相信它会提供类似于上述配置的东西但是具有不同的ruby版本,例如:

LoadModule passenger_module /home/passenger/.rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.17/ext/apache2/mod_passenger.so
PassengerRoot /home/passenger/.rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.17
PassengerRuby /home/passenger/.rvm/wrappers/ruby-1.9.3-p194/ruby

然后我如何配置Apache2(我不是要求虚拟主机部分)?因为LoadModule passenger_module有两个版本。我不认为一个Apache2服务器可以加载两个不同版本的passenger_module,对吗?

我很困惑。请帮帮我。

2 个答案:

答案 0 :(得分:1)

从4.0.0版开始,Passenger支持多个Ruby解释器。 PassengerRuby配置选项已成为每个虚拟主机选项,因此您可以基于每个应用程序自定义Ruby解释器。

对于乘客3,您必须使用代理。

答案 1 :(得分:0)

对于乘客3.x: 来自phusion的一个解决方案是使用mod_proxy绑定到独立乘客:http://blog.phusion.nl/2010/09/21/phusion-passenger-running-multiple-ruby-versions/ 我不确定100%,但99%,你不能加载两个版本的乘客模块,因为它们会特别冲突配置变量,如PassengerRoot,PassengerRuby,仅限于服务器范围