• 更新:
  • 投稿:
  • カテゴリィ:

このブログはMoveble Typeを利用している。そしてperl版のプラグインをいくつか使用しているが、全てのページが動的生成(ダイナミック・パブリッシング)になっている(RSS Feedは除く)。

どうしているかというと、

MTの動的生成でperlプラグインも動作するCGI」を利用しているからだ。

──と、これだけの説明でこのCGIの素晴らしさが解る人は、かなりのMovable Typer(造語)

まず、前提として

perl版のプラグインのままでは、動的に生成できませんプラグインもphpベースで構築されたものが必要になってきます。ですので、perl版プラグインを仕様しているページは動的生成しないようにするか、phpベースに再構築する必要があります。

HINAGATA:ダイナミック・パブリッシング導入法

ということで(現在公開されているMTでは)、perl版のプラグインを利用したテンプレートは動的に生成できない、という仕様になっている。

それを可能にするのが、今回紹介するCGIです。

設置方法

設置方法は、下記を参照してください。必ず、両方の記事を読んでから設置してください。

  1. The blog of H.Fujimoto: 再構築を不要にするカスタマイズ(Perl版ダイナミック・パブリッシング)

  2. The blog of H.Fujimoto: 再構築不要化カスタマイズ(セキュリティホール修正)

設置自体は簡単に終わる(と思う)のだが、phptempフォルダを作成することをお忘れ無く。

動作するperl版プラグイン

自分の環境(xrea.comのs61サーバー)で動作が確認できたプラグインは、下記の通り。

  • Tagwire Plugin Ver. 0.25

    MTで四畳半フォークソノミーを実現させるプラグイン

  • LastModified Ver. 1.3 [IfModified](http://www.staggernation.com/mtplugins/IfModified.php "IfModified | Plugins for Movable Type | staggernation.com") 現在は[IfModified](http://www.staggernation.com/mtplugins/IfModified.php "IfModified | Plugins for Movable Type | staggernation.com")になっている。最新はVer. 1.4。 IfModifiedも正常に動作した。更新日時を表示するプラグイン。簡単に設置できるのでおすすめ。
  • SimpleComments Ver. 1.32

    すっきりコメントプラグイン [絵文録ことのは]2003/10/02が詳しい。最新バージョンではPHP版もあるが、Perl版のファイルのみ利用している。

  • CPEntries Ver. 0.9.3

    コメントかトラックバックの最新順にエントリを表示するプラグイン。

  • mt-sukeroku-plus.pl Ver. 1.00

    TextFormatプラグイン。「はてな」や「Pukiwiki」風のフォーマットで記事が書ける。最新はmt-sukeroku2 β3

  • Markdown Ver. 1.0.1

    これもテキストフォーマットプラグイン。PHP版のPHP Markdownもある。

何より、Tagwire Pluginが動作するのが大きい!!

キャッシュする時間を増やしてみる

mt-dynamicは、動的生成に付きものの一時ファイル(キャッシュ)をphptempフォルダに生成する。一定時間内のアクセスに対しては、一時ファイルから呼び出される。

──ようするに、最初に誰かがページを見るときは動的生成だが、同時にphptempフォルダにhtml(php)ファイルが生成される。その後、一定時間内に他の人が同じページにアクセスすると、phptempフォルダ内のファイルが呼び出される。──という仕組みになっている。

つまり、「再構築がいらない」というメリットと「動的生成はページの表示が遅い」というデメリットのバランスを取る仕組み。

──なのだが、初期設定では「一定時間」が一分間(60秒間)になっているので、あまりキャッシュのありがたみがない。

そこで、mt-dynamic.phpの21行目辺りにある

if ($now - $mtime > 60) {

これを変更し、

if ($now - $mtime > 60*30) {

こんな感じにすると、30分間キャッシュされる。

phpスクリプトも使える

ちょっとした小ネタ。

phpスクリプトもそのまま動作するので、

<?php readfile ('<$MTBlogURL$>hoge.php'); ?>

と、こんな感じで他のファイルも読み込む際、読み込むファイルのパスに、MTのタグが利用できる

──何が言いたいかというと、通常のPHP版動的生成では

<$MTInclude file="<$MTBlogURL$>hoge.php"$>

と書くことができる。以下を参照。

ダイナミックパブリッシング時には、MTInclude file の挙動が変わり、テンプレートタグが変換されるようになります。

MTInclude とダイナミックパブリッシング - MovableType Tips by Sonots

──と言うことだが、mt-dynamicでは動作しない(静的生成も同様)ので、念のため。

あまり使われていないのは何故──?

導入してからしばらく経つけど、何故か利用している人は少ないようだ。

記事を投稿するのにかなりの時間短縮になるので、「再構築時間の長さが気になる」というMovable Typer(造語)におすすめです。

[2] このページの一番上へ戻る