rebuild支援ツール for MovableType

by H.Tsujimura (tsupo@na.rim.or.jp)

背景

Movable Type を非力なサーバ、 もしくは各種制限 (実行時間制限、メモリ使用量制限、など) のあるサーバ上で動かすと、 rebuild 実行時に Internal Server Error が頻発します。 それ以外のサーバでもエントリの数が増えてくると、 次第に rebuild 実行時に Internal Server Error が起きやすくなってきます。

そこで、 rebuild の負荷を少しでも減らして Internal Server Error を回避するため、 一気に全部 rebuild するのではなく、アーカイブファイル1つづつ、 エントリ数個づつ、 何回かに分けて rebuild すると効果があるのではないか、と考えました。

この「rebuild支援ツール」は、 分割rebuild をサポートするためのものです。

分割rebuild の仕組み

基本的に、以下の単位で分割rebuildを行ないます。

上記の rebuild を行なうための cgi を呼び出すための html ファイルを提供し、 ブラウザ経由で、rebuild の指示をサーバに送信します。

「Monthly Archives のうち1ヶ月分」の rebuild を行なう cgi、および 「Category Archives のうち1カテゴリ分」の rebuild を行なう cgi は、 当方で用意しました。それ以外の部分の rebuild は、基本的に MovableType 付属の cgi を呼び出す形で実現しています。

「rebuild支援ツール」のインストール方法

本ツールは、MovableType 2.64 で使うことを前提にしています。 他のバージョンでも使えるかどうかは未確認です。
また、以下の説明では、日本語対応を施した MovableType を使っていますが、 日本語未対応のものでも、ほとんどそのまま適用できると思います(適宜、 対応する文字列、用語、画面に読み替えてください)。

  1. まず、mt-rebuild-monthly.cgi および mt-rebuild-category.cgi を mt.cgi と同じディレクトリに用意します。
  2. 次に mt-rebuild-monthly.cgi と mt-rebuild-category.cgi のパーミッションを設定します。 mt.cgi と同じパーミッションにしてください。
  3. MovableType に login します。
  4. Template の編集画面(Template のリスト)を表示させます。
    Template の編集画面
  5. 「新しい Index Template を作る」をクリックします。
  6. 「Template の名前」を Rebuild Tool (それ以外の適当な名前でも構いません)、 「出力ファイル名」を rebuild-tool.html (それ以外の適当な名前でも構いません) にします。また、 「Index Template を Rebuild するときに自動的にこの Template を Rebuild する」 のチェックを外しておきます。
  7. ローカル環境に rebuild-tool.templ という名前のファイルを用意し、 rebuild-tool.html の内容をはりつけ(copy & paste して)、保存しておいてください。
    「Template の中身」にも上記と同じ内容を copy & paste してください。 Template の作成
  8. あなたの blog に合わせて、「Template の中身」を編集します。
    Template の中身
    また、独自に用意している template があり、 その template を分割rebuild の対象にしたいときは、 他のボタンの真似をして、新しいボタンを追加してください。
    なお、template の ID は、以下の図のような方法で調べることができます。 Template の ID の取得
  9. 編集が終わったら、SAVE し、「Rebuild Tool」を rebuild します。
    Template の rebuild
    ただし、サーバによっては、 この rebuild でも Internal Server Error が出る可能性があります (カテゴリの数が多い場合など)。その場合は、「Rebuild Tool」のうち、 Category Archive 関連のところだけ別の Index Template にする、 <$MTBlogName$> や <$MTCGIPath$> など、 (blog の設定変更をしない限り) 展開結果が常に一意の文字列になるものは手で展開済みの文字列に置き換えておく 等、負荷軽減対策を実施します。
  10. rebuild したページを確認します。
    できあがった「rebuild支援ツール」の画面
  11. 以上で、インストールは完了です。カテゴリの追加、削除を行なったとき、 月が変わったとき、など、 必要に応じて 「Rebuild Tool」 の rebuild を実施してください。
  12. mt-rebuild-monthly.cgi を改造することで、 weekly archive や daily archive にも対応することができます。 挑戦してみてください。

注意:
カテゴリには必ず「説明」を設定しておいてください。 「説明」を設定していない場合は、「Rebuild Tool」template の

<$MTCategoryDescription$>

という文字列を

<$MTCategoryLabel$>

に書き換えてください。

「rebuild支援ツール」の使い方

基本的に「rebuild支援ツール」は、MovableType にログインしている状態で使います。 ただし、Monthly Archive や Category Archive の rebuild だけなら、 ログインしていなくても実行可能です。

MovableType にログインした後、ブラウザで rebuild-tool.html を表示し、 rebuild したい項目に対応するボタンを押すだけです。

関連リンク


[Activity Memoへ戻る]
[プログラミングへ戻る]
[Tsuporoneのトップページへ戻る]


Google

Access Count: 

Copyright (c) 1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009, 2010, 2011, 2012 by Hiroshi Tsujimura (tsupo@na.rim.or.jp) Some Rights Reserved.
Last Modified: Wednesday, 29-Aug-2007 03:54:08 JST