2012-05-04 2 views
2

1.9 및 1.8 (ree) 루비 버전의 Passenger, RVM 및 Apache를 사용하려면 어떻게해야합니까? 나는 생산 환경에서 그것을 필요로한다. 나는 이것을 시도 : RVM PASSENGER하지만 REE는 작동 중입니다. 1.9은 이런 말 :Ruby 버전이 2 개인 RVM 및 Passenger

주어진 루비 환경 루비 1.9.2-p318 필요 (대를 REE-1.8.7-2012.02) (RVM : IncompatibleRubyError) 1.9에서

내 파일 루비 버전 : setup_load_paths.rb

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 

.rvmrc

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 

... 
+1

현재 승객은 여러 개의 루비를 돌릴 수 없으며, 지원할 수있는 베타 빌드 3.2를 발표했습니다. – mpapis

+0

ruby ​​pleas의 두 가지 버전을 사용하는 다른 해결책을 알고 있습니까? – quatermain

+2

확인 http://serverfault.com/questions/368695/best-practice-rvm-w-multiple-nginx-passsenger-standalone-servers-running-one-a – mpapis

답변

0

당신은이 멋진 기사 체크 아웃 할 수 있습니다 Phusion Passenger & running multiple Ruby versions

기본적으로, 당신은 RVM을 사용하고 완수하기 위해 역방향 프록시를 할 수 있습니다. 예를 들어, 평소와 같이 하나 개의 루비 버전 (1.9 등)를 배포하고, 다른 하나는 설정에 리버스 프록시 사용할 수 있습니다

  • RVM 사용 1.8
  • 보석 승객이 --pre 설치
  • CD/경로를// 사용자/응용 프로그램
  • 승객 시작 -a 127.0.0.1 -p 3000 아파치 설정에서 프록시를
  • 설치를 반대 -d

    <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> 
    

승객 대신 유니콘을 사용하거나 apache를 ngix로 바꿀 수도 있습니다.

관련 문제