●サーバーの不可を軽減させる
(この記事は、06/09/23に日記に書いた内容を、07/03/11にこのブログに転載しました)
サーバーの移転も考慮しつつ、もう少し努力しようと、エラーになってしまう、カテゴリーアーカイブのテンプレを数ヶ月ぶりにいじってみました。
あれこれやって、エラーの原因が少しずつ見えてきたような……。
1.六曜プラグイン
……そういえば、以前いじった時も、これが原因くさいな〜と思ったんだたった。
他のテンプレでは問題ないのに、なぜかカテゴリーアーカイブでは、エラーの原因に……。
配布元に3.3用に最新版があったので、とりあえず突っ込んでみたら、「MTDateHeader」とページ分割化のタグ「MTPaginate」にエラーが出た。
(古いヴァージョンに戻したら、大丈夫だった)
で、ふと思い出したのが、3.15をインストした時に、「六曜プラグイン」と「和風日付プラグイン」が表示されなかったり、文字化けしたり……という事があった事。
「和風日付プラグイン」は配布元のUTF-8版を使うことで問題が解消されたのだけど、「六曜プラグイン」はUTF-8版がなかったので、「文字化けする漢字(六曜の部分)のみを実体参照に置き換えたという記録がみつかった。
このあたりが原因なのかもしれない。
【補足:】このタグを使用し、カテゴリアーカイブの再構築を行うとタイムアウトエラーが出、使用しない場合はエラーとならなかった。
結果的に、EntryBodyをモジュール化させる事で、解決。
2.和風日付プラグイン
……エラーにならない事もあるけど、時々怪しく思う事が。
【補足:】あまり関係なさそう。3.ページ分割化のタグ「MTPaginate」
……これも、エラーにならない時もあるけど、時々怪しい。
【補足:】不可とは無関係だが、「perlのヴァージョンにより問題あり」との記述発見。
詳しくは、下記参照
4.newアイコンを表示させるタグ
……これも、エラーにならない時もあるけど、時々怪しい。
【補足:】 これは無関係
今現在は、六曜プラグインをはずす事でエラーを回避できているけど、負荷が大きくなるであろう深夜帯での再構築を試してみたい。
とりあえず、「MTDateHeader」内のタグと「MTPaginate」に大きな原因があるっぽいところまでは絞れたかな。
************************
【追加】
「MTPaginate」について調べてみた。
一部で、MTPaginateプラグインを突っ込んだらエラーが出るようになったとの表記をいくつか見かけた。
perlのヴァージョンの問題で、
24行目の「our $VERSION = '1.24';」を「my $VERSION = '1.24';」に書き換えることで回避可能
との事。
「Webサーバーのperlのバージョンが5.6未満」の場合に有効らしい。
調べてみたら、使用している鯖のperlは、「5.008」。
こいつも原因の一つと確定。
上記のように書き換えて、テンプレに六曜表示タグを書き加えて再構築をしてみると、いつも表示されていたエラーメッセージは表示されなくなった。