Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Passenger with nginx: cannot load such file -- bundler/setup (LoadError)

There is only one version of Ruby installed, and I have run 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;
}

Error Log

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>'
like image 794
Rankaba Avatar asked Sep 29 '14 08:09

Rankaba


2 Answers

I have been solving similar issue.

My problem was in configuration of passenger_ruby /usr/bin/ruby; Which points to the incorrect version. My solution was to set the path to output of command which ruby

On the server I use rvm. But there are aslo other instalations of ruby.

At first try to test the environment. Go to the application directory and run passenger start. This will show you you, if the server is ready to run the app. Fix the errors...

If the message still says that

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

run gem install bundler and re-check.

Then set up the path in NGINX to path from which ruby command and restart the appllication.

like image 168
snoblucha Avatar answered Nov 11 '22 09:11

snoblucha


You need to change your passenger_root value. Like here in doc

For example my nginx config:

...
  passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini;
  passenger_ruby /usr/bin/ruby;
...
like image 1
Alexander Randa Avatar answered Nov 11 '22 08:11

Alexander Randa