【问题标题】:Passenger with nginx: cannot load such file -- bundler/setup (LoadError)使用 nginx 的乘客:无法加载此类文件 -- 捆绑程序/设置 (LoadError)
【发布时间】:2014-09-29 08:38:39
【问题描述】:

只安装了一个版本的Ruby,我已经运行gem install bundler && bundle install

nginx 配置

passenger_root /root/.gem/ruby/2.1.0/gems/passenger-4.0.52;
passenger_ruby /usr/bin/ruby;
server {
    listen 80;
    server_name example.com;
    root /srv/http/myrailsapp/public;
    passenger_enabled on;
    rails_env development;
}

错误日志

cannot load such file -- bundler/setup (LoadError)
/usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/root/.gem/ruby/2.1.0/gems/passenger-4.0.52/lib/phusion_passenger/loader_shared_helpers.rb:263:in `block in run_load_path_setup_code'
/root/.gem/ruby/2.1.0/gems/passenger-4.0.52/lib/phusion_passenger/loader_shared_helpers.rb:366:in `running_bundler'
/root/.gem/ruby/2.1.0/gems/passenger-4.0.52/lib/phusion_passenger/loader_shared_helpers.rb:261:in `run_load_path_setup_code'
/root/.gem/ruby/2.1.0/gems/passenger-4.0.52/helper-scripts/rack-preloader.rb:100:in `preload_app'
/root/.gem/ruby/2.1.0/gems/passenger-4.0.52/helper-scripts/rack-preloader.rb:158:in `<module:App>'
/root/.gem/ruby/2.1.0/gems/passenger-4.0.52/helper-scripts/rack-preloader.rb:29:in `<module:PhusionPassenger>'
/root/.gem/ruby/2.1.0/gems/passenger-4.0.52/helper-scripts/rack-preloader.rb:28:in `<main>'

【问题讨论】:

    标签: ruby-on-rails nginx passenger


    【解决方案1】:

    我一直在解决类似的问题。

    我的问题在于passenger_ruby /usr/bin/ruby; 的配置,它指向了错误的版本。我的解决方案是设置命令which ruby的输出路径

    在我使用 rvm 的服务器上。但也有其他的红宝石安装。

    首先尝试测试环境。转到应用程序目录并运行passenger start。如果服务器已准备好运行应用程序,这将向您显示。修复错误...

    如果消息仍然这样说

    cannot load such file -- bundler/setup (LoadError)
    

    运行gem install bundler 并重新检查。

    然后将 NGINX 中的路径设置为 which ruby 命令的路径并重新启动应用程序。

    【讨论】:

    • 工作就像一个魅力!
    【解决方案2】:

    您需要更改您的 passenger_root 值。赞here in doc

    例如我的 nginx 配置:

    ...
      passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini;
      passenger_ruby /usr/bin/ruby;
    ...
    

    【讨论】:

    • passenger-config --root 给了我与passenger_root 相同的值
    【解决方案3】:

    phusion乘客找不到ruby路径,查看ruby路径是否正确,或者是服务器更新中删除了符号链接还是其他原因。

    CentOS 7 红宝石 2.6.3 Rbenv

    which ruby
    # ~/.rbenv/shims/ruby
    sudo rm /usr/bin/ruby # old ruby
    sudo ln -s ~/.rbenv/shims/ruby /usr/bin/ruby # 2.6.3
     /usr/bin/ruby -v 
    # ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-linux]
    sudo service nginx restart
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-10
      • 1970-01-01
      • 2013-10-04
      • 2014-11-23
      • 2015-10-11
      • 2017-01-26
      • 2023-03-28
      • 1970-01-01
      相关资源
      最近更新 更多