この日記のシステムをMovable Type 4.2にした理由

2011年1月31日(月) 23:37 | 日記

これまで当サイトのブログのシステムとして使っていたMT3.3は2007年の製品で、さすがに3年落ちのプログラムを今後も使い続けるのは嫌だなあということで、そろそろアップグレードしようと思ったのが去年の暮れのこと。「フォーキー☆カーニバル」と「フォーキー★カーニバル」の2つのサイトを併存させるのも不便だと思っていたので、ついでにサイトの統合も一気に進めてしまおうと思いました。
ただ、この作業は思った以上にたいへんで、本来なら今年の1月1日にリニューアルオープンしたかったところですが、根っからの怠けぐせも手伝い、1月下旬にずれ込んでしまいました。

どうせならMTをやめてWordPressにしようかとも思ったのですが、これまで僕がMTで運用しているのと同様、記事ページのファイル名を通し番号にすることが難しそうだったのと、これから新しくWPのタグやらPHPやらを覚えるのはたいへんそうだったので、断念しました。

現在、MTの最新バージョンは5.0なので、最初はMT5.0にアップグレードするつもりでした。5.0で正式にサポートしているデータベースはMySQL5のみ。実際にMT5をインストールして、MySQL5で運用してみると、再構築されたスタティックなページは問題なく表示されるのですが、ダイナミックなページの日本語がすべて文字化けして、使いものになりませんでした。
MySQL5で文字化けする例は検索すると山のように見つかりましたが、紹介されている対策方法の多くは「my.cnf」の設定を変更するというもの。ところが、僕が使っているさくらインターネットのスタンダードプランのMySQLはphpMyAdminという管理ツールを通じてしか操作できず、my.cnfにさわることはできません。phpMyAdmin上でデフォルトの文字コードをUTF-8に変えたり、その他いろいろな設定を試してみたのですが、やはり無理でした。
もしかしたらMT側のファイルで、MySQLを読み込む部分の記述を変更すればよかったのかもしれませんが、僕にはPHPやCGIの知識は皆無なので、あきらめるしかありませんでした。
「さくらインターネットのMySQL5でMT5のダイナミックパブリッシングを問題なく運用している」という方がいらっしゃいましたら、今後のためにぜひ方法を教えていただきたいと思います。

仕方がないので、ひとつ前のバージョンであるMT4.28を導入することにしました。
データベースは、当初はMT3.3で使っていたSQLiteをそのまま使いました。ところが、記事数が2300本以上あるせいなのか、ダイナミックページの表示がとんでもなく遅くて、こちらも使いものになりませんでした。月別アーカイブページのように、読み込む記事数が100本以下であればそれほど問題ないのですが、「トップページを分割して表示するテンプレート」のように、大量のデータを読み込む必要があるページについては、リンクをクリックしてから表示されるまでに1分近くかかる場合もありました。携帯サイトの表示が遅いことも致命的でした。
そもそもMT4.2は、確かダイナミックパブリッシングではSQLiteをサポートしていないんですよね。そこで今度は、MySQLの古いバージョンであるMySQL4を試してみることにしました。
実はMT3.3のときもMySQLを使ってみたことがあったのですが、ダイナミックページの表示の際に、ちょっとサーバーに負荷がかかるだけでエラーが続発していたため、MySQLはずっと敬遠していました。
でも、MT4.2とMySQL4の組み合わせはなかなか快適です。記事ページの再構築こそSQLiteと同じくらいのスピードですが、ダイナミックページの表示がSQLiteとは比べものにならないくらい速く、503エラーもほとんど出ません。理由はバージョンの違いだけでなく、ページの表示に関わるプラグインをほとんど使っていないことも考えられます。ただそれでも、トップページから「次の7件(古い日記)」をクリックすると、次のページが表示されるまで10秒くらい待たされることがあります。これに関しては、MT4.2のページ分割システムを使うのではなく、MT3.3でやっていたようにサードパーティー製のページ分割用のプラグインを導入した方がいいかもしれません。
記事ページの再構築のスピードは、記事2300本強で約7分。決して早いというわけではありませんが、まあ問題ありません。

そういえば、2年前にもMT4.2を導入しようとしたことがありましたが、断念してしまいました(参考 - やっぱりMTを3.36に戻しました)。このときは特殊なプラグインを使っていて、その挙動がMT3.3とMT4.2で異なったこと、それと上に書いたようにMT4.2とSQLiteの相性がよろしくないことが、アップグレードをあきらめた理由でした。
今回のアップグレードにあたっては、デザインテンプレートそのものをプラグインに依存しない形に書き替えたことと、データベースをMySQLに変更したことで、問題を解決しました。携帯版の「フォーキー☆カーニバル」もまあまあ快適に動作します。

コメントを投稿

※サーバーの状況によって、投稿完了まで時間がかかることがあります。
※投稿内容がすぐに反映されないことがありますが、ページを再読み込みするとコメントが表示されます。
※入力したURLは公開されますが、メールアドレスは公開されません(管理者に対してのみ通知されます)。