« 第四期末, 社内研修。 | メイン | MovableType拡張プラグラミングに関する10の良い習慣。 »

MovableType RebuildAt1stView(Beta)。

MT3/4両対応。エントリーアーカイブへの最初のアクセスがあった時点で再構築(静的ファイル生成)を行うMovableType用のプラグイン+α。

MovableType用「逐次再構築(仮称)」プラグイン+α(β版)。として一旦公開しましたが, 設置調整をできるだけわかりやすくし(基本的にソースをさわる必要はなくなりました)、MT3.x/4.0/FastCGI等に対応させました(結果、インストール方法/ファイル構成や設定方法が大きく変わってしまったので主にインストールと設定の方法を中心に再度ご紹介します)。

インデックスアーカイブ, カテゴリーアーカイブ, 月別(週別)アーカイブ等は静的生成、エントリーアーカイブは動的生成(ダイナミック・パブリッシング)とし、動的生成のページに対しては「最初にそのページにアクセスがあった時」に再構築(静的HTMLファイルを生成)を行います。ダイナミックパブリッシングによる再構築の負荷軽減と静的生成による閲覧時の負荷軽減の両方のメリットを享受できる方式です。

ダウンロード

ライセンス

パブリック・ドメイン

このプログラムは「GPL」に従って配布します。

* GPL版MTOSがリリースされるまではパブリック・ドメインとします(もちろん、同じソースのライセンスを変更すると混乱の元ですから、このバージョンのソースはずっとパブリック・ドメインにします)。
MTOSについての何らかのアナウンスがあった時に各プラグインについてのライセンスを再度定義したいと思います。

以下, 設定方法です。キャプチャはMT4.0Beta4のものです。画面の見た目は違いますがMT3.3でも動作確認しています。

*インストーラは現在のところMySQLのみ対応しています。

「installer」ディレクトリをWebサーバーへアップロードします。

index.phpを表示しデータベース名, ユーザー名, パスワード(データベースのユーザー名とパスワード)を入力して「Create Table」ボタンをクリックしてください。

インストーラ画面

「Update was successful.」と表示されたらデータベースのアップデートは成功です。

*この後必ず「installer」ディレクトリごとサーバーから削除してください(セキュリティ上必ず削除してください)。

その他のRDBMSでご利用の場合は以下の構造のmt_permalinkテーブルを追加してください。

テーブル:mt_permalinkの構造
permalink_idint(11)
permalink_blog_idint(11)
permalink_permalinkvarchar(255)
permalink_modified_ontimestamp

テンプレートの設定(ブログごとに設定)

「設定」→「公開」→「ページ構築方法」で「テンプレート別にスタティックHTMLもしくはダイナミック・パブリッシングを選択します」にチェックを入れて変更を保存します。

設定→公開→ページ構築方法

エントリー・アーカイブ編集画面→「再構築オプション」で「このテンプレートをダイナミック・ページにする」にチェックを入れて変更を保存します。

エントリーアーカイブ編集→再構築オプション

ブログ全体を再構築します。

*これまでに生成された静的ファイルはファイルの末尾に.staticが追加されてバックアップされます。これらのファイルは不要ですので動作確認後削除して構いません。

プラグインのアップロード

pluginsフォルダ内のRebuildAt1stViewディレクトリをMTのpluginsディレクトリ直下に(ディレクトリごと)アップします。

データベースのアップデート

プラグインをアップロードして最初にログインしようとするとアップグレード画面が表示されます。そのままID/Passwordを入れてアップグレードを完了してください。

アップグレード画面

設定完了画面

システム全体のプラグイン設定

システム全体のプラグイン設定画面で「サイトのベース」(http://〜最初のスラッシュの手前まで)、「ドキュメントルート」(両方とも最後にスラッシュを含まないことに注意)、エラーテンプレート(404ページのテンプレートのサイトルートからの絶対パス)を入力して変更を保存します。

システム全体のプラグイン設定

ブログ単位のプラグイン設定

設定を有効にしたいブログのプラグイン設定画面で「プラグインを有効にする」にチェックを入れます(デフォルトは「オン」です)。

プラグイン設定画面→プラグインを有効にする

テーブル mt_permalink へのデータの登録

ここまでの設定が完了したら、プラグイン設定画面のプラグイン名「RebuildAt1stView」をクリックします(インストール時に作成したmt_permalinkテーブルにデータを登録されます)。

プラグイン設定画面→テーブルの更新

テーブルmt_permalinkのアップデート結果

ブログの設定(アーカイブマッピング等)を変更した時や動作が不安定な時は、この操作を再度行ってmt_permalinkテーブルを最新の状態にアップデートしてみてください。

.htaccessの編集

ブログのルートフォルダに「.htaccess」ファイルが生成されていますので(「設定」→「公開」→「ページ構築方法」の設定を行った際に生成されている筈です)これを削除, 同梱の「_htaccess」をアップロード。「.htaccess」にリネームします。


ErrorDocument 404 /mt/plugins/RebuildAt1stView/mtview.cgi

ErrorDocumentのパスをアップロードしたmtview.cgiのパスにあわせてください。FastCGI上で動かす場合は、mtview.cgiをmtview.fcgi とし、cgiのファイル名も同様に修正します。

動作の検証

新規にエントリーを作成するか、既存のエントリーで動作を検証します。

本来エントリーアーカイブが保存されている場所をFTPクライアント等で確認し, ファイルが存在しないことを確認します。その後Webブラウザでページを表示, 再度FTPクライアント等で確認、ファイルが生成されていれば正常に動作していることになります。

ファイル生成のテスト

生成されたファイルの全消去

この方式の場合、(エントリーを追加したりテンプレートを変更し, すべてのページを更新する場合)エントリーアーカイブを再構築する代わりに生成されたエントリーアーカイブの静的ページを全て消去する必要があります。

通常の再構築(すべてのページを再構築)した後に、各ブログのエントリー一覧ページの右下の「プラグインアクション」→「エントリーキャッシュの全削除」をクリックすることで生成された静的ファイルがクリーンアップされます(再度ページへのアクセスがあった時にページは再生成されます)。

エントリー一覧のプラグインアクション

関連エントリー

カテゴリー: MovableType

トラックバック

コメント (2)

ms:

はじめまして。

とても魅力的なプラグインですね!
ぜひ使ってみたいのですが一つ気になる点が。

初めてのアクセスがあった際に.htaccessの
ErrorDocument 404 /mt/plugins/RebuildAt1stView/mtview.cgi
利用して逐次再構築を行うとのことですが

このあたりの挙動はロボットからどのように判断されるのでしょうか?
一度は404と判断(?)されているので、それこそ存在しないものと扱われるのか、それともリダイレクトされて正常なURLとして判断されるのか・・

インデックスされなかったり、SPAM扱いされたりの可能性はないのでしょうか?

ご教授頂ければ幸いです。


junnama:

msさん

こちらに最新版をアップしていますが、mod_rewrite に対応させたので、404が嫌な場合は404ページではなくてmod_rewriteで運用いただければ良いかと思います。

http://junnama.alfasado.net/online/2008/01/post_126.html

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)


トップページ | アーカイブ(このブログの全てのエントリーの一覧)

最近のエントリー