3

実行すると、 releasessharedcap deployなどのいくつかのフォルダーを作成できます。それらと Apache または Nginx のサーバー ルートとの関係は何ですか?

この方法は正しいですか? (これは Nginx の構成です)

server {
  listen 80;
  server_name www.yourhost.com;
  root /releases/...;   # Which path to be here???
  passenger_enabled on;
}

また、実行後cap deploy、Web サーバーの自動再起動は可能ですか?

4

1 に答える 1

7

デプロイすると、capistrano は release フォルダーにフォルダーを作成し、そのフォルダーを にシンボリック リンクします/your_app/current

一般に公開する Rails アプリの部分はpublicフォルダーであるため、nginx 構成のルートを次のように設定する必要があります。

root /path_to_your_app/current/public; 

展開するたびに、の内容がcurrentソースから効果的に更新され、ソース管理にコミットされていないデータは失われます。ここで共有フォルダーが登場します。共有フォルダーには、含まれないものが含まれます。バージョン管理、ただしデプロイごとに失いたくないもの - アプリケーション ログ、アップロードされた画像など。

アップロードに共有フォルダーを使用する方法の良い例を次に示します: http://www.simonecarletti.com/blog/2009/02/capistrano-uploads-folder/

deploy.rb で次のタスクを実行すると、Web サーバーを再起動できます。

namespace :deploy do
  task :restart do
    run "touch #{current_path}/tmp/restart.txt"
  end
end

Phusion パッセンジャーはこのファイルを監視し、ファイルが作成されると再起動をトリガーします。

于 2012-09-30T05:26:35.303 に答える