首页 文章

Rails Passenger Apache 生产环境 部署:“缺少Rails 2.3.5 gem”但它已安装

提问于
浏览
0

我've looked all over the web for about a week now and not found a solution to my problem. I have a Ruby on Rails application I' m试图部署到 生产环境 Ubuntu 10.04服务器版本框 . 我已经在Ruby 1.8.7,Rails 2.3.5和RubyGems 1.3.7上安装了Apache2.2和Passenger3.0.0 . 我的rails应用程序位于 /var/rails_app_name/ ,rubygems / ruby安装在 /var/lib/gems/1.8

我有一个测试服务器与ubuntu 10.04(gui版)运行相同的设置和配置,就像一个魅力 . 唯一的区别是我的rails应用程序root位于用户本地文件夹中,例如 /home/username/rails_app_name/

我的问题是在 生产环境 服务器上,Passenger给了我一个错误: "Missing the Rails 2.3.5 gem. Please 'gem install -v=2.3.5 rails'. update your RAILS_GEM_VERSION...." 我在运行gem环境列出的两个gem目录中安装了rails gem . 以下是一些配置结果:

%> gem environment
  • RUBYGEMS版本:1.3.7

  • RUBY版本:1.8.7(2010-01-10 patchlevel 249)[i486-linux]

  • 安装目录:/var/lib/gems/1.8

  • RUBY EXECUTABLE:/usr/bin/ruby1.8

  • EXECUTABLE目录:/var/lib/gems/1.8/bin

  • RUBYGEMS PLATFORMS:

  • 红宝石

  • x86-linux

  • GEM路径:

  • /var/lib/gems/1.8

  • /home/sross/.gem/ruby/1.8

  • GEM配置:

  • :update_sources => true

  • :verbose => true

  • :benchmark => false

  • :backtrace => false

  • :bulk_threshold => 1000

  • 远程来源:

  • http://rubygems.org/

%>宝石清单

actionmailer(2.3.5)actionpack(2.3.5)activemodel(3.0.3)activerecord(2.3.5)activeresource(2.3.5)activesupport(3.0.3,2.3.5)acts_as_audited(1.1.1)arel(2.0 . 4)authlogic(2.1.6)builder(2.1.2)cancan(1.4.1)daemon_controller(0.2.5)fastthread(1.0.7)file-tail(1.0.5)i18n(0.4.2)乘客(3.0 . 0)机架(1.0.1)导轨(2.3.5)耙(0.8.7)spruz(0.2.2)tzinfo(0.3.23)

%>哪个宝石

在/ usr / bin中/宝石

%>哪个红宝石

在/ usr / bin中/红宝石

** /etc/apache2/mods-enabled/passenger.conf **

PassengerRoot /var/lib/gems/1.8/gems/passenger-3.0.0 PassengerRuby / usr / bin / ruby

** /etc/apache2/mods-enabled/passenger.load **

LoadModule passenger_module /var/lib/gems/1.8/gems/passenger-3.0.0/ext/apache2/mod_passenger.so

如果你想看到别的什么,请告诉我 . 我用sudo安装了所有东西,我所有的rubygems目录,ruby目录,应用程序目录都是chmod 755所以www-data应该有正确的访问权限?我已经尝试将GEM_HOME设置为两个rubygems路径并确保rails gem也在那里 .

帮助这个杀了我!

更新:

测试服务器的宝石列表(工作正常)

abstract (1.0.0)
actionmailer (3.0.0, 2.3.8, 2.3.5)
actionpack (3.0.0, 2.3.8, 2.3.5)
activemodel (3.0.0)
activerecord (3.0.0, 2.3.8, 2.3.5)
activeresource (3.0.0, 2.3.8, 2.3.5)
activesupport (3.0.0, 2.3.8, 2.3.5)
acts_as_audited (1.1.1)
arel (1.0.1)
authlogic (2.1.6)
builder (2.1.2)
bundler (1.0.0)
cancan (1.3.4)
cgi_multipart_eof_fix (2.5.0)
daemon_controller (0.2.5)
daemons (1.1.0)
dbi (0.4.5)
deprecated (2.0.1)
erubis (2.6.6)
fastthread (1.0.7)
file-tail (1.0.5)
gem_plugin (0.2.3)
mail (2.2.5)
mime-types (1.16)
mongrel (1.1.5)
mongrel_cluster (1.0.5)
mysql (2.8.1)
passenger (3.0.0)
polyglot (0.3.1)
rack (1.2.1, 1.1.0, 1.0.1)
rack-mount (0.6.13)
rack-test (0.5.4)
rails (2.3.5)
railties (3.0.0)
rake (0.8.7)
spruz (0.2.2)
thor (0.14.0)
treetop (1.4.8)
tzinfo (0.3.23)
validates_date_time (1.0.0)

2 回答

  • 0

    我拉了一个同事再看看这个问题,我们发现这个post将我原来帖子中列出的误导性和无用的错误转换为实际的错误文本 . 问题的根源最终来自安装了哪些版本的特定宝石以及它们的安装位置 . AFIAK我最终需要机架版本1.0.0和版本1.0.1 .

    所以我将从这个问题中学到的东西传递给其他人:如果你得到一个“Missing the Rails X.X.X gem ......”,请查看你的boot.rb文件,并在上面的链接中进行解释 . 这将显示真正的问题,这似乎总是一些其他宝石的不正确版本导致rails gem失败它的加载过程 .

    感谢大家花时间研究我的原帖!

  • 3

    你能为你的红宝石检查apache吗?寻找

    PassengerRuby / usr / bin / ruby

    你可能有乘客看错了红宝石(可能是多个安装在2个目录中)

相关问题