首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Passenger ('Bundler:RubyVersionMismatch')

Passenger ('Bundler:RubyVersionMismatch')
EN

Stack Overflow用户
提问于 2013-03-19 10:22:35
回答 3查看 1.8K关注 0票数 2

在我的服务器上部署我的rails应用程序时遇到了问题。我正在部署使用Passenger来提供页面。当我启动服务器时,我的页面上列出了以下错误。似乎我安装的passenger版本引用的是ruby 1.8.7,但我的应用程序是在2.0.0中构建的。我试过移除ruby 1.8.7并重新安装Passenger,但到目前为止还没有成功。如果我从我的目录运行ruby -v,它会列出版本为2.0.0。

代码语言:javascript
复制
Your Ruby version is 1.8.7, but your Gemfile specified 2.0.0 (Bundler::RubyVersionMismatch)
/home/ubuntu/.rvm/gems/ruby-2.0.0-p0@global/gems/bundler-1.3.4/lib/bundler/definition.rb:361:in `   validate_ruby!'
/home/ubuntu/.rvm/gems/ruby-2.0.0-p0@global/gems/bundler-1.3.4/lib/bundler.rb:116:in `setup'
/home/ubuntu/.rvm/gems/ruby-2.0.0-p0@global/gems/bundler-1.3.4/lib/bundler/setup.rb:17
/usr/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:59:in `gem_original_require'
/usr/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:59:in `require'
/var/lib/gems/1.8/gems/passenger- 4.0.0.rc4/lib/phusion_passenger/loader_shared_helpers.rb:212:in `run_load_path_setup_code'
/var/lib/gems/1.8/gems/passenger-4.0.0.rc4/helper-scripts/rack-preloader.rb:73:in `preload_app'
/var/lib/gems/1.8/gems/passenger-4.0.0.rc4/helper-scripts/rack-preloader.rb:127

我的apache2.conf文件增加了以下内容:

代码语言:javascript
复制
Include sites-enabled/
<ifmodule mod_ssl.c>
    NameVirtualHost *:443
</ifmodule>
LoadModule passenger_module /var/lib/gems/1.8/gems/passenger 4.0.0.rc4/libout/apache2/mod_passenger.so
   PassengerRoot /var/lib/gems/1.8/gems/passenger-4.0.0.rc4
   PassengerRuby /usr/bin/ruby1.8

编辑:答案

我使用sudo安装passenger和apache2模块。应该直接输入:

代码语言:javascript
复制
gem install passenger -pre
passenger-install-apache2-module

没有sudo。

EN

回答 3

Stack Overflow用户

发布于 2013-03-19 13:16:47

您的乘客配置指向Ruby1.8

代码语言:javascript
复制
LoadModule passenger_module /var/lib/gems/1.8/gems/passenger 4.0.0.rc4/libout/apache2/mod_passenger.so
PassengerRoot /var/lib/gems/1.8/gems/passenger-4.0.0.rc4
PassengerRuby /usr/bin/ruby1.8

它应该看起来像这样……

代码语言:javascript
复制
LoadModule passenger_module /var/lib/gems/2.0.0/gems/passenger 4.0.0.rc4/libout/apache2/mod_passenger.so
PassengerRoot /var/lib/gems/2.0.0/gems/passenger-4.0.0.rc4
PassengerRuby /usr/bin/ruby2.0.0

Passenger安装非常有用,成功安装后,它会在控制台上为您打印这些行。您只需复制这些行并将它们粘贴到apache conf中

票数 2
EN

Stack Overflow用户

发布于 2013-03-19 10:35:50

您应该再次尝试安装passenger。

票数 0
EN

Stack Overflow用户

发布于 2017-03-13 07:47:57

这就是为什么我从使用RVM切换到RBENV的原因。使用RBENV不会遇到这个问题。再加上它就是better

如果您在生产服务器上使用RVM升级ruby,您将被迫重新安装passenger/nginx (在您的示例中,它看起来就像passenger)。

巨大的痛苦,并导致服务器停机。

相反,使用RBENV可以省去这个麻烦。有了RBENV/Capistrano,升级可以通过你的gemfile简单地完成,剩下的工作就可以了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15490484

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档