【问题标题】:cannot load such file -- bundler/setup (LoadError) || deploy on Ubuntu 12.04 x32无法加载此类文件--bundler/setup (LoadError) ||在 Ubuntu 12.04 x32 上部署
【发布时间】:2015-06-14 13:11:06
【问题描述】:

我尝试在 Ubuntu 12.04 x32 上使用 Nginx 部署我的 rails 应用程序。一切都完成后,我访问了我的 Rails 应用程序,但它告诉我“我们很抱歉,但出了点问题。”。

然后我cat /var/log/nginx/error.log,我发现这行:

Message from application: cannot load such file -- bundler/setup (LoadError)
/home/thomas/.rvm/rubies/ruby-2.0.0-  p643/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/home/thomas/.rvm/rubies/ruby-2.0.0-p643/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/usr/lib/ruby/vendor_ruby/phusion_passenger/loader_shared_helpers.rb:278:in `block in run_load_path_setup_code'
/usr/lib/ruby/vendor_ruby/phusion_passenger/loader_shared_helpers.rb:381:in `running_bundler'
/usr/lib/ruby/vendor_ruby/phusion_passenger/loader_shared_helpers.rb:276:in `run_load_path_setup_code'
/usr/share/passenger/helper-scripts/rack-preloader.rb:99:in `preload_app'
/usr/share/passenger/helper-scripts/rack-preloader.rb:157:in `<module:App>'
/usr/share/passenger/helper-scripts/rack-preloader.rb:29:in `<module:PhusionPassenger>'
/usr/share/passenger/helper-scripts/rack-preloader.rb:28:in `<main>'

我使用 rvm 和 rbenv

$ ruby -v
ruby 2.0.0p643 (2015-02-25 revision 49749) [i686-linux]
$ rbenv versions
system
* 2.0.0-p643 (set by /home/thomas/.rbenv/version)

我已经安装了捆绑器

$ bundler -v
Bundler version 1.9.2

这是我的 gem 环境:

RubyGems Environment:
  - RUBYGEMS VERSION: 2.4.6
  - RUBY VERSION: 2.0.0 (2015-02-25 patchlevel 643) [i686-linux]
  - INSTALLATION DIRECTORY: /home/thomas/.rvm/gems/ruby-2.0.0-p643
  - RUBY EXECUTABLE: /home/thomas/.rvm/rubies/ruby-2.0.0-p643/bin/ruby
  - EXECUTABLE DIRECTORY: /home/thomas/.rvm/gems/ruby-2.0.0-p643/bin
  - SPEC CACHE DIRECTORY: /home/thomas/.gem/specs
  - SYSTEM CONFIGURATION DIRECTORY: /home/thomas/.rvm/rubies/ruby-2.0.0-p643/etc
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86-linux
  - GEM PATHS:
     - /home/thomas/.rvm/gems/ruby-2.0.0-p643
     - /home/thomas/.rvm/gems/ruby-2.0.0-p643@global
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - https://rubygems.org/
  - SHELL PATH:
     - /home/thomas/.rvm/gems/ruby-2.0.0-p643/bin
     - /home/thomas/.rvm/gems/ruby-2.0.0-p643@global/bin
     - /home/thomas/.rvm/rubies/ruby-2.0.0-p643/bin
     - /home/thomas/.rvm/bin
     - /home/thomas/.rbenv/bin
     - /home/thomas/.rbenv/shims
     - /home/thomas/.rbenv/bin
     - /usr/local/sbin
     - /usr/local/bin
     - /usr/sbin
     - /usr/bin
     - /sbin
     - /bin
     - /usr/games

有人遇到过同样的问题吗? 谢谢

更新: 我的/etc/nginx/nginx.conf/etc/nginx/sites-enabled/blog.confhttps://gist.github.com/wall2flower/b3f410317585a8803a27 https://gist.github.com/wall2flower/72316e8b437d654e7070

【问题讨论】:

  • 粘贴您的 /etc/nginx/nginx.conf 以及您的站点配置文件。
  • 我已将这一行作为要点,并使用链接进行了更新:)

标签: ruby-on-rails nginx gem rubygems passenger


【解决方案1】:

你肯定有一些 PATH 问题。在 /etc/nginx/nginx.conf 中,对于乘客,您应该指向安装 bundler 的 ruby​​ 版本。

passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini;
passenger_ruby /home/thomas/.rvm/wrappers/default/ruby;

你可以用命令检查这个

$ which ruby

该命令的输出应该是你应该为passenger_ruby输入的那个

如果您还没有安装 bundler,请继续运行 gem install bundler

还要确保在服务器块中设置环境变量:

server {
  listen 80 default;
  server_name blog.wall2flower.me;
  root /var/www/blog/current/public;
  passenger_enabled on;
}

【讨论】:

【解决方案2】:

您需要生成binstubs 来解决问题:

bundle install --binstubs

【讨论】:

    【解决方案3】:

    尝试:

    bundle exec passenger start ...
    

    【讨论】:

    • 我尝试:bundle exec passenger start RAILS_ENV=production,我得到错误信息:gist.github.com/wall2flower/17d0ab44417aeb31aaa9
    • 试试bundle exec passenger start -e production -d
    • 我试过了,现在我可以通过example.com:3000访问成功。 : D
    • 您应该在 /etc/nginx/sites-enabled/blog.conf server_name example.com; 中更改它或简单地评论这一行
    • 感谢您的患者,我已经通过这个链接解决了我的问题:phusionpassenger.com/documentation/… :)
    【解决方案4】:

    正如 karlingen 所说,问题是 PATH 问题的结果,但是如果您使用的是 RVM,您将希望通过另一种方式获得正确的 ruby​​ 路径...

    最好按照乘客自己的指南查找此信息:

    https://www.phusionpassenger.com/library/config/nginx/reference/#setting_correct_passenger_ruby_value

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-20
      • 1970-01-01
      • 1970-01-01
      • 2021-05-16
      相关资源
      最近更新 更多