Reputation: 519
There is only one version of Ruby installed, and I have run gem install bundler && bundle install
.
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>'
Upvotes: 6
Views: 7809
Reputation: 2714
The phusion passenger could not find the ruby path, see if the ruby path is correct, or if the symbolic link was removed in the server update or other reason.
CentOS 7 Ruby 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
Upvotes: 0
Reputation: 129
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.
Upvotes: 10
Reputation: 868
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;
...
Upvotes: 1