MTのアップグレードとエラー対策

ようやくMTをアップグレードしました。
ちょっと一波乱あったので、軽く記録しておきます。

ちょっと苦労したこと

3.2にアップグレードしたあと、Blogをまとめて再構築しようとしたら
なぜか「500 Internal Server Error」。

最初はCGIの設定ミスでもしたかと思ったけど、そういうわけでもなし。

少しGoogleさんに聞いてみたところ、どうやらデータベースが悪さをしてたらしいです。

原因と応急処置

ブログ記事のデータベースにBerkeleyDBを使っていると、
再構築のときにメモリを大量に使うというのがエラーの原因。

これに加えて、テンプレートを変更して、
個別ページとかにコメント一覧を表示させたりすると、もっとメモリを使うらしい。

・・・はい、どちらも見事に該当してます(苦笑

一番手っ取り早いのはデータベースを変更することなんですが、
サーバ側もいじる必要があるのでちょっと面倒。

ということで、応急処置。一度に再構築するページ数を減らします。

具体的には、mt-config.cgiの中にある

# EntriesPerRebuild 40

の記述をいじります。初期設定だとコメントアウトされてますが、
実際には40ページずつ再構築してました。

思い切って5ページまで減らして、

EntriesPerRebuild 5

と改変。何度も通信するために時間はかかるようになったけど、
エラー無しで再構築完了しました。

これで全てのページに Movabletype3.2-ja-2 の記述が現れ、無事アップグレード終了。

今回やった方法以外にも、
「PHPでモジュール化で軽くする」とか、「再構築用のツールを使う」とか、
方法はいろいろあるみたいなので、後でまた試してみようかな。

参考にした記事

小粋空間:Movable Type で再構築エラーになる場合の原因と対処