ruby-on-rails - Rails 在生产中出现 Apache+passenger 错误

标签 ruby-on-rails apache

最后几天,我正在尝试使用 apache 和乘客(没有 rvm)将我的 rails 应用程序投入生产,但仍然没有。在我的浏览器中,我收到如下错误:

We're sorry, but something went wrong.
We've been notified about this issue and we'll take a look at it shortly.

在我的终端中时给 tail /var/log/apache2/error.log我明白了:
 /home/gre_stag/.rbenv/versions/2.2.2/lib/ruby/2.2.0/irb/ruby-lex.rb:230:in `catch'
  /home/gre_stag/.rbenv/versions/2.2.2/lib/ruby/2.2.0/irb/ruby-lex.rb:230:in `each_top_level_statement'
  /home/gre_stag/.rbenv/versions/2.2.2/lib/ruby/2.2.0/irb.rb:485:in `eval_input'
  /home/gre_stag/.rbenv/versions/2.2.2/lib/ruby/2.2.0/irb.rb:395:in `block in start'
  /home/gre_stag/.rbenv/versions/2.2.2/lib/ruby/2.2.0/irb.rb:394:in `catch'
  /home/gre_stag/.rbenv/versions/2.2.2/lib/ruby/2.2.0/irb.rb:394:in `start'
  /home/gre_stag/.rbenv/versions/2.2.2/bin/irb:11:in `<main>'


[ 2015-08-07 12:33:23.9794 4936/7f1db502e700 age/Cor/Req/CheckoutSession.cpp:252 ]: [Client 1-1] Cannot checkout session because a spawning error occurred. The identifier of the error is cfaf3a49. Please see earlier logs for details about the error.

在/etc/apache2/sites-available/depot.conf 我有这个代码:
<VirtualHost *:80>
    PassengerRuby /home/gre_stag/.rbenv/versions/2.2.2/bin/irb
    ServerName depot.local
    ServerAlias www.depot.local
    ServerAdmin webmaster@localhost
    PassengerRoot /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini
    DocumentRoot /home/gre_stag/RoR/workspace/depot/public
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    <Directory /home/gre_stag/RoR/workspace/depot/public>
        Options FollowSymLinks Includes ExecCGI
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

我不确定“PassengerRuby”的值(value)。
这是我第一次使用 apache。我将不胜感激任何帮助。

更新

/var/log/apache2/error.log
home/gre_stag/RoR/workspace/Agile_web_dev/depot: An error occured while starting up the preloader.
  Error ID: 78043345
  Error details saved to: /tmp/passenger-error-zWC057.html
  Message from application: YAML syntax error occurred while parsing /home/gre_stag/RoR/workspace/Agile_web_dev/depot/config/database.yml. Please note that YAML must be consistently indented using spaces. Tabs are not allowed. Error: (<unknown>): mapping values are not allowed in this context at line 25 column 11 (RuntimeError)
  /home/gre_stag/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.2.1/lib/rails/application/configuration.rb:115:in `rescue in database_configuration'
  /home/gre_stag/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.2.1/lib/rails/application/configuration.rb:98:in `database_configuration'
  /home/gre_stag/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/railtie.rb:117:in `block (2 levels) in <class:Railtie>'
  /home/gre_stag/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/activesupport-4.2.1/lib/active_support/lazy_load_hooks.rb:38:in `instance_eval'
  /home/gre_stag/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/activesupport-4.2.1/lib/active_support/lazy_load_hooks.rb:38:in `execute_hook'
  /home/gre_stag/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/activesupport-4.2.1/lib/active_support/lazy_load_hooks.rb:45:in `block in run_load_hooks'
  /home/gre_stag/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/activesupport-4.2.1/lib/active_support/lazy_load_hooks.rb:44:in `each'
  /home/gre_stag/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/activesupport-4.2.1/lib/active_support/lazy_load_hooks.rb:44:in `run_load_hooks'

吉米文件:
source 'https://rubygems.org'

gem 'rails', '4.2.1'
gem 'sass-rails', '~> 5.0'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.1.0'
# See https://github.com/rails/execjs#readme for more supported runtimes
# gem 'therubyracer', platforms: :ruby
gem 'jquery-rails'
gem 'jquery-ui-rails'
gem 'turbolinks'
gem 'jbuilder', '~> 2.0'
gem 'sdoc', '~> 0.4.0', group: :doc
gem 'bcrypt', '~> 3.1.7'
# Use Unicorn as the app server
# gem 'unicorn'
# Use Capistrano for deployment
# gem 'capistrano-rails', group: :development

group :development, :test do
  gem 'byebug'
  gem 'web-console', '~> 2.0'
  gem 'spring'
  gem 'sqlite3'

group :test do
  gem 'minitest-reporters', '1.0.5'
  gem 'mini_backtrace',     '0.1.3'
  gem 'guard-minitest',     '2.3.1'
end
group :production do
  gem 'mysql2'
end
end

最佳答案

您应该使用 ruby​​ 二进制文件而不是 irb。

更改 PassengerRuby /home/gre_stag/.rbenv/versions/2.2.2/bin/irbPassengerRuby /home/gre_stag/.rbenv/versions/2.2.2/bin/ruby

关于ruby-on-rails - Rails 在生产中出现 Apache+passenger 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31874997/

相关文章:

apache - 从 Tomcat 提供静态内容要慢多少?

sql - 如何根据 ActiveRecord 中的条件在每第 n 个项目中插入?

ruby-on-rails - Rails 欢迎页面尝试在 Nginx + Passenger 中获取 rails.png 时出现错误 404

css - Rails Simple Form Bootstrap - 复选框内联垂直对齐

php - 如何在 PHP (MAMP) 中启用错误报告?

发送邮件时来自字段的 PHP()

ruby-on-rails - 使用 RSpec 期望方法调用和代理到原始方法

mysql - 如何在 Rails 中使用 ActiveRecord::Base 运行源命令

java - Apache Thrift 2-way SSL 相互认证

java - 如何使用 apache 事件用户模型跳过 xlsm 文件中的行