2014-09-29 39 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

相關問題