« テーブルの列をソートできるようにする | トップページ | JavaScriptでユーザーに親切なフォーム入力 »

2008.04.25

Movable Type の再構築時にエラーになる…

ロリポップの場合はBerkeleyDBからSQLiteに移行しましょう

数日前からウチのサイト のマークアップとCSSを見直して、よりWeb標準準拠に基づいた修正を行っていました。…そこでMovable Type(3.2です)で構築している制作実績を紹介するページFlashコンテンツのサンプルを紹介するページに不具合が発生!
もともとエントリー作成時や再構築時に良くエラーがでていたので、おそるおそる触っていたんですが、今回はインデックスページ以外、ほとんどで再構築エラーが発生するようになり…。
しかも、一度デフォルトに戻してみたものだから、それ以降カスタマイズしたテンプレートを受け付けてくれない…。自分のサイトなので、緊迫感はないけれど、結構困りました。
しかし、いろいろ調べていくウチに原因と対処法が分かりました。いやいや、Webってありがたい。

Movable Typeでは、もともとデータベースにBerkeleyDBを使っているんですが、パフォーマンスが悪いようです。特にレンタルサーバーにロリポップを使っていると、かなりの確率で再構築エラーになるみたいです。
なので、DBをBerkeleyDBからSQLiteに移行した方が良いというページを見つけ、その後もいろいろ調べて問題解決しました。
参考にさせて頂いたページを下記に書いておきますので、同じようにお困りの方は、一度読んでみるコトをオススメします。

小粋空間さん「Movable Type で再構築エラーになる場合の原因と対処」
小粋空間さん「Movable Type + SQLite」
Ogawa::Memorandaさん「mt-db-convert.cgi: MTデータベースの相互変換CGIスクリプト」
Ogawa::Code - Tracさん「MT_Database_Converter.ja_JP」
The blog of H.Fujimotoさん「Movable Type 3.2アップグレードの際にBerkeley DBから他のデータベースに変える手順」

データベースを移行してからは今までがウソのように再構築エラーが出なくなりました。早めにやっておけば良かったです…。しかし、そろそろ3.2からバージョンアップしないといけないですね。

しかし、(話は最初に戻って)Web標準準拠に基づいた修正とは言っても、IE6のバグでXML宣言ができないので、とりあえず文字のエンコードをShift-JISからUTF-8に変更しました。
調べてみると、phpだと条件付けをしてIE6以外の場合にXML宣言を読み込むコトができたり、.htaccessを使って同様な処理をする方法もあったんですが…。

まあ一番は、早くIE6が対象ブラウザから外れるといいんだけどなぁ…。

|

« テーブルの列をソートできるようにする | トップページ | JavaScriptでユーザーに親切なフォーム入力 »

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/35737/40988467

この記事へのトラックバック一覧です: Movable Type の再構築時にエラーになる…:

« テーブルの列をソートできるようにする | トップページ | JavaScriptでユーザーに親切なフォーム入力 »