« MTの動作速度を速くする〜データベースの最適化~ | メイン | 相対パス化によるサーバー負荷削減 »

MTモジュール化の注意点〜phpモジュール化による高速化〜

MovableTypeでphpを利用してモジュール化によりメニューやフッター等のページを別ファイルに分けるには、少し複雑ですが以下の4つの方法があります。

1-1.phpスクリプトを含むファイルをインクルード

<?phpinclude("?.php"); ?>
1-2.phpスクリプトでない通常のファイルをインクルード
<?phpreadfile("?.html"); ?>
2-1.MovableTypeのテンプレートのモジュールをインクルード
<$MTInclude module="modulename"$>
2-2.MovableTypeで外部ファイルをインクルード
<$MTInclude file="filename"$>

こかなりややこしい。まず決めるべきはphpかMT includeかの選択。再構築を軽くしたいのか、ページ表示を高速かしたいのか。

1はphpを利用するので、ページを読み込む瞬間にパーツを読み込む。当然読み込みが遅くなり、読み込み時の負荷が増える。しかしMovableTypeの再構築時は読み込まないから再構築の負荷は軽くなる。

2は再構築時に読み込むので、MovableTypeの再構築が重くなる。ただしページアクセス時は単なる静的なページなので負荷が少なくてすむ。

1-1と1-2の違い1はphpのスクリプトが含まれるファイルを読み込む場合、2は通常ファイルを読み込む場合。スクリプトが含まれないのであれば、2のほうが動作が軽くなる。

2-1と2-24の違い「file」の場合は既に出来上がっているファイルを読み込むだけなので、再構築はほとんど重くならない。「module」だと読み込むたびにMTタグを動かして再構築することになるのでMovableType再構築のサーバーの負担は大幅に増える。

基本的にはMT includeを利用して「file」にしたほうが賢明。弊社ではユーザーのアクセスをできるだけ軽快にするために「MT include file」を利用しています。「file」ならphpにもMT includeにもどちらでも簡単に変更可能。もし再構築がどうしても重ければphpにもできます。