我正在尝试在共享主机上部署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 install
和bundle upgrade
。我尝试在主目录,.rbenv目录,app home和app / public目录中安装rbenv local 1.9.3-p551
的本地ruby版本。我尝试用rbenv shell 1.9.3-p551
更改使用过的ruby版本,并且可能做了更多的事情,我现在记不清了,因为我开始写的东西已经很晚了。
除了Apache配置文件中的PassengerRuby错误之外,为什么乘客有错误的ruby版本?我认为这不太可能,因为我认为我的托管服务提供商知道他在做什么。我能做些什么来让乘客或铁路使用正确(已安装)的版本?
答案 0 :(得分:0)
除了Apache配置文件中的PassengerRuby错误之外,有没有人知道为什么乘客有错误的ruby版本?
此处为乘客作者。配置文件中PassengerRuby错误的事实是唯一原因导致您遇到此问题。 only 解决方案是将PassengerRuby设置为正确的实例。
如果您的共享主机不允许您设置PassengerRuby,那么我建议您切换到其他主机。以Digital Ocean为例。它们很便宜,让您完全掌控,我们有full end-to-end deployment walkthrough for Digital Ocean。