Ruby Passenger:没有此类文件可加载捆绑器

| 我用Nginx安装了Phusion Passenger,将Nginx配置为指向正确的目录,然后运行了webapp目录,这已经下载了gemfile,但是找不到宝石。 当我访问该站点时,我得到标准的旅客错误页面,上面显示:
Error message:
no such file to load -- bundler
这是完整的错误:http://tinypic.com/view.php?pic=vpx36r&s=7 我已经做了一个ѭ1,所以我知道已安装捆绑器,但我认为它在错误的位置寻找宝石。 似乎旅客已经安装了ruby-enterprise-1.8.7,并且看起来已经在此框中安装了1.8。 gem env给我以下内容:
  - RUBYGEMS VERSION: 1.4.2
  - RUBY VERSION: 1.8.7 (2009-12-24 patchlevel 248) [x86_64-linux]
  - INSTALLATION DIRECTORY: /opt/local/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8
  - RUBY EXECUTABLE: /opt/local/ruby-enterprise-1.8.7-2010.01/bin/ruby
  - EXECUTABLE DIRECTORY: /opt/local/ruby-enterprise-1.8.7-2010.01/bin
  - RUBYGEMS PLATFORMS:
      - ruby
      - x86_64-linux
    - GEM PATHS:
      - /opt/local/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8
 - /root/.gem/ruby/1.8
    - GEM CONFIGURATION:
       - :update_sources => true
       - :verbose => true
       - :benchmark => false
       - :backtrace => false
       - :bulk_threshold => 1000
    - REMOTE SOURCES:
       - http://rubygems.org/
从我阅读的内容来看,这似乎是一个路径问题,但是我不知道修复该问题的最佳方法是什么。 这是的输出 哪个红宝石:
/opt/local/ree/bin/ruby
哪个捆绑包:
/opt/local/ree/bin/bundle
我已经在该目录中运行了bundle install,并给出了以下信息:
Your bundle is complete! It was installed into ./vendor/bundle
    
已邀请:
        看起来您遇到了一些路径问题(如您已经指出的那样)。尝试检查为什么您的Ruby安装有两个不同的路径。 我的意思是,根据您的gem env输出,您在
 /opt/local/ruby-enterprise-1.8.7-2010.01/
但是你也有红宝石和黑啤酒
/opt/local/ree/
因此,从这里开始检查所有路径是否正确和/或没有任何双重安装(嗯,这足以检查您的ENV是否一致)。 另一个问题可能与您的nginx.conf有关,您应该具有以下内容:
[...]
 http {
  passenger_root /your/path/to/passenger/gem;
  passenger_ruby /path/to/ruby;
  [...]
 }
UPDATE(刚刚在nginx.conf中看到了其他注释): 如您所见,路径存在问题:红宝石和gems安装有两个路径:
/opt/local/ruby-enterprise....
/opt/local/ree
您应该删除后者(不是暂时的,只需查看ENV以指向第一个) 编辑: 要更改您的环境,可以将以下行添加到/etc/bash.bashrc中(或默认情况下从shell加载whaterver文件):
PATH=\"/opt/local/ruby-enterprise-1.8.7-2010.01/bin:$PATH\"
然后注销并登录,或者进行快速测试,请从shell启动此命令: 源/etc/bash.bashrc 现在,重试看看默认情况下使用什么二进制文件:
which ruby
which gem
which rake
gem env
...
一切都应具有/opt/local/ruby-enterprise-1.8.7-2010.01/前缀(这是nginx和passenger配置中使用的前缀)。 UPDATE2:从评论来看,您至少安装了3个ruby: 来自/ usr / lib / ruby​​ /中的包管理器中的ruby(您是否正在使用ubuntu linux?) / opt / local / ree /中的红宝石 / opt / local / ruby​​-enterprise -....中的红宝石 此时,最好的方法是: 卸载/ opt / local /下的所有ruby及其所有gems 卸载(清除)系统提供的ruby软件包(您不需要它) 安装和设置RVM:https://rvm.io 使用RVM重新安装乘客:https://rvm.io/integration/passenger/ 修复nginx.conf以使用乘客路径和红宝石     

要回复问题请先登录注册