0

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 を介してアプリ内から実行すると機能しません。

4

1 に答える 1

1

少し遅れているかもしれませんが、エラーは実行されているユーザーに関連していると思います。Passenger は Apache ユーザーの下で実行されます。似たような Webistrano wiki で議論されている git に関する問題があります。

https://github.com/peritor/webistrano/wiki/Installing-with-Phusion-Passenger

于 2013-01-23T20:25:01.057 に答える