capistranoには、以下のコマンドを実行する事で、メンテナンスページを用意する機能があります。

   1  % cap deploy:web:disable

コマンドを実行すると、デプロイ先のサーバ上で、shared/system/maintenance.html が生成されます。 shared以下のディレクトリは、public/の下にシンボリックリンクが作成されるので、 結果としてpublic/system/maintenance.htmlが準備される事になります。

しかし、capistranoがやってくれるのはここまでなので、 maintenance.htmlが存在した場合にそれを表示するようにするように、 Webサーバを設定する作業は自分でやる必要があります。 mod_railsとかでその辺まで面倒みてくれる感じになっていると楽なんですけどね。

その設定については、Apacheを使っている場合は以下のような感じにすればOKです。

   1  RewriteEngine On
   2  RewriteCond %{DOCUMENT_ROOT}/system/maintenance.html -f
   3  RewriteCond %{REQUEST_URI} !^/images/
   4  RewriteCond %{REQUEST_URI} !^/javascripts/
   5  RewriteCond %{REQUEST_URI} !^/stylesheets/
   6  RewriteRule ^.*$ /system/maintenance.html [L]
   7  RewriteRule ^/(images|javascripts|stylesheets)/(.*)$ /$1/$2 [L]

ちなみに、メンテナンスページを取り下げるには、以下のコマンドを実行します。

   1  % cap deploy:web:enable

これで、maintenance.htmlが削除されます。

See Also

posted by Png genki on Tue 23 Dec 2008 at 16:47

Comments:

or Preview
Social Bookmarks
  • Delicious
  • B_entry1152
  • Clip_16_12_w
Services from s21g
twpro(ツイプロ)
Twitterプロフィールを快適検索
地価2009
土地の値段を調べてみよう
MyRestaurant
自分だけのレストラン手帳
Formula
ブログに数式を埋め込める数式コミュニティ