2014-09-29 84 views
5

只安装了一个Ruby版本,并且我运行了gem install bundler && bundle install带nginx的乘客:无法加载这样的文件 - bundler/setup(LoadError)

的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>' 

回答

0

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

例如我的nginx的配置:

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

'passenger-config --root'给了我同样的东西作为'passenger_root'值 – 2014-09-29 09:13:02

10

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

我的问题是在配置passenger_ruby /usr/bin/ruby;哪些指向不正确的版本。我的解决方案是设置命令的输出路径which ruby

在服务器上我使用rvm。但是还有其他的ruby安装。

首先尝试测试环境。转到应用程序目录并运行passenger start。这会告诉你,如果服务器准备好运行应用程序。修正错误...

如果消息仍然说

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

运行gem install bundler并重新检查。

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

+0

非常感谢...解决了我的问题:) – 2016-03-17 10:18:41

+0

工作就像一个魅力! – 2017-12-17 16:03:25

相关问题