Rails在生产中使用Apache+乘客错误



最后几天我试图把我的rails应用程序与apache和客运(没有rvm)在生产中,但仍然没有。在我的浏览器中,我得到这样一个错误:

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'的值。这是我第一次使用apache。我很感激你的帮助。

/var/log/输入/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'

gemifile:

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 binary而不是irb。

PassengerRuby /home/gre_stag/.rbenv/versions/2.2.2/bin/irb改为PassengerRuby /home/gre_stag/.rbenv/versions/2.2.2/bin/ruby

问题是"生产"环境中缺少"secret_key_base",我从这里按照Demi Magus的指导解决了这个问题。

最新更新