我的 Rails 应用程序不工作,因为乘客不工作

My Rails App is not working because passenger is not working

在服务器中,我安装了 rails、rvm、apache2 和 passenger 安装后我将我的 rails 应用程序拖放到服务器,它显示 this error。

并且在 apache2/error/log 中,它显示捆绑程序加载错误

App 9573 stdout:
[ 2017-09-21 09:38:10.4331 9419/7f8c7920d700 age/Cor/App/Implementation.cpp:304 ]: Could not spawn process for application /var/www/html/vpn_check: An error occurred while starting up the preloader.
  Error ID: 9c91492c
  Error details saved to: /tmp/passenger-error-lZdumg.html
  Message from application: cannot load such file -- bundler/setup (LoadError)
  /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
  /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
  /usr/lib/ruby/vendor_ruby/phusion_passenger/loader_shared_helpers.rb:430:in `activate_gem'
  /usr/lib/ruby/vendor_ruby/phusion_passenger/loader_shared_helpers.rb:297:in `block in run_load_path_setup_code'
  /usr/lib/ruby/vendor_ruby/phusion_passenger/loader_shared_helpers.rb:435:in `running_bundler'
  /usr/lib/ruby/vendor_ruby/phusion_passenger/loader_shared_helpers.rb:296:in `run_load_path_setup_code'
  /usr/share/passenger/helper-scripts/rack-preloader.rb:100:in `preload_app'
  /usr/share/passenger/helper-scripts/rack-preloader.rb:156:in `<module:App>'
  /usr/share/passenger/helper-scripts/rack-preloader.rb:30:in `<module:PhusionPassenger>'
  /usr/share/passenger/helper-scripts/rack-preloader.rb:29:in `<main>'

我不确定为什么会收到此错误。谁能帮帮我。

谢谢

您必须在您的 apache 配置中配置 rvm ruby 版本。 在您的情况下,Passenger 在 /usr/lib/ruby 中使用 ruby 版本,而不是 rvm ruby 版本。

如果只使用一个 rvm gemset,则必须在 Passenger apache 模块 (apache/mods-available/passenger.conf) 中配置 ruby 版本和 ruby gemset :

PassengerRoot /home/user/.rvm/gems/ruby-version@gemset/gems/passenger-5.1.2
PassengerDefaultRuby /home/user/.rvm/gems/ruby-version@gemset/wrappers/ruby

如果您有多个应用程序 运行 不同的 rvm 配置,您必须在 vhost 文件中指定 ruby 版本。

例子:

<Location /appli1>
  PassengerRuby /home/user/.rvm/gems/ruby-2.1@app1/wrappers/ruby
  RackEnv production
  RackBaseURI /appli1
  Options -MultiViews
</Location>
<Location /appli2>
  PassengerRuby /home/user/.rvm/gems/ruby-2.2@app2/wrappers/ruby
  RackEnv production
  RackBaseURI /appli2
  Options -MultiViews
</Location>

这还没有完成,所以我按照它的顺序重新安装了 passenger 及其依赖项。参考此 link 安装 passenger 及其依赖项。

谢谢大家的帮助。