このブログもエントリが800を超えて、再構築すると500エラーが出ることが多くなった。
特に個別エントリの再構築は何度もリロードせざるを得ないことがあって、XREAはタイムアウトが厳しめに設定してあるっぽいので、それも合わせて負荷が1000ptを超えることが2回ほどあったり(普通はせいぜい2桁行けばいいほう)。
Movable Type自体の構造が負荷かかりやすいにしても問題すぎる。
近々デザイン(テンプレート)を変更するつもりなので、確認の度に再構築して上記の状態ではちょっとシャレにならない。
というわけで色々調べてみたら、アクセスの度に動的にページを作成してくれるプラグインを見つけた。
The blog of H.Fujiwaraさんの「Perl版ダイナミック・パブリッシング」だ。
導入は至って簡単で、説明通りに実行&設定するだけ。
ダイナミック・パブリッシングにしたのはindex、RSS、カテゴリ、月別、個別。
これで全体を再構築をしてみたが、1分もかからずに終わった。
まぁ、テンプレートだけなので当然の結果なんだけども。
問題があるとすれば、動的作成によって負荷とロード時間がかかることか。
外からアクセスしてないのでどうなるかわかないけど・・・
でも、キャッシュ機能があるし(10MBくらいに設定した)、アクセスするページはindexか最新エントリがメインなので問題無いと思う。
さて、どうなるかな・・・
Atom.xmlがダメになってますわ。
Parse error: syntax error, unexpected T_STRING in /virtual/kotatsu/public_html/phpcache/0529795460.php on line 1
1行目がPHPスクリプトとして認識されてたのが問題でした。
修正&確認したので大丈夫だと思います。
指摘thxです。
Perl版ダイナミック・パブリッシングのキャッシュ機能はデフォルトだと60秒でキャッシュ削除しちゃうにょろ。mt-dynamic.phpの中の記述を変えれば解決にょろ。
// 一時ファイルを削除する
$now = time();
$dh = @opendir(‘./phptemp’);
while (($file = @readdir($dh)) !== false) {
if ($file != ‘.’ && $file != ‘..’) {
$fpath = ‘./phptemp/’ . $file;
$mtime = @filemtime($fpath);
if ($now – $mtime > 60) {
@unlink($fpath);
}
}
}
すみすみの場合はこうしてるにょろ。これで一週間キャッシュ保持する(はず)にょろ。
if ($now – $mtime > 60*60*24*7)
phpcacheフォルダの中に容量オーバーしない限りキャッシュされ続けると思ってたのだけど、勘違いでしたか・・・
帰ったら修正してみます。
重ね重ねthxです。