Ruby on rails 带Nginx的乘客找不到rails 2.3.8 gem
几天来,我一直在尝试与乘客一起设置nginx,但一直遇到问题。当我使用浏览器访问Rails应用程序时,它会显示:缺少Rails2.3.8gem。请gem install-v=2.3.8 rails,在config/environment.rb中更新您已安装的rails版本的rails\u gem\u版本设置,或者注释掉rails\u gem\u版本以使用已安装的最新版本 如果我在终端中键入gem list,它会显示:rails 3.0.0、2.3.8、2.3.5 有趣的是,当我在同一台机器上与Apache一起使用时,乘客会发现我的ruby gems很好!但是我想用nginx做实验,因为Apache并不是我想要的 这台机器是Ubuntu 10.04服务器 哪个ruby显示:/usr/local/bin/ruby-REE 以下是nginx.conf中的乘客指令: passenger_root/usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.15; 乘客_ruby/usr/local/bin/ruby;Ruby on rails 带Nginx的乘客找不到rails 2.3.8 gem,ruby-on-rails,ruby,nginx,passenger,Ruby On Rails,Ruby,Nginx,Passenger,几天来,我一直在尝试与乘客一起设置nginx,但一直遇到问题。当我使用浏览器访问Rails应用程序时,它会显示:缺少Rails2.3.8gem。请gem install-v=2.3.8 rails,在config/environment.rb中更新您已安装的rails版本的rails\u gem\u版本设置,或者注释掉rails\u gem\u版本以使用已安装的最新版本 如果我在终端中键入gem list,它会显示:rails 3.0.0、2.3.8、2.3.5 有趣的是,当我在同一台机器上与A
作为检查,您是否确定您的乘客安装了正确版本的ruby。基本上 两颗红宝石都有单独的宝石,这意味着你必须将另一颗宝石安装在一颗宝石中 检查/usr/local/lib/ruby/gems/1.8/gems目录以查看是否存在rails 2.3.8。您需要在这个ruby中安装它 两个rubies都将有单独的gem bin文件用于安装 可能/usr/bin/gem用于ruby系统
和/usr/local/bin/gem用于安装REE@Nik Rishav是正确的,因为在Ruby系统旁边安装Ruby Enterprise Edition REE时必须小心。错误地安装REE可能会导致一些非常奇怪的事情发生 虽然Rails 3.0可能是您出现问题的原因,但我的直觉告诉我,您真正的问题是在安装REE时遗漏了一步。但是,如果这不起作用,快速的谷歌搜索将向您显示任何数量的优秀教程。好吧,让我们试一试,好吗 REE与系统Ruby一起运行良好,但您必须将其安装到自己的目录中。例如:
/opt/ruby-enterprise-X.X.X/bin/ruby
您的另一个选择是只安装REE,但这可能不是您的选择。我怀疑当Nginx运行时,它确实会找到您指定的REE。您是否从REE堆栈安装了适用于Nginx的乘客
/opt/ruby-enterprise-X.X.X/bin/passenger-install-apache2-module
如果你没有,你可能想调查一下。我想是你干的
根据你的描述,看起来你没有告诉REE在哪里可以找到你的宝石。为此,需要将REE设置为默认的Ruby解释器。为此,请在文件/etc/environment中添加一个条目。在Ubuntu上,目录是/etc/environment。将REE的bin目录添加到PATH环境变量,如下所示:
PATH="/opt/ruby-enterprise-x.x.x/bin:/usr/local/sbin:/usr/local/bin"
将REE放在路径的第一位将把它设置为默认的Ruby解释器
然后重新启动Nginx,如下所示:
sudo /etc/init.d/nginx restart
希望这能有所帮助。我也遇到过部署问题,这确实令人沮丧。我不希望这发生在任何人身上…祝你好运 当我选中/usr/local/lib/ruby/gems/1.8/gems时,它显示了Rails2.3.8gem。当我输入'which gem'时,它会显示/usr/local/bin/gemhmm,这可能是rails 3+最新机架版本导致的问题。为了测试起见,请卸下rails 3和最新机架版本。。我会在我的机器上试试,然后告诉你。如果这不起作用。。试一下irc上的乘客,当我这样做的时候,我得到了:错过了轨道宝石。请gem install-v=rails几乎就像乘客在nginx下装载时ruby找不到我的gem一样。在apache2模式下,没有问题。哪种版本的Nginx和Passenger?我看到gem路径上有乘客2.2.15。你确定Passenger正确地从Nginx获得了所有相关的配置指令吗?嗯,也许我应该从虚拟机上从头开始,看看我是否可以完成所有步骤而不遗漏它们。我以为REE安装在我的机器上的/usr/local/bin/ruby,ruby安装在/usr/bin/ruby。我认为您删除ruby标准并单独尝试REE是正确的。这将使其减少到可能导致问题的移动部件。