Ruby on rails 搭载传统Rails 2.3应用程序的乘客5.0赢得了';t靴

Ruby on rails 搭载传统Rails 2.3应用程序的乘客5.0赢得了';t靴,ruby-on-rails,apache,passenger,Ruby On Rails,Apache,Passenger,最近在我的Ubuntu服务器上将Passenger从4.x升级到5.0.7。不幸的是,这破坏了我的一个仍然运行Rails 2.3.15的旧应用程序,尽管Passenger声称在其新的5.x版本中支持>=Rails 2.3.x 根据新的Passenger 5.0文档,我必须创建一个config.ru文件,之后出现以下错误: exit (SystemExit) /var/www/myrailsapp/config/boot.rb:70:in `exit' /var/www/myrailsap

最近在我的Ubuntu服务器上将Passenger从4.x升级到5.0.7。不幸的是,这破坏了我的一个仍然运行Rails 2.3.15的旧应用程序,尽管Passenger声称在其新的5.x版本中支持>=Rails 2.3.x

根据新的Passenger 5.0文档,我必须创建一个config.ru文件,之后出现以下错误:

exit (SystemExit)
  /var/www/myrailsapp/config/boot.rb:70:in `exit'
  /var/www/myrailsapp/config/boot.rb:70:in `rescue in load_rails_gem'
  /var/www/myrailsapp/config/boot.rb:63:in `load_rails_gem'
  /var/www/myrailsapp/config/boot.rb:58:in `load_initializer'
  /var/www/myrailsapp/config/boot.rb:43:in `run'
  /var/www/myrailsapp/config/boot.rb:16:in `boot!'
  /var/www/myrailsapp/config/boot.rb:114:in `<top (required)>'
  /usr/local/rvm/rubies/ruby-1.9.3-p551/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
  /usr/local/rvm/rubies/ruby-1.9.3-p551/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
  /var/www/myrailsapp/config/environment.rb:12:in `<top (required)>'
  /usr/local/rvm/rubies/ruby-1.9.3-p551/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
  /usr/local/rvm/rubies/ruby-1.9.3-p551/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
  config.ru:1:in `block in <main>'
  /usr/local/rvm/gems/ruby-1.9.3-p551/gems/rack-1.4.5/lib/rack/builder.rb:51:in `instance_eval'
  /usr/local/rvm/gems/ruby-1.9.3-p551/gems/rack-1.4.5/lib/rack/builder.rb:51:in `initialize'
  config.ru:1:in `new'
  config.ru:1:in `<main>'
  /usr/share/passenger/helper-scripts/rack-preloader.rb:107:in `eval'
  /usr/share/passenger/helper-scripts/rack-preloader.rb:107:in `preload_app'
  /usr/share/passenger/helper-scripts/rack-preloader.rb:153:in `<module:App>'
  /usr/share/passenger/helper-scripts/rack-preloader.rb:29:in `<module:PhusionPassenger>'
  /usr/share/passenger/helper-scripts/rack-preloader.rb:28:in `<main>'
显然,Rails 2.3.15 gem在乘客更新过程中(仍然)安装并保持不变。由于某种原因,它无法加载轨道,我似乎不明白为什么“gem列表”正确显示所有gem(包括rails 2.3.15),乘客似乎通过RVM使用了正确的实例

其余的环境变量似乎也是有序的

APACHE_PID_FILE = /var/run/apache2/apache2.pid
rvm_bin_path = /usr/local/rvm/bin
GEM_HOME = /usr/local/rvm/gems/ruby-1.9.3-p551
APACHE_RUN_USER = www-data
SHELL = /bin/bash
IRBRC = /usr/local/rvm/rubies/ruby-1.9.3-p551/.irbrc
PYTHONUNBUFFERED = 1
PASSENGER_DEBUG_DIR = /tmp/passenger.spawn-debug.XXXXDL9Zb9
MY_RUBY_HOME = /usr/local/rvm/rubies/ruby-1.9.3-p551
USER = chris
_system_type = Linux
rvm_path = /usr/local/rvm
IN_PASSENGER = 1
RACK_ENV = production
PASSENGER_USE_FEEDBACK_FD = true
rvm_prefix = /usr/local
PATH = /usr/local/rvm/gems/ruby-1.9.3-p551/bin:/usr/local/rvm/gems/ruby-1.9.3-p551@global/bin:/usr/local/rvm/rubies/ruby-1.9.3-p551/bin:/usr/local/rvm/gems/ruby-1.9.3-p551/bin:/usr/local/rvm/gems/ruby-1.9.3-p551@global/bin:/usr/local/rvm/rubies/ruby-1.9.3-p551/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/rvm/bin
APACHE_LOG_DIR = /var/log/apache2
WSGI_ENV = production
PWD = /var/www/myrailsapp
LANG = C
APACHE_RUN_GROUP = www-data
NODE_PATH = /usr/share/passenger/node
_system_arch = i386
NODE_ENV = production
_system_version = 14.04
rvm_version = 1.26.10 (latest)
HOME = /home/chris
SHLVL = 0
RAILS_ENV = production
SERVER_SOFTWARE = Apache/2.4.7 (Ubuntu) SVN/1.8.8 Phusion_Passenger/5.0.7
LOGNAME = chris
GEM_PATH = /usr/local/rvm/gems/ruby-1.9.3-p551:/usr/local/rvm/gems/ruby-1.9.3-p551@global
PASSENGER_APP_ENV = production
APACHE_RUN_DIR = /var/run/apache2
APACHE_LOCK_DIR = /var/lock/apache2
RUBY_VERSION = ruby-1.9.3-p551
_system_name = Ubuntu
更新 在config/boot.rb中注释掉rescue块后,乘客现在抛出一个新错误,该错误阻止Rails 2.3.15正确加载:

Unable to activate actionpack-2.3.15, because rack-1.4.5 conflicts with rack (~> 1.1.3) (Gem::LoadError)

你知道怎么解决这个问题吗?如果可能的话,我更愿意在我的本地安装中安装monky补丁,而不是在RVM中创建完全独立的GemSet。

解决此依赖冲突的最佳方法是为我的传统Rails 2.3站点在RVM中创建独立的GemSet

虽然在Gemfile之前的时代,我需要从项目中收集重新安装所需的所有Gem,但我相信这是未来的最佳解决方案

Unable to activate actionpack-2.3.15, because rack-1.4.5 conflicts with rack (~> 1.1.3) (Gem::LoadError)