![](/img/trans.png)
[英]Compile Passenger Native Support with RVM for different Ruby versions
[英]RVM and Passenger with two Ruby versions
如何在1.9和1.8(ree)ruby版本中使用Passenger,RVM和Apache? 我在生产环境中需要它。 我尝试这样: RVM PASSENGER但REE仅能正常工作。 1.9这样说:
给定的ruby环境需要ruby-1.9.2-p318(相对ree-1.8.7-2012.02)(RVM :: IncompatibleRubyError)
我的1.9 ruby版本的文件:.rvmrc
environment_id="ruby-1.9.2-p318"
if [[ -d "${rvm_path:-$HOME/.rvm}/environments"
&& -s "${rvm_path:-$HOME/.rvm}/environments/$environment_id" ]]
then
\. "${rvm_path:-$HOME/.rvm}/environments/$environment_id"
[[ -s "${rvm_path:-$HOME/.rvm}/hooks/after_use" ]] &&
\. "${rvm_path:-$HOME/.rvm}/hooks/after_use" || true
if [[ $- == *i* ]] # check for interactive shells
then echo "Using: $(tput setaf 2)$GEM_HOME$(tput sgr0)"
else echo "Using: $GEM_HOME"
fi
else
rvm --create use "$environment_id" || {
echo "Failed to create RVM environment '${environment_id}'."
return 1
}
fi
setup_load_paths.rb
if ENV['MY_RUBY_HOME'] && ENV['MY_RUBY_HOME'].include?('rvm')
begin
rvm_path = File.dirname(File.dirname(ENV['MY_RUBY_HOME']))
rvm_lib_path = File.join(rvm_path, 'lib')
require 'rvm'
RVM.use_from_path! File.dirname(File.dirname(__FILE__))
rescue LoadError
# RVM is unavailable at this point.
raise "RVM ruby lib is currently unavailable."
end
end
ENV['BUNDLE_GEMFILE'] = File.expand_path('../Gemfile', File.dirname(__FILE__))
require 'bundler/setup'
httpd.conf
...
LoadModule passenger_module /usr/local/rvm/gems/ree-1.8.7-2012.02/gems/passenger-3.0.12/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/rvm/gems/ree-1.8.7-2012.02/gems/passenger-3.0.12
PassengerRuby /usr/local/rvm/wrappers/ree-1.8.7-2012.02/ruby
...
您可以查看这篇很棒的文章: Phusion Passenger和运行多个Ruby版本
基本上,您可以使用rvm和反向代理来完成它。 例如,您可以照常部署一个红宝石版本(如1.9),并使用反向代理来设置另一个版本:
在您的apache配置中设置反向代理
<VirtualHost *:80> ServerName www.hamburgers.com DocumentRoot /path/to/your/app/public PassengerEnabled off ProxyPass / http://127.0.0.1:3000 ProxyPassReverse / http://127.0.0.1:3000 </VirtualHost>
您也可以尝试使用独角兽代替乘客,或用ngix代替apache。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.