由于Phusion Passenger上的Ruby版本错误,在共享主机上部署RoR应用程序失败

时间:2015-07-17 14:45:14

标签: ruby-on-rails passenger

我正在尝试在共享主机上部署Ruby On Rails应用程序,该应用程序具有ruby 1.9.3-p551。 Phusion Passenger现在返回错误消息:

Rails 4 prefers to run on Ruby 2.1 or newer.

    You're running
       ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-linux]

     Please upgrade to Ruby 1.9.3 or newer to continue.

  (SystemExit)
  /.../my_home_directory/.../vendor/cache/gems/railties-4.2.3/lib/rails/ruby_version_check.rb:12:in `abort'

然后是一个大堆栈跟踪。我正在使用rbenv来控制不同的ruby版本。当我输入rbenv versions时,它会说:

   system
*  1.9.3-p551 (set by /my_home_directory/.rbenv/version)

ruby -v

1.9.3p551 (2014-11-13 revision 48407) [x86_64-linux]

但是在乘客的错误信息中有信息:

General Interpreter Information
RUBY_VERSION = 1.9.2

我无法检查Apache配置文件,因为我在共享主机上,因此没有root权限。所以我无法重新安装ruby或rubygems。

我已经尝试重新安装每个本地gem。我多次输入bundle installbundle upgrade。我尝试在主目录,.rbenv目录,app home和app / public目录中安装rbenv local 1.9.3-p551的本地ruby版本。我尝试用rbenv shell 1.9.3-p551更改使用过的ruby版本,并且可能做了更多的事情,我现在记不清了,因为我开始写的东西已经很晚了。

除了Apache配置文件中的PassengerRuby错误之外,为什么乘客有错误的ruby版本?我认为这不太可能,因为我认为我的托管服务提供商知道他在做什么。我能做些什么来让乘客或铁路使用正确(已安装)的版本?

1 个答案:

答案 0 :(得分:0)

  

除了Apache配置文件中的PassengerRuby错误之外,有没有人知道为什么乘客有错误的ruby版本?

此处为乘客作者。配置文件中PassengerRuby错误的事实是唯一原因导致您遇到此问题。 only 解决方案是将PassengerRuby设置为正确的实例。

如果您的共享主机不允许您设置PassengerRuby,那么我建议您切换到其他主机。以Digital Ocean为例。它们很便宜,让您完全掌控,我们有full end-to-end deployment walkthrough for Digital Ocean