Ran*_*aba 6 ruby-on-rails passenger nginx
只安装了一个版本的Ruby,我已经运行了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;
}
Run Code Online (Sandbox Code Playgroud)
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>'
Run Code Online (Sandbox Code Playgroud)
小智 10
我一直在解决类似的问题.
我的问题是配置的passenger_ruby /usr/bin/ruby;哪个指向不正确的版本.我的解决方案是设置命令输出的路径which ruby
在服务器上我使用rvm.但是还有其他红宝石的存在.
首先尝试测试环境.转到应用程序目录并运行passenger start.如果服务器已准备好运行应用程序,这将向您显示.修复错误......
如果消息仍然这样说
cannot load such file -- bundler/setup (LoadError)
Run Code Online (Sandbox Code Playgroud)
运行gem install bundler并重新检查.
然后在NGINX中将路径设置为从which ruby命令路径并重新启动应用程序.
你需要改变你的passenger_root价值观。就像文档中的这里一样
例如我的 nginx 配置:
...
passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini;
passenger_ruby /usr/bin/ruby;
...
Run Code Online (Sandbox Code Playgroud)