レール + パッセンジャー + Apache の実稼働デプロイメント:「Rails 2.3.5 gem がありません」がインストールされています

StackOverflow https://stackoverflow.com/questions/4227640

質問

約 1 週間ウェブ上を探しましたが、問題の解決策が見つかりませんでした。Ruby on Rails アプリケーションを実稼働環境の Ubuntu 10.04 サーバー エディション ボックスにデプロイしようとしています。Apache2.2とPassenger3.0.0をRuby 1.8.7、Rails 2.3.5、RubyGems 1.3.7とともにインストールしました。私のRailsアプリケーションは次のとおりです /var/rails_app_name/ また、rubygems/ruby は次の場所にインストールされます。 /var/lib/gems/1.8

私はubuntu 10.04(guiエディション)を搭載したテストサーバーを持っており、同じセットアップと構成を実行していますが、これは魅力的に機能します。唯一の違いは、私の Rails アプリケーションのルートがユーザーのローカルフォルダーにあることです。 /home/username/rails_app_name/

私の問題は、運用サーバー上で、Passenger が次のエラーを表示することです。 "Missing the Rails 2.3.5 gem. Please 'gem install -v=2.3.5 rails'. update your RAILS_GEM_VERSION...."gem 環境を実行して、リストされている両方の gem ディレクトリに Rails gem をインストールしました。いくつかの構成結果を次に示します。

%> gem environment 
  • ルビージェムのバージョン:1.3.7
  • ルビーのバージョン:1.8.7 (2010-01-10 パッチレベル 249) [i486-linux]
  • インストールディレクトリ:/var/lib/gems/1.8
  • Ruby 実行可能ファイル:/usr/bin/ruby1.8
  • 実行可能ディレクトリ:/var/lib/gems/1.8/bin
  • Rubygems プラットフォーム:
    • ルビー
    • x86-linux
  • 宝石のパス:
    • /var/lib/gems/1.8
    • /home/sros/.gem/ruby/1.8
  • 宝石の構成:
    • :update_sources => true
    • :verbose => true
    • :ベンチマーク => false
    • :バックトレース => false
    • :bulk_threshold => 1000
  • リモートソース:

    %> 宝石リスト

    ActionMailer(2.3.5)ActionPack(2.3.5)ActiveModel(3.0.3)ActivereCord(2.3.5)Activeresource(2.3.5)Activesupport(3.0.3、2.3.5)Acts_as_audited(1.1.1)Arel(2.0。 4)authlogic(2.1.6)ビルダー(2.1.2)cancan(1.4.1)daemon_controller(0.2.5)fastthread(1.0.7)ファイルテール(1.0.5)i18n(0.4.2)乗客(3.0。 0)ラック(1.0.1)レール(2.3.5)レイク(0.8.7)spruz(0.2.2)tzinfo(0.3.23)

    %> どの宝石

    /usr/bin/gem

    %> どのルビー

    /usr/bin/ルビー

    ** /etc/apache2/mods-enabled/passenger.conf **

    assengerroot /var/lib/gems/1.8/gems/passenger-3.0.0 passengerruby/usr/bin/ruby

    ** /etc/apache2/mods-enabled/passenger.load **

    LoadModule 乗客モジュール /var/lib/gems/1.8/gems/passenger-3.0.0/ext/apache2/mod_passenger.so

他に見たいものがあればお知らせください。すべてをsudoでインストールしました。すべてのrubygemsディレクトリ、rubyディレクトリ、アプリケーションディレクトリはchmod 755なので、www-dataは正しくアクセスできるはずです。GEM_HOME を両方の Rubygems パスに設定し、Rails gem もそこにあることを確認してみました。

助けてください、これは私を死に至らしめるのです!

アップデート:

テストサーバーの gem リスト (正常に動作します)

abstract (1.0.0)
actionmailer (3.0.0, 2.3.8, 2.3.5)
actionpack (3.0.0, 2.3.8, 2.3.5)
activemodel (3.0.0)
activerecord (3.0.0, 2.3.8, 2.3.5)
activeresource (3.0.0, 2.3.8, 2.3.5)
activesupport (3.0.0, 2.3.8, 2.3.5)
acts_as_audited (1.1.1)
arel (1.0.1)
authlogic (2.1.6)
builder (2.1.2)
bundler (1.0.0)
cancan (1.3.4)
cgi_multipart_eof_fix (2.5.0)
daemon_controller (0.2.5)
daemons (1.1.0)
dbi (0.4.5)
deprecated (2.0.1)
erubis (2.6.6)
fastthread (1.0.7)
file-tail (1.0.5)
gem_plugin (0.2.3)
mail (2.2.5)
mime-types (1.16)
mongrel (1.1.5)
mongrel_cluster (1.0.5)
mysql (2.8.1)
passenger (3.0.0)
polyglot (0.3.1)
rack (1.2.1, 1.1.0, 1.0.1)
rack-mount (0.6.13)
rack-test (0.5.4)
rails (2.3.5)
railties (3.0.0)
rake (0.8.7)
spruz (0.2.2)
thor (0.14.0)
treetop (1.4.8)
tzinfo (0.3.23)
validates_date_time (1.0.0)
役に立ちましたか?

解決

この問題をもう一度調べてもらうために同僚を誘ったところ、次のことがわかりました。 役職 元の投稿に記載されている誤解を招く役に立たないエラーを実際のエラー テキストに変換します。問題の根本は、特定の gem のどのバージョンがインストールされているか、またどこにインストールされているかに起因することになりました。AFIAK 結局、ラックのバージョン 1.0.0 とバージョン 1.0.1 が必要になりました。

したがって、この問題から学んだことを他の人に伝えます。「Rails X.X.X gem が見つかりません...」というメッセージが表示された場合は、boot.rb ファイルを確認し、上記のリンクで説明されている変更を行ってください。これにより、実際の問題が表示されます。これは、常に他の gem のバージョンが間違っているため、rails gem のロード プロセスが失敗するようです。

私の元の投稿を見て時間を割いてくださった皆さん、ありがとうございました!

他のヒント

Ruby の Apache をチェックしてもらえますか?探す

乗客ルビー /usr/bin/ruby

乗客が間違ったルビを見ている可能性があります (2 つのディレクトリに複数インストールされている可能性があります)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top