2010-09-08 33 views
1

我一直试图用乘客安装nginx几天,并不断遇到问题。当我去我的Rails应用程序与我的浏览器,它说:Missing the Rails 2.3.8 gem. Please gem install -v=2.3.8 rails, update your RAILS_GEM_VERSION setting in config/environment.rb for the Rails version you do have installed, or comment out RAILS_GEM_VERSION to use the latest version installed.带Nginx的乘客找不到导轨2.3.8宝石

如果我在终端上键入gem list它表明:rails (3.0.0, 2.3.8, 2.3.5)

什么是有趣的是,乘客会发现我的红宝石的宝石就好了,当我使用它与Apache在同一台机器上!但我想尝试nginx,因为Apache没有做我想做的事。

本机的Ubuntu 10.04服务器

  • which ruby表演:/usr/local/bin/ruby(REE)
  • 这些都是在nginx.conf乘客指令:
    • passenger_root /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.15; passenger_ruby /usr/local/bin/ruby;
+0

哪个版本的Nginx和Passenger? (我在宝石路径中看到Passenger 2.2.15。)您确定Passenger是否正确地从Nginx获得所有相关的配置指令? – pjmorse 2010-09-09 13:04:07

回答

0

@Nik Rishav是正确的,因为在系统Ruby中安装Ruby Enterprise Edition(REE)时必须小心。错误地安装REE会导致一些非常奇怪的事情发生。

虽然Rails 3.0可能是您的问题的原因,但我的直觉告诉我您的真正问题是安装REE时错过了一个步骤。但是,如果这不起作用,Google快速搜索会向您显示任何数量的优秀教程,向您显示how to host a Rails app with Phusion Passenger for Nginx。那么,让我们一起去吧,我们!

REE与系统Ruby一起运行良好,但您必须将其安装到其自己的目录中。例如:

/opt/ruby-enterprise-X.X.X/bin/ruby 

您的其他选择是只安装REE,但这可能不适合您。我怀疑当Nginx运行时,它确实找到了REE,就像你指定的那样。您是否从稀土堆栈安装了Nginx的Passenger?

/opt/ruby-enterprise-X.X.X/bin/passenger-install-apache2-module 

如果你还没有,你可能想看看。我会假设你做到了。

从您的描述看,您看起来并不像您告诉REE哪里可以找到您的宝石。为此,您需要将REE设置为默认的Ruby解释器。为此,请将文件添加到文件/etc/environment。在Ubuntu上,目录是/etc/environment。添加稀土元素的bin目录到PATH环境变量,就像这样:

PATH="/opt/ruby-enterprise-x.x.x/bin:/usr/local/sbin:/usr/local/bin" 

配售REE首先在PATH将设置为默认的Ruby解释器。

然后重启Nginx的,就像这样:

sudo /etc/init.d/nginx restart 

希望这有助于。我已经有了我的部署问题,这确实令人沮丧。不会希望对任何人...祝你好运!

+0

嗯,也许我应该从头开始在虚拟机上看看我是否可以通过所有步骤而不会错过它们。我认为REE安装在我的机器上的/ usr/local/bin/ruby​​,Ruby安装在/ usr/bin/ruby​​。我认为你是正确的删除红宝石标准,并尝试自己尝试REE。它会将其减少到可能导致问题的移动较少的部分。 – demersus 2010-09-14 14:33:57

0

作为支票,你确定你的乘客安装在正确的红宝石版本中吗?基本上

无论是红宝石有独立的宝石这意味着您可以在一个安装其它..

检查在/usr/local/lib/ruby/gems/1.8/gems目录,看是否轨2.3。 8存在。你需要在这个红宝石中安装它。

两个红宝石将有安装独立的宝石箱文件..

可能在/ usr/bin中/宝石是系统红宝石 和/ usr/local/bin目录/宝石是您REE

的安装
+0

当我检查/usr/local/lib/ruby/gems/1.8/gems时,它显示了rails 2.3.8 gem。当我输入'哪个宝石'时,它显示/ usr/local/bin/gem – demersus 2010-09-08 20:52:55

+1

这可能是导轨3 +最新机架版本可能导致的问题。只是为了测试清除,删除导轨3和最新机架版本..我会尝试在我的机器上,并让你知道。如果这不起作用,请尝试irc上的#passenger, – 2010-09-08 21:06:23

+0

当我这样做时,我得到:Missing the Rails gem。请'gem install -v = rails' – demersus 2010-09-08 23:29:20