0

Rails アプリを Ubuntu 11.10 サーバーで実行する方法を教えてください。

約 2 日間使用していますが、ここのスクリーン ショットに示されている部分を通過できません。私が知る限り、rvm、レール、ルビー、カピストラーノ、フュージョンパッセンジャーはすべて正しくインストールされています。私が抱えている問題は、データベース(mysql)またはデータベースと通信するためのレールの取得に関係していると思います(以下のエラーメッセージから推測しています)。

Error message:
undefined method `active_record' for #<Rails::Application::Configuration:0x00000002e43fe8>
Exception class:
NoMethodError
Application root:
/var/www/jamesbay/blog/current

私の主な質問は、これをデバッグするにはどうすればよいですか? リストにある config.ru ファイル、application.rb、および environment.rb を変更しようとしましたが、解決策はありません。これらのエラーが何を意味するのか完全にはわかりません!

サーバー上のディレクトリにカピストラーノを適切にデプロイしています。git リポジトリを更新し、さまざまな「cap」コマンドを使用して、ローカル マシンからサーバーへの実際の展開を処理できます。

どんな助けでも大歓迎です!(私はレールを約 2 週間しか使用していませんが、このプロジェクトのおかげで、サーバー管理について TON を既に学んでいます)

エラー

0   /usr/local/rvm/gems/ruby-1.9.3-p286/gems/railties-3.2.8/lib/rails/railtie/configuration.rb  85  in `method_missing'
1   /home/jamesbay/blog/releases/20121026055113/config/application.rb   54  in `'
2   /home/jamesbay/blog/releases/20121026055113/config/application.rb   13  in `'
3   /home/jamesbay/blog/releases/20121026055113/config/application.rb   12  in `'
4   /home/jamesbay/blog/releases/20121026055113/config/environment.rb   2   in `require'
5   /home/jamesbay/blog/releases/20121026055113/config/environment.rb   2   in `'
6   config.ru   3   in `require'
7   config.ru   3   in `block in '
8   /usr/local/rvm/gems/ruby-1.9.3-p286/gems/rack-1.4.1/lib/rack/builder.rb 51  in `instance_eval'
9   /usr/local/rvm/gems/ruby-1.9.3-p286/gems/rack-1.4.1/lib/rack/builder.rb 51  in `initialize'
10  config.ru   1   in `new'
11  config.ru

設定

Rails 3.2.8
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]
rvm 1.16.17 (stable)
Capistrano 2.13.4
Phusion Passenger 3.0.17

RubyGems Environment:

- RUBYGEMS VERSION: 1.8.24
- RUBY VERSION: 1.9.3 (2012-04-20 patchlevel 194) [x86_64-linux]
- INSTALLATION DIRECTORY: /usr/local/rvm/gems/ruby-1.9.3-p194
- RUBY EXECUTABLE: /usr/local/rvm/rubies/ruby-1.9.3-p194/bin/ruby
- EXECUTABLE DIRECTORY: /usr/local/rvm/gems/ruby-1.9.3-p194/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-linux
- GEM PATHS:
 - /usr/local/rvm/gems/ruby-1.9.3-p194
 - /usr/local/rvm/gems/ruby-1.9.3-p194@global
- GEM CONFIGURATION:
 - :update_sources => true
 - :verbose => true
 - :benchmark => false
 - :backtrace => false
 - :bulk_threshold => 1000
- REMOTE SOURCES:
 - http://rubygems.org/

使用した宝石 actionmailer (3.2.8) actionpack (3.2.8) activemodel (3.2.8) activerecord (3.2.8) activeresource (3.2.8) activesupport (3.2.8) arel (3.0.2) bcrypt-ruby (3.0. 1) ビルダー (3.0.4) バンドラー (1.2.1) カピストラーノ (2.13.4) コーヒーレール (3.2.2) コーヒースクリプト (2.2.0) コーヒースクリプトソース (1.4.0) エルビス (2.7. 0) execjs (1.4.0) ハイライン (1.6.15) ハイク (1.2.1) i18n (0.6.1) ジャーニー (1.0.4) jquery-rails (2.1.3) json (1.7.5) メール (2.4. 4) mime-types (1.19) multi_json (1.3.6) mysql2 (0.3.11) net-scp (1.0.4) net-sftp (2.0.5) net-ssh (2.6.1) net-ssh-gateway ( 1.1.0) ポリグロット (0.3.3) ラック (1.4.1) ラックキャッシュ (1.2) ラック-ssl (1.3.2) ラックテスト (0.6.2) レール (3.2.8) レールティー (3.2.8) rake (0.9.2.2) rdoc (3.12) ruby​​gems-bundler (1.1.0) rvm (1.11.3.5) sass (3.2.1) sass-rails (3.2.5) スプロケット (2.1.3) sqlite3 (1.3.6)トール (0.16.0) チルト (1.3.3) ツリートップ (1.4.11) tzinfo (0.3.33) 醜い (1.3.0)

--

これは、ブラウザでアプリを開いた直後にログ ファイルに表示されるものです。

    [Fri Oct 26 07:46:15 2012] [notice] Graceful restart requested, doing restart
    PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626/gd.so' - /usr/lib/php5/20090626/gd.so: cannot open shared object file: No such file or directory in Unknown on line 0
    PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626/mcrypt.so' - /usr/lib/php5/20090626/mcrypt.so: cannot open shared object file: No such file or directory in Unknown on line 0
    [Fri Oct 26 07:46:15 2012] [notice] Apache/2.2.20 (Ubuntu) DAV/2 SVN/1.6.12 PHP/5.3.6-13ubuntu3.7 with Suhosin-Patch Phusion_Passenger/3.0.17 configured -- resuming normal operations
    [ pid=30885 thr=4411480 file=utils.rb:176 time=2012-10-26 12:56:40.708 ]: *** Exception NoMethodError in PhusionPassenger::Rack::ApplicationSpawner (undefined method `active_record' for #<Rails::Application::Configuration:0x00000001931f38>) (process 30885, thread #<Thread:0x0000000086a0b0>):
            from /usr/local/rvm/gems/ruby-1.9.3-p286/gems/railties-3.2.8/lib/rails/railtie/configuration.rb:85:in `method_missing'
            from /home/jamesbay/blog/releases/20121026055113/config/application.rb:54:in `<class:Application>'
            from /home/jamesbay/blog/releases/20121026055113/config/application.rb:13:in `<module:Blog>'
            from /home/jamesbay/blog/releases/20121026055113/config/application.rb:12:in `<top (required)>'
            from /home/jamesbay/blog/releases/20121026055113/config/environment.rb:2:in `require'
            from /home/jamesbay/blog/releases/20121026055113/config/environment.rb:2:in `<top (required)>'
            from config.ru:3:in `require'
            from config.ru:3:in `block in <main>'
            from /usr/local/rvm/gems/ruby-1.9.3-p286/gems/rack-1.4.1/lib/rack/builder.rb:51:in `instance_eval'
            from /usr/local/rvm/gems/ruby-1.9.3-p286/gems/rack-1.4.1/lib/rack/builder.rb:51:in `initialize'
            from config.ru:1:in `new'
            from config.ru:1:in `<main>'
            from /usr/local/rvm/gems/ruby-1.9.3-p286/gems/passenger-3.0.17/lib/phusion_passenger/rack/application_spawner.rb:225:in `eval'
            from /usr/local/rvm/gems/ruby-1.9.3-p286/gems/passenger-3.0.17/lib/phusion_passenger/rack/application_spawner.rb:225:in `load_rack_app'
            from /usr/local/rvm/gems/ruby-1.9.3-p286/gems/passenger-3.0.17/lib/phusion_passenger/rack/application_spawner.rb:157:in `block in initialize_server'
            from /usr/local/rvm/gems/ruby-1.9.3-p286/gems/passenger-3.0.17/lib/phusion_passenger/utils.rb:563:in `report_app_init_status'
            from /usr/local/rvm/gems/ruby-1.9.3-p286/gems/passenger-3.0.17/lib/phusion_passenger/rack/application_spawner.rb:154:in `initialize_server'
            from /usr/local/rvm/gems/ruby-1.9.3-p286/gems/passenger-3.0.17/lib/phusion_passenger/abstract_server.rb:204:in `start_synchronously'
            from /usr/local/rvm/gems/ruby-1.9.3-p286/gems/passenger-3.0.17/lib/phusion_passenger/abstract_server.rb:180:in `start'
            from /usr/local/rvm/gems/ruby-1.9.3-p286/gems/passenger-3.0.17/lib/phusion_passenger/rack/application_spawner.rb:129:in `start'
            from /usr/local/rvm/gems/ruby-1.9.3-p286/gems/passenger-3.0.17/lib/phusion_passenger/spawn_manager.rb:253:in `block (2 levels) in spawn_rack_application'
            from /usr/local/rvm/gems/ruby-1.9.3-p286/gems/passenger-3.0.17/lib/phusion_passenger/abstract_server_collection.rb:132:in `lookup_or_add'
            from /usr/local/rvm/gems/ruby-1.9.3-p286/gems/passenger-3.0.17/lib/phusion_passenger/spawn_manager.rb:246:in `block in spawn_rack_application'
            from /usr/local/rvm/gems/ruby-1.9.3-p286/gems/passenger-3.0.17/lib/phusion_passenger/abstract_server_collection.rb:82:in `block in synchronize'
            from <internal:prelude>:10:in `synchronize'
            from /usr/local/rvm/gems/ruby-1.9.3-p286/gems/passenger-3.0.17/lib/phusion_passenger/abstract_server_collection.rb:79:in `synchronize'
            from /usr/local/rvm/gems/ruby-1.9.3-p286/gems/passenger-3.0.17/lib/phusion_passenger/spawn_manager.rb:244:in `spawn_rack_application'
            from /usr/local/rvm/gems/ruby-1.9.3-p286/gems/passenger-3.0.17/lib/phusion_passenger/spawn_manager.rb:137:in `spawn_application'
            from /usr/local/rvm/gems/ruby-1.9.3-p286/gems/passenger-3.0.17/lib/phusion_passenger/spawn_manager.rb:275:in `handle_spawn_application'
            from /usr/local/rvm/gems/ruby-1.9.3-p286/gems/passenger-3.0.17/lib/phusion_passenger/abstract_server.rb:357:in `server_main_loop'
            from /usr/local/rvm/gems/ruby-1.9.3-p286/gems/passenger-3.0.17/lib/phusion_passenger/abstract_server.rb:206:in `start_synchronously'
            from /usr/local/rvm/gems/ruby-1.9.3-p286/gems/passenger-3.0.17/helper-scripts/passenger-spawn-server:99:in `<main>'

rails 1.9.3-p194 (私の開発マシンと同じ) に切り替えて p286 を削除した後、自分のサイトにアクセスすると、「お探しのページは存在しません」というメッセージが RED で表示されます。

これは、error.log ファイルの出力です。

Rails Error: Unable to access log file. Please ensure that /home/jamesbay/blog/releases/20121026205006/log/production.log exists and is chmod 0666. The log level has been raised to WARN and the output directed to STDERR until the problem is fixed.

ActionController::RoutingError (No route matches [GET] "/jamesbay"):
  actionpack (3.2.8) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call'
  actionpack (3.2.8) lib/action_dispatch/middleware/show_exceptions.rb:56:in `call'
  railties (3.2.8) lib/rails/rack/logger.rb:26:in `call_app'
  railties (3.2.8) lib/rails/rack/logger.rb:16:in `call'
  actionpack (3.2.8) lib/action_dispatch/middleware/request_id.rb:22:in `call'
  rack (1.4.1) lib/rack/methodoverride.rb:21:in `call'
  rack (1.4.1) lib/rack/runtime.rb:17:in `call'
  activesupport (3.2.8) lib/active_support/cache/strategy/local_cache.rb:72:in `call'
  rack (1.4.1) lib/rack/lock.rb:15:in `call'
  rack-cache (1.2) lib/rack/cache/context.rb:136:in `forward'
  rack-cache (1.2) lib/rack/cache/context.rb:245:in `fetch'
  rack-cache (1.2) lib/rack/cache/context.rb:185:in `lookup'
  rack-cache (1.2) lib/rack/cache/context.rb:66:in `call!'
  rack-cache (1.2) lib/rack/cache/context.rb:51:in `call'
  railties (3.2.8) lib/rails/engine.rb:479:in `call'
  railties (3.2.8) lib/rails/application.rb:223:in `call'
  railties (3.2.8) lib/rails/railtie/configurable.rb:30:in `method_missing'
  passenger (3.0.17) lib/phusion_passenger/rack/request_handler.rb:96:in `process_request'
  passenger (3.0.17) lib/phusion_passenger/abstract_request_handler.rb:516:in `accept_and_process_next_request'
  passenger (3.0.17) lib/phusion_passenger/abstract_request_handler.rb:274:in `main_loop'
  passenger (3.0.17) lib/phusion_passenger/rack/application_spawner.rb:206:in `start_request_handler'
  passenger (3.0.17) lib/phusion_passenger/rack/application_spawner.rb:171:in `block in handle_spawn_application'
  passenger (3.0.17) lib/phusion_passenger/utils.rb:470:in `safe_fork'
  passenger (3.0.17) lib/phusion_passenger/rack/application_spawner.rb:166:in `handle_spawn_application'
  passenger (3.0.17) lib/phusion_passenger/abstract_server.rb:357:in `server_main_loop'
  passenger (3.0.17) lib/phusion_passenger/abstract_server.rb:206:in `start_synchronously'
  passenger (3.0.17) lib/phusion_passenger/abstract_server.rb:180:in `start'
  passenger (3.0.17) lib/phusion_passenger/rack/application_spawner.rb:129:in `start'
  passenger (3.0.17) lib/phusion_passenger/spawn_manager.rb:253:in `block (2 levels) in spawn_rack_application'
  passenger (3.0.17) lib/phusion_passenger/abstract_server_collection.rb:132:in `lookup_or_add'
  passenger (3.0.17) lib/phusion_passenger/spawn_manager.rb:246:in `block in spawn_rack_application'
  passenger (3.0.17) lib/phusion_passenger/abstract_server_collection.rb:82:in `block in synchronize'
  <internal:prelude>:10:in `synchronize'
  passenger (3.0.17) lib/phusion_passenger/abstract_server_collection.rb:79:in `synchronize'
  passenger (3.0.17) lib/phusion_passenger/spawn_manager.rb:244:in `spawn_rack_application'
  passenger (3.0.17) lib/phusion_passenger/spawn_manager.rb:137:in `spawn_application'
  passenger (3.0.17) lib/phusion_passenger/spawn_manager.rb:275:in `handle_spawn_application'
  passenger (3.0.17) lib/phusion_passenger/abstract_server.rb:357:in `server_main_loop'
  passenger (3.0.17) lib/phusion_passenger/abstract_server.rb:206:in `start_synchronously'
  passenger (3.0.17) helper-scripts/passenger-spawn-server:99:in `<main>'
4

1 に答える 1

0

私は自分の問題を解決しました。

主な問題は、複数のバージョンの ruby​​ がインストールされ、rvm で管理されていたことが原因でした。これは、データベースを適切に初期化しておらず、Apache パスを適切に設定していないことと相まって、エラーにつながりました。

デフォルトの ruby​​ バージョンは ruby​​-1.9.3-p286 に設定されていましたが、開発マシンでは ruby​​-1.9.3-p194 を使用していました。以前に両方のバージョンをサーバーにインストールしましたが、デフォルトを選択しませんでした。展開する前に、必ず既定のバージョンを選択してください。

サブ URI を使用していますが、シンボリック リンクでパスを適切に設定していませんでした。たとえば、/home/username/appName 内にアプリケーション ファイルがあり、パブリック ディレクトリは /home/username/appName/current/public にあります。DocumentRoot /var/www 内に、パブリック ディレクトリ パスを指す「appName」というシンボリック リンクを作成しました。私が失敗したのは、/etc/apache2/sites-available/default ファイルで RackBasedURI パスを定義していなかったことです。

このプロセスはここで参照されています: http://www.modrails.com/documentation/Users%20guide%20Apache.html#deploying_rack_to_sub_uri

于 2012-10-28T19:47:28.887 に答える