【发布时间】:2015-07-17 14:45:13
【问题描述】:
我正在尝试在具有 ruby 1.9.3-p551 的共享主机上部署 Ruby On Rails 应用程序。 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 install 和bundle upgrade。我尝试在主目录、.rbenv 目录、应用程序主目录和 app/public 目录中安装带有 rbenv local 1.9.3-p551 的本地 ruby 版本。我尝试用rbenv shell 1.9.3-p551 更改使用过的 ruby 版本,并且可能做了更多的事情,我现在不记得了,因为我开始很晚才写下我已经做过的事情。
除了Apache 配置文件中的PassengerRuby 错误之外,为什么passenger 的ruby 版本也错误?我认为这不太可能,因为我认为我的托管服务提供商知道他在做什么。我可以做些什么来让乘客或铁路使用正确的(安装的)版本吗?
【问题讨论】: