Webistrano でのデプロイ タスクの実行に問題があります。これは、Phusion Passenger を使用して Nginx から Webistrano を実行した場合のみです。
次のコマンドで Webistano を実行すると、すべて正常に動作します。
ruby スクリプト/サーバー -d -p 3000 -e プロダクション
しかし、Phusion Passenger (「passenger-install-nginx-module」でコンパイル) から実行し、デプロイを実行したい (アプリケーションが実行されている) と、ログに次のエラーが表示されます。
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.1.5/lib/bundler/spec_set.rb:90:in `materialize': Could not find rake-0.9.2.2 in any of the sources (Bundler::GemNotFound)
from /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.1.5/lib/bundler/spec_set.rb:83:in `map!'
from /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.1.5/lib/bundler/spec_set.rb:83:in `materialize'
from /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.1.5/lib/bundler/definition.rb:127:in `specs'
from /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.1.5/lib/bundler/definition.rb:172:in `specs_for'
from /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.1.5/lib/bundler/definition.rb:161:in `requested_specs'
from /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.1.5/lib/bundler/environment.rb:23:in `requested_specs'
from /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.1.5/lib/bundler/runtime.rb:11:in `setup'
from /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.1.5/lib/bundler.rb:107:in `setup'
from /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.1.5/lib/bundler/setup.rb:17
私のバンドルジェムリスト:
Gems included by the bundle:
* actionmailer (2.3.11)
* actionpack (2.3.11)
* activerecord (2.3.11)
* activeresource (2.3.11)
* activesupport (2.3.11)
* bundler (1.1.5)
* capistrano (2.6.0)
* erubis (2.7.0)
* exception_notification (2.3.3.0)
* highline (1.6.13)
* mocha (0.9.8)
* mysql (2.8.1)
* net-scp (1.0.4)
* net-sftp (2.0.5)
* net-ssh (2.5.2)
* net-ssh-gateway (1.1.0)
* open4 (0.9.3)
* rack (1.1.3)
* rails (2.3.11)
* rake (0.9.2.2)
* syntax (1.0.0)
これは私の nginx.conf にあります:
passenger_root /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.15;
passenger_ruby /usr/local/bin/ruby;
そして、私の特定のサーバー構成:
passenger_enabled on;
rails_env production;
これを Webrick で実行すると正常に動作するのに、nginx 経由のパッセンジャーでは動作しないのは奇妙です。私は Ruby にあまり興味がなく、どこから調べればよいのかよくわかりません。
rvm ではなく、ソースから ruby をインストールします。
前もって感謝します!
編集:
エラーは次の行から発生します。
ruby script/runner -e production ' deployment = Deployment.find(1085); Webistrano::Deployer.new(デプロイ).invoke_task! '
コマンドラインから実行するとアスペクトとして機能しますが、nginx/passenger を介してアプリ内から実行すると機能しません。