我是部署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
如果有人知道如何解决这个问题的头痛,我会非常感激。
谢谢!
答案 0 :(得分:1)
您可能需要在PassengerDefaultRuby
文件中指定正确的httpd.conf
。
我的建议是使用他们的官方指南来安装乘客:
答案 1 :(得分:1)
在@dimakura和@CamdenNarzt留下的一些线索之后,我能够分两个阶段解决这个问题。
添加了一行(用你自己的红宝石输出代替)
PassengerRuby /home/test/.rbenv/shims/ruby
重新启动的apache收到了来自应用程序的#34;不完整的响应"错误消息,检查日志并注意到正在使用正确版本的ruby,但收到错误消息:
"缺少secret_token和secret_key_base用于'生产'环境,在config / secrets.yml"
按照本网站上的说明安装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,它有效!!