nginx的乘客:无法加载此类文件-捆绑程序/设置(LoadError)

问题描述 投票:6回答:3

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

nginx conf

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
3个回答
10
投票

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

我的问题是在配置passenger_ruby /usr/bin/ruby;时指出了错误的版本。我的解决方案是设置命令which ruby

输出的路径

在服务器上,我使用rvm。但是,还有其他一些红宝石安装。

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

如果消息仍然显示该信息,则>]

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

运行gem install bundler并重新检查。

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


1
投票

您需要更改passenger_root值。像here in doc


0
投票

乘飞机的乘客找不到红宝石路径,查看红宝石路径是否正确,或者是否在服务器更新或其他原因中删除了符号链接。

© www.soinside.com 2019 - 2024. All rights reserved.