乘客还是..? PhusionPassenger::ClassicRails::ApplicationSpawner 中的异常 RuntimeError

Passenger or.. ? Exception RuntimeError in PhusionPassenger::ClassicRails::ApplicationSpawner

昨天我需要在 Debian 6 上重启生产服务器,正常运行时间超过 3 年,并且上面有第 3 方配置的计费系统。我们没有得到那家公司的支持,也不会得到任何支持,因为 "reasons".

据我了解,自配置完成以来,服务器从未重新启动过。 此后,计费的 Web 界面在成功登录后显示 500 Internal Server Error。

我不知道该怎么办,检查了所有 oracle、计费系统和 apache 日志。现在我认为我定位了问题,apache 日志说:

[Thu May 12 13:32:18 2016] [notice] Apache/2.2.22 (Debian) Phusion_Passenger/3.0.11 configured -- resuming normal operations
[ pid=3030 thr=12538160 file=utils.rb:176 time=2016-05-12 16:51:49.463 ]: *** Exception RuntimeError in PhusionPassenger::ClassicRails::ApplicationSpawner (Bundler couldn't find some gems.Did you run `bundle install`?) (process 3030, thread #<Thread:0x17ea260>):
        from /opt/hydra/rails/arm_isp_old/releases/20120928113940/config/preinitializer.rb:18
        from /opt/hydra/rails/.rvm/rubies/ree-1.8.7-2011.03/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require'
        from /opt/hydra/rails/.rvm/rubies/ree-1.8.7-2011.03/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `require'
        from /opt/hydra/rails/.rvm/gems/ree-1.8.7-2011.03@global/gems/passenger-3.0.11/lib/phusion_passenger/classic_rails/application_spawner.rb:220:in `preload_application'
        from /opt/hydra/rails/.rvm/gems/ree-1.8.7-2011.03@global/gems/passenger-3.0.11/lib/phusion_passenger/classic_rails/application_spawner.rb:181:in `initialize_server'
        from /opt/hydra/rails/.rvm/gems/ree-1.8.7-2011.03@global/gems/passenger-3.0.11/lib/phusion_passenger/utils.rb:572:in `report_app_init_status'
        from /opt/hydra/rails/.rvm/gems/ree-1.8.7-2011.03@global/gems/passenger-3.0.11/lib/phusion_passenger/classic_rails/application_spawner.rb:174:in `initialize_server'
        from /opt/hydra/rails/.rvm/gems/ree-1.8.7-2011.03@global/gems/passenger-3.0.11/lib/phusion_passenger/abstract_server.rb:204:in `start_synchronously'
        from /opt/hydra/rails/.rvm/gems/ree-1.8.7-2011.03@global/gems/passenger-3.0.11/lib/phusion_passenger/abstract_server.rb:180:in `start'
        from /opt/hydra/rails/.rvm/gems/ree-1.8.7-2011.03@global/gems/passenger-3.0.11/lib/phusion_passenger/classic_rails/application_spawner.rb:149:in `start'
        from /opt/hydra/rails/.rvm/gems/ree-1.8.7-2011.03@global/gems/passenger-3.0.11/lib/phusion_passenger/spawn_manager.rb:219:in `spawn_rails_application'
        from /opt/hydra/rails/.rvm/gems/ree-1.8.7-2011.03@global/gems/passenger-3.0.11/lib/phusion_passenger/abstract_server_collection.rb:132:in `lookup_or_add'
        from /opt/hydra/rails/.rvm/gems/ree-1.8.7-2011.03@global/gems/passenger-3.0.11/lib/phusion_passenger/spawn_manager.rb:214:in `spawn_rails_application'
        from /opt/hydra/rails/.rvm/gems/ree-1.8.7-2011.03@global/gems/passenger-3.0.11/lib/phusion_passenger/abstract_server_collection.rb:82:in `synchronize'
        from /opt/hydra/rails/.rvm/gems/ree-1.8.7-2011.03@global/gems/passenger-3.0.11/lib/phusion_passenger/abstract_server_collection.rb:79:in `synchronize'
        from /opt/hydra/rails/.rvm/gems/ree-1.8.7-2011.03@global/gems/passenger-3.0.11/lib/phusion_passenger/spawn_manager.rb:213:in `spawn_rails_application'
        from /opt/hydra/rails/.rvm/gems/ree-1.8.7-2011.03@global/gems/passenger-3.0.11/lib/phusion_passenger/spawn_manager.rb:132:in `spawn_application'
        from /opt/hydra/rails/.rvm/gems/ree-1.8.7-2011.03@global/gems/passenger-3.0.11/lib/phusion_passenger/spawn_manager.rb:275:in `handle_spawn_application'
        from /opt/hydra/rails/.rvm/gems/ree-1.8.7-2011.03@global/gems/passenger-3.0.11/lib/phusion_passenger/abstract_server.rb:357:in `__send__'
        from /opt/hydra/rails/.rvm/gems/ree-1.8.7-2011.03@global/gems/passenger-3.0.11/lib/phusion_passenger/abstract_server.rb:357:in `server_main_loop'
        from /opt/hydra/rails/.rvm/gems/ree-1.8.7-2011.03@global/gems/passenger-3.0.11/lib/phusion_passenger/abstract_server.rb:206:in `start_synchronously'
        from /opt/hydra/rails/.rvm/gems/ree-1.8.7-2011.03@global/gems/passenger-3.0.11/helper-scripts/passenger-spawn-server:99

有趣的事情:

所以。我有麻烦了。需要帮助。

一些非常基本的东西:

  1. 看起来 rvm 用于安装 ruby。 (您可以通过堆栈跟踪路径中的 rvm 判断)
  2. Bundler 失败并显示错误消息 Bundler couldn't find some gems. Did you run 'bundle install'?。你 运行 捆绑安装了吗?您可能需要从 /opt/hydra/rails/ 目录执行此操作,以便 rvm 设置必要的环境变量,以便 bundler 可以找到 hydra 的 Gemfile。
  3. 是否正在使用 bundle exec 启动 Rails 服务器?这将确保捆绑器可以在 rails 服务器启动时包含 Gemfile 中的 gem。
  4. 您可能没有使用正确的 gemset。从堆栈跟踪来看,似乎正在使用 global。您有什么办法可以确定这是否是要使用的正确宝石集?你可以 运行:

    rvm gemset list
    

    显示机器上的 gemsets。也许有一个叫做 hydra 之类的东西?您可以 select 使用不同的 gemset:

    rvm gemset use <gemset name>
    

抱歉,我无法提供更多帮助。这些是您可以在没有 Ruby 或没有宝石的情况下结束的方法,以及可能的修复方法。除此之外,很难从提供的信息中分辨出来。

希望对您有所帮助!