再構築不要化カスタマイズ(全SQL対応・その2)

2007年3月7日
Movable Type 3.3以降をご利用の方は、MT3.3専用版をお使いください。
詳細はこちらのページを参照してください。

2005年12月20日 9時50分
スクリプトに一部不具合がありました。申し訳ありません。
9時50分頃までにダウンロードされた方は、再度ダウンロードいただき、「mt-dynamic.cgi」のみ差し替えてくださいますようお願いいたします。

昨日に続いて、Perl版ダイナミック・パブリッシングを紹介します。

今日は、インストールの基本的な手順を解説します。
今日のインストール手順を行うと、キャッシュ機能はオフの状態で、Perl版ダイナミック・パブリッシングを使うことができます。

なお、キャッシュをオンにする場合は、今日の作業を行った後で、キャッシュをオンにするための処理を追加する形になりますので、今日の作業も行っておいてください。

1.ファイルのダウンロードと解凍

まず、以下のリンクをクリックして、Perl版ダイナミック・パブリッシングのファイルをダウンロードしてください。

mt-dynamic-2_0.zip

ダウンロードしたファイルは、Zip形式になっています。
ファイルを解凍すると、全部で7つのファイルができます。

2.ファイルのアップロード

解凍してできたファイルの中で、「GetConfig.pl」ファイルはプラグインです。
このファイルを、Movable Typeの「plugins」ディレクトリにアップロードします。

また、「mt-dynamic.cgi」ファイルは、Blogの出力先ディレクトリ(MTのディレクトリではない)にアップロードして、パーミッションを変えて実行可能にしておきます(705や755など)。

3.dynamic_init.plの設定

次に、ダイナミック・パブリッシングにしたいBlogで、インデックステンプレートを1つ作成します。
「dynamic_init.pl」ファイルの中身をすべてコピーして、インデックステンプレートに貼り付けます。
そして、テンプレートの名前と出力ファイル名を「dynamic_init.pl」にします。

また、テンプレートの中で、以下の2箇所を書き換えます。

・3行目「$index_file = 'index.php';」
各ディレクトリのインデックスページのファイル名を指定します。
例えば、インデックスページのファイル名が「index.html」の場合は、この行を「$index_file = 'index.html';」に変えます。

・4行目「$error404 = '';」
アクセスされたページが見つからない場合に、表示するページのURLを指定します。
例えば、ページが見つからないときには「http://www.hogehoge.com/error.html」を表示するようにしたい場合は、「$error404 = 'http://www.hogehoge.com/error.html';」とします。
なお、URLを指定しない場合は、「ご指定のアドレスのページは見つかりませんでした。」というエラーメッセージが表示されます。

テンプレートの書き換えが終わったら、「インデックス・テンプレートを再構築するときに、このテンプレートを自動的に再構築する」のチェックをオフにしてテンプレートを保存し、再構築しておきます。

4.mt-dynamic.phpの設定

次に、インデックステンプレートをもう1つ作り、解凍してできた「mt-dynamic.php」ファイルの内容をすべて貼り付けます。
出力ファイル名とテンプレート名は、「mt-dynamic.php」にしておきます。

そして、このファイルの5行目にある「$index_filename = "index.php";」の文を書き換えます。
この行では、各ディレクトリのインデックスページのファイル名を指定します。
例えば、インデックスページのファイル名が「index.html」の場合は、この行を「$index_filename = "index.html";」に変えます。

書き換えが終わったら、「インデックス・テンプレートを再構築するときに、このテンプレートを自動的に再構築する」のチェックをオフにしてテンプレートを保存し、再構築しておきます。

5..ダイナミック・パブリッシングをオンにする

再構築を不要にしたいBlogで、ダイナミック・パブリッシングをオンにします。
Blogのメニューで「環境設定」の中の「設定」のページに接続し、「公開」のタブを開きます。
その中の「公開」の部分で、「テンプレート別に、スタティックHTMLもしくはダイナミック・パブリッシングを選択します」をオンにし、ページ末尾の「変更を保存」ボタンをクリックします。
これで、ダイナミック・パブリッシングがオンの状態になります。

↓ダイナミック・パブリッシングをオンにする
ダイナミック・パブリッシングをオンにする

6..htaccessファイルの編集

5.の作業が終わると、Blogの出力先のディレクトリに、「.htaccess」というファイルができます。
この.htaccessファイルをいったんダウンロードして、メモ帳等で開きます。
その中に、「/○○/mtview.php」という部分が4箇所あります(○○はBlogの出力先ディレクトリ)。それらすべての「mtview.php」を、「mt-dynamic.php」に書き換えます。
書き換えが終わったら、.htaccessファイルを元の場所に再度アップロードします。

7.phptempディレクトリの作成

Blogの出力先のディレクトリに、「phptemp」という名前のディレクトリを作ります。
そして、そのパーミッションを「707」に設定します。

8.各テンプレートの設定

テンプレートの編集画面で、動的に出力したいテンプレートを開きます。
そして、画面の右上にある「このテンプレートをダイナミック・ページにする」のチェックをオンにします。

↓テンプレートごとに「このテンプレートをダイナミック・ページにする」のチェックをオンにする
テンプレートごとに「このテンプレートをダイナミック・ページにする」のチェックをオンにする

9.Blogの再構築

ここまでの作業がすべて終わったら、Blog全体を再構築します。
8.の設定を行ったページが正しく表示されれば、設置は終わりです。
これ以後も、テンプレートを新規作成した時には、Blogの再構築を行ってください。

なお、ここまでの設定をすると、以前の静的に構築されたHTMLファイルは不要になります。
それらのファイルは、拡張子に「.static」が追加された状態で、Webサーバーに残っています。必要に応じて削除することができます。

10.PHPでモジュール化している場合の注意

Perl版ダイナミック・パブリッシングは、テンプレートをPHPでモジュール化していても動作します。
ただし、include文で読み込むテンプレートは、ダイナミック・パブリッシングにせずに、静的に再構築するようにしてください。
そのようなページまでダイナミック・パブリッシングにすると、ページを表示する際にモジュールごとに再構築が行われ、ページの表示に時間がかかるようになります。

MT Cloud Starter Kit
Movable Typeのプラグイン集「MT Cloud Starter Kit」をぜひご利用ください