0

私はRubyonRailsを初めて使用し、開発環境で実行するために必要なかなり大きなレガシーアプリを継承しています。開発ボックスとして使用するOSXMountainLion仮想マシンを最初から作成しました。私はルビー1.8.7とレール2.2.2で走っています。私はapache2用に最新のphusionパッセンジャーモジュールをインストールしています。

Safariにアプリを読み込もうとすると、この非常に一般的なエラーメッセージが表示されます。apacheログには何も表示されておらず、railsアプリのログにも何も表示されていません。起動時に一部のgemが見つからず、初期化フェーズが中止されていることは明らかです。または、RubyGems自体が正しいバージョンではありませんか?

この同じアプリケーションはrubyスクリプト/サーバーを使用して実行でき、Webブラウザーで他のRailsアプリを実行できるので、この特定のアプリケーションには何かがあるようです。

内部に潜んでいる可能性のある詳細を確認する方法はありますか?アプリの起動を正確に妨げている原因を教えてくれる重要なエラーメッセージにアクセスできるはずです。ある特定の宝石が存在しないか何かを見ることを期待します。それとも、このバックトレースは、私が理解していない非常に明白なことを言っていますか?

助けてくれてありがとう。

ポール。

追記:

乗客をスタンドアロンで試してみたところ(乗客は私のアプリディレクトリで開始)、アプリがブラウザに表示されます(静止画像を除く)。それは私のapache設定について何か言いますか?

エラーメッセージ:

Ruby on Rails application could not be started
Phusion Passenger has listed more information about the error below

The aplication has exited during startup (i.e. during the evaluation
of config/environment.rb). The error message may have been written to
the web server's log file. Please check the web server's log file
(i.e. not the (Rails) application's log file) to find out why the
application exited. If that doesn't help, then please use the
backtrace below to debug the problem.

Application root:
/Users/paul/Code/Site4/www_app
Backtrace:
#   File    Line    Location
0   /Users/paul/Code/Site4/www_app/config/environment.rb    29  in `exit'
1   /Users/paul/Code/Site4/www_app/config/environment.rb    29  
2   /Users/paul/.rvm/rubies/ruby-1.8.7-p371/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb   36  in `gem_original_require'
3   /Users/paul/.rvm/rubies/ruby-1.8.7-p371/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb   36  in `require'
4   /Users/paul/.rvm/gems/ruby-1.8.7-p371/gems/passenger-3.0.19/lib/phusion_passenger/classic_rails/application_spawner.rb  222 in `preload_application'
5   /Users/paul/.rvm/gems/ruby-1.8.7-p371/gems/passenger-3.0.19/lib/phusion_passenger/classic_rails/application_spawner.rb  181 in `initialize_server'
6   /Users/paul/.rvm/gems/ruby-1.8.7-p371/gems/passenger-3.0.19/lib/phusion_passenger/utils.rb  563 in `report_app_init_status'
7   /Users/paul/.rvm/gems/ruby-1.8.7-p371/gems/passenger-3.0.19/lib/phusion_passenger/classic_rails/application_spawner.rb  174 in `initialize_server'
8   /Users/paul/.rvm/gems/ruby-1.8.7-p371/gems/passenger-3.0.19/lib/phusion_passenger/abstract_server.rb    204 in `start_synchronously'
9   /Users/paul/.rvm/gems/ruby-1.8.7-p371/gems/passenger-3.0.19/lib/phusion_passenger/abstract_server.rb    180 in `start'
10  /Users/paul/.rvm/gems/ruby-1.8.7-p371/gems/passenger-3.0.19/lib/phusion_passenger/classic_rails/application_spawner.rb  149 in `start'
11  /Users/paul/.rvm/gems/ruby-1.8.7-p371/gems/passenger-3.0.19/lib/phusion_passenger/spawn_manager.rb  219 in `spawn_rails_application'
12  /Users/paul/.rvm/gems/ruby-1.8.7-p371/gems/passenger-3.0.19/lib/phusion_passenger/abstract_server_collection.rb 132 in `lookup_or_add'
13  /Users/paul/.rvm/gems/ruby-1.8.7-p371/gems/passenger-3.0.19/lib/phusion_passenger/spawn_manager.rb  214 in `spawn_rails_application'
14  /Users/paul/.rvm/gems/ruby-1.8.7-p371/gems/passenger-3.0.19/lib/phusion_passenger/abstract_server_collection.rb 82  in `synchronize'
15  /Users/paul/.rvm/gems/ruby-1.8.7-p371/gems/passenger-3.0.19/lib/phusion_passenger/abstract_server_collection.rb 79  in `synchronize'
16  /Users/paul/.rvm/gems/ruby-1.8.7-p371/gems/passenger-3.0.19/lib/phusion_passenger/spawn_manager.rb  213 in `spawn_rails_application'
17  /Users/paul/.rvm/gems/ruby-1.8.7-p371/gems/passenger-3.0.19/lib/phusion_passenger/spawn_manager.rb  132 in `spawn_application'
18  /Users/paul/.rvm/gems/ruby-1.8.7-p371/gems/passenger-3.0.19/lib/phusion_passenger/spawn_manager.rb  275 in `handle_spawn_application'
19  /Users/paul/.rvm/gems/ruby-1.8.7-p371/gems/passenger-3.0.19/lib/phusion_passenger/abstract_server.rb    357 in `__send__'
20  /Users/paul/.rvm/gems/ruby-1.8.7-p371/gems/passenger-3.0.19/lib/phusion_passenger/abstract_server.rb    357 in `server_main_loop'
21  /Users/paul/.rvm/gems/ruby-1.8.7-p371/gems/passenger-3.0.19/lib/phusion_passenger/abstract_server.rb    206 in `start_synchronously'
22  /Users/paul/.rvm/gems/ruby-1.8.7-p371/gems/passenger-3.0.19/helper-scripts/passenger-spawn-server   99  

apache構成:

LoadModule passenger_module /Users/paul/.rvm/gems/ruby-1.8.7-p371/gems/passenger-3.0.19/ext/apache2/mod_passenger.so
PassengerRoot /Users/paul/.rvm/gems/ruby-1.8.7-p371/gems/passenger-3.0.19
PassengerRuby /Users/paul/.rvm/wrappers/ruby-1.8.7-p371/ruby

<Directory "/Users/paul/Code">
    Order allow,deny
    Allow from all
</Directory>

NameVirtualHost *:80

<VirtualHost *:80>
    RailsEnv development
    ServerName www.local.com
    DocumentRoot /Users/paul/Code/Site4/www_app/public
    <Directory /Users/paul/Code/Site4/www_app/public>
       AllowOverride all
       Options -MultiViews
    </Directory>
 </VirtualHost>

物事のその他のバージョン:

rvm list

rvm rubies

=* ruby-1.8.7-p371 [ i686 ]

# => - current
# =* - current && default
#  * - default

DBDev:~ paul$ gem --version
1.8.25
DBDev:~ paul$ rails --version
Rails 2.2.2

宝石リスト:

*** LOCAL GEMS ***

actionmailer (2.2.2)
actionpack (2.2.2)
activemerchant (1.4.1)
activemodel (3.2.11)
activerecord (2.2.2)
activeresource (2.2.2)
activesupport (3.2.11, 2.2.2)
archive-tar-minitar (0.5.2)
archive-zip (0.3.0)
arel (3.0.2)
builder (3.1.4, 3.0.4)
bundler (1.2.3)
daemon_controller (1.1.1)
deep_merge (0.1.0)
differ (0.1.1)
fastercsv (1.5.0)
fastthread (1.0.7)
haml (2.2.5)
i18n (0.6.1)
io-like (0.3.0)
multi_json (1.5.0)
mysql (2.9.0)
paperclip (2.3.5)
passenger (3.0.19)
rack (1.5.2, 1.5.1)
rails (2.2.2)
rake (10.0.3, 0.8.7)
rmagick (2.13.2)
rubygems-bundler (1.1.0)
rvm (1.11.3.6)
sqlite3 (1.3.7)
tzinfo (0.3.35)
will_paginate (2.3.16)

宝石環境:

RubyGems Environment:
  - RUBYGEMS VERSION: 1.8.25
  - RUBY VERSION: 1.8.7 (2012-10-12 patchlevel 371) [i686-darwin12.2.1]
  - INSTALLATION DIRECTORY: /Users/paul/.rvm/gems/ruby-1.8.7-p371
  - RUBY EXECUTABLE: /Users/paul/.rvm/rubies/ruby-1.8.7-p371/bin/ruby
  - EXECUTABLE DIRECTORY: /Users/paul/.rvm/gems/ruby-1.8.7-p371/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86-darwin-12
  - GEM PATHS:
     - /Users/paul/.rvm/gems/ruby-1.8.7-p371
     - /Users/paul/.rvm/gems/ruby-1.8.7-p371@global
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - http://rubygems.org/

environment.rbファイル:

# Be sure to restart your server when you modify this file

# Uncomment below to force Rails into production mode when
# you don't control web/app server and can't set it the proper way
# ENV['RAILS_ENV'] ||= 'production'
ENV['RAILS_ENV'] = 'development'

# Specifies gem version of Rails to use when vendor/rails is not present
RAILS_GEM_VERSION = '2.2.2' unless defined? RAILS_GEM_VERSION

# Bootstrap the Rails environment, frameworks, and default configuration
require File.join(File.dirname(__FILE__), 'boot')

# Global libraries
#require 'rubygems'
gem 'activemerchant', '=1.4.1'
require 'active_merchant'
require 'deep_merge'
require 'fastercsv'
require 'paperclip'

require 'digest/sha1'
require 'net/http'
require 'uri'

# Default host/app types.
if ENV['DEB_HOST_TYPE'].to_s.strip.empty? then
  puts 'ERROR: Environment variable DEB_HOST_TYPE is not set!  (Did you remember to export it?)  Exiting ...'
  exit 1
end
$DEB_HOST_TYPE = ENV['DEB_HOST_TYPE']
$DEB_APP_TYPE = 'admin'

Rails::Initializer.run do |config|
  config.time_zone = 'UTC'
  config.active_record.colorize_logging = false
  config.action_controller.session_store = :active_record_store
end
4

1 に答える 1

0

次の行のenvironment.rbファイルで問題が見つかりました。

# Default host/app types.
if ENV['DEB_HOST_TYPE'].to_s.strip.empty? then
  puts 'ERROR: Environment variable DEB_HOST_TYPE is not set!  (Did you remember to export it?)  Exiting ...'
  exit 1
end

環境変数は実際に空だったので、出口が呼び出されていました。puts文字列は、私が見たものには表示されませんでした。私はついに出入りして出口を編集しましたが、nilを文字列に変換できないというエラーが発生しました。ENV ['DEB_HOST_TYPE']の値を本来あるべき値にハードコーディングすると、アプリが実行されます。

また、putsを$ stderr.putsに変更したときに、乗客によって生成されたエラーページにメッセージが表示されたことにも言及したいと思います。

于 2013-02-14T04:52:43.423 に答える