« 咳をしてみる。 | メイン | 神社で厄払いしてみる。 »

全エントリをPHP化してみる。

MovableTypeはなかなか高機能である。高機能であるが故に


  • 記事が増えるとエントリー(記事)を投稿し、反映されるのに時間がかかる(平たく言うと重い)。

という問題がある。特にここのblogのように非常に非力なサーバを使用していると、エントリ数が多くなくてもこの問題は深刻である。

ということで、負荷を軽減するために、まずはエントリの本文のみ別途保存して、アーカイブ・インデックスからincludeするようにする(いわゆる「本文のモジュール化」である)。これにはPHPを用いて、動的にページを生成するのである。これは、MovableTypeの生成ファイルのPHP化とモジュール化を参考にした。ただし、件のページとはバージョンが違う(3.2-ja-2)ので、設定のどこをいぢるかは探す必要があった(が、基本的には何も変わらない)。我がサーバではPHPの呼び出し方も違ったし。

3.2-jaでの手順

  1. [アーカイブテンプレートの作成:メインメニュー > BLOG名 > テンプレート] で 「アーカイブ」タブを選び、「テンプレートを新規作成」を選択し、「テンプレート名」を適当に(参考元では"Entry Body"とある)、「このテンプレートにリンクするファイル」を空欄に、「テンプレートの内容」を
    <$MTEntryBody$>
    とのみ記述して、保存。(エントリの本文だけを抽出する設定を行っている)
  2. [環境設定 > 設定]「公開」タブを選び、「公開」セクションで、「アーカイブの拡張子」をhtmlからphpへ変更。引き続き、「アーカイブマッピング」セクションでは、「アーカイブマッピングの新規作成」をクリック。先ほど作成した"Entry Body"を選択して追加。このとき、「優先」は「エントリー・アーカイブ」を選択したままにしておく。「出力フォーマット」は
    <$MTArchiveDate format="%Y/%m/parts/%d_%H%M"$>_body.php
    へ変更(これについては、次の項での記述と一致してれば良く、任意でよい)。
  3. 次に、あらゆるテンプレート(エントリーアーカイブ、カテゴリーアーカイブ、日付アーカイブ、)に存在する「<$MTEntryBody$>」という記述を
    <?php include"<$MTBlogURL$><$MTArchiveDate format="%Y/%m/parts/%d_%H%M"$>_body.php";?>
    と置換。
  4. すべてを再構築

とうまくいくはずが、我が家のマシンではPHPがうまく動いていなかったようだ。ということで、/etc/httpd/conf/httpd.confを変更。

<IfDefine HAVE_PHP5>
LoadModule php5_module modules/libphp5.so
</IfDefine>

<IfDefine HAVE_PHP5>
AddModule mod_php5.c
</IfDefine>

<IfModule mod_php5.c>
AddType application/x-httpd-php .phtml .php
AddType application/x-httpd-php-source .phps
</IfModule>


なんとか、無事にすべてPHP化できた。次は、右コラムのモジュール化に挑戦してみたいと思うのだ。

トラックバック

このエントリーのトラックバックURL:
http://www.hiwa.org/yusuke/cgi-bin/mt/mt-tb.cgi/22

コメントを投稿

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

武蔵野在住の不惑研究者の備忘録。 息子と娘に嫌われないことを目標に日々過しています。

ちなみに登場人物はほとんど匿名ですが、 「御主人様(仮名)」とは私の妻で「愚息(仮名)」は息子のことです。

関連リンク

Calendar

« November 2005 »
Su Mo Tu We Th Fr Sa
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Powered by
Movable Type 5.03
Valid CSS!