Apache-Passenger无法启动我的生产轨道应用程序

时间:2015-09-11 19:25:14

标签: ruby-on-rails ruby apache passenger

我是部署rails应用程序的新手,而且我在许多网站上读到的Apache / Passenger组合是最简单的组合之一;但是我遇到Passenger不想启动我的应用程序并在输入sudo tail -50 /var/log/apache2/error.log时显示以下错误消息 命令:

Could not spawn process for application /home/test/Documents/sites/depot:
An error occured while starting up the preloader.
Message from application: cannot load such file -- bundler/setup (LoadError)
/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:53:in `require'
/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:53:in `require'
/usr/lib/ruby/vendor_ruby/phusion_passenger/loader_shared_helpers.rb:406:in
`activate_gem'
...
age/Cor/Req/CheckoutSession.cpp:252 ]: [Client 1-1] Cannot checkout session
because a spawning error occurred. The identifier of the error is 6ce15bbe.
Please see earlier logs for details about the error.

我怀疑它与我的ruby安装有关,我使用rbenv并获得2.2.3版本,但在错误消息中它链接到我从未安装过的2.0.0版本。 我还怀疑它与我使用另一个指南中的这两个命令有关:

 sudo rm /usr/bin/ruby
 sudo ln -s /usr/local/bin/ruby /usr/bin/ruby

https://www.digitalocean.com/community/tutorials/how-to-deploy-a-rails-app-with-passenger-and-apache-on-ubuntu-14-04

如果有人知道如何解决这个问题的头痛,我会非常感激。

谢谢!

2 个答案:

答案 0 :(得分:1)

您可能需要在PassengerDefaultRuby文件中指定正确的httpd.conf

我的建议是使用他们的官方指南来安装乘客:

https://www.phusionpassenger.com/library/install/apache/

答案 1 :(得分:1)

在@dimakura和@CamdenNarzt留下的一些线索之后,我能够分两个阶段解决这个问题。

  1. 由于我怀疑Passenger使用的是错误版本的ruby,为了解决这个问题,我修改了位于/ etc / apache2 / mods-available /下的passenger.conf文件,并输出了哪个ruby 命令:
  2. 添加了一行(用你自己的红宝石输出代替)

    PassengerRuby /home/test/.rbenv/shims/ruby
    
    1. 重新启动的apache收到了来自应用程序的#34;不完整的响应"错误消息,检查日志并注意到正在使用正确版本的ruby,但收到错误消息:

      "缺少secret_token和secret_key_base用于'生产'环境,在config / secrets.yml"

    2. 中设置这些值

      按照本网站上的说明安装Figaro gem:https://www.twilio.com/blog/2015/02/managing-development-environment-variables-across-multiple-ruby-applications.html然后使用以下命令生成一个密钥:

      rake secret
      

      复制输出并打开我输入的config / application.yml文件:

      SECRET_KEY_BASE: [output key from rake secret command]
      

      重新启动Apache,它有效!!