2005年11月29日

Movable Type3.2へのアップグレード(SQlite化)

で、今回のバタバタに関する備忘録です。
わかんない人には何のことやらちんぷんかんぷんだと思います。すいません。


僕が使っているサーバーはロリポップです。
他の色んなサイトで説明されているマニュアル通りにアップグレードを進めました。

参考にしたサイト
MovableTypeで行こう!
Milano::Monolog

簡単な手順

・TypeKeyからMT-3.2-ja-2の圧縮ファイルをダウンロード
・サーバー上にあるMT関連のファイルをPCにバックアップ(ディレクトリの名称をmt_backup等、わかりやすいものに変更する)
・エントリーを書き出し(これ、とっても重要
・MT-3.2-ja-2ファイルを解凍し、解凍したフォルダをサーバー上のディレクトリと同じ名称に変更
・mt-config.cgi-original を、mt-config.cgiに名称変更
・mt-config.cgiを修正(この辺りに関しては、色んなところで詳しく述べられているのでそちらを参照して下さい)
・バックアップを取ったディレクトリのうち、pluginsフォルダの内容を全てMT3.2のpluginsフォルダにコピー(ただし、同じ名称のものがあった場合は上書きしない方がいいと思う)
・MT3.2のファイル群をアップロード
・cgi属性を全て700に変更(examples/plugins/mirror/mt-mirror.cgiもお忘れなく)
・mt.cfgを削除(これ、とっても重要...だと思う)
・mt-check.cgiを起動。一番下に「準備が整いました。 サーバーには必要なモジュールがすべて揃っています。...」と表示があればOK(のはず)。
・mt.cgiを起動。あとは、画面の指示に従うだけ。管理画面が格好良くなっているぞ♪

ところが...。

ここで、例の問題が発生。再構築すると、500エラーが頻発してしまうのです。
どうもBerkleyDBとMT3.2の相性が悪いというか、とんでもない負荷が掛かっているらしく、それでエラーが頻発するらしいのです。
うーむ...。いよいよSQL何とかに移行しなければならないのか...。

で、いろいろ調べた結果、ロリポップではSQLiteというのを使うのが一番いいらしいということが判明。
僕の場合Berkeley DB→My SQL→SQLiteという、非常に面倒くさい方法で変換を行い、現在に至っております(実はMy SQLを経由しなくても変換できたのね...)。

Berkeley DB→SQLiteの変換

mt-config.cgiのうち、Berkeley DBとSQLiteに関する箇所を書き換え、文頭から#を外します。この辺も色んなサイトで詳しく書かれていますので、そちらを参照のこと。
mt-db2sql.cgiで変換すると、最初はエラーばかりだったのが、自分でdbフォルダの中にmtdbというフォルダを作っていたことが原因と判明!(バカだねぇ)


でも、なぜかうまく変換されません。
つまずいたのが、変換しているのに途中で止まっちゃうというヤツ。
Ogawa::Memorandaで配布されているmt-db-convert.cgiを使ってコンバートすることも試してみましたが、駄目。

色々悩んだ結果、サーバーに残っている過去のエントリーを全て消去し(!)、あらかじめ書き出しておいたエントリーのほんの一部だけを読み込ませ、それから変換するという荒技に至りました。

ところが、それでもうまく変換出来ない...。で、一体何処で止まっているのかというのを見ていたら...ハタと気が付いた。いわゆる「過去ログ(エントリーではない)」の変換にやたらと時間を要していることが判明。一か八かで、dbディレクトリにあったlog.dbを削除してみました。最悪、バックアップしているから元に戻ることは可能だし。

これが功を奏しました。無事に変換できたみたい?

あとは、mt-config.cgiのBerkeley DBに関する記述をコメントアウト(文頭に#をつける)して、書き出していたエントリーを少しずつ、少しずつ読み込ませて(いっぺんに読み込ませようとすると、エラーが発生するから)、何とか無事に完了。

これで、ブログとしての体裁は生き返りました(ここにたどり着くまで丸一日と半日要しました)。

デザインは...斬り捨てた方がいいみたいですね。
古いスタイルシートは、読み込んだらデザインがメチャクチャになりました。
で、長年お世話になっていたHINAGATAさんから小粋空間さんへの乗り換えを図った、というわけ。

ちなみに、dbフォルダのうち.dbファイルに関してはSQliteへの移行によって、捨ててしまってもいいみたいなのですが、怖くて捨てていません。

MT3.1x→MT3.2への教訓

アップグレードではなく、新規にインストールするつもりで臨むこと。
よって、今のデザインも捨てる意志で臨むこと。
事前のバックアップは確実に行うこと。
エントリーの書き出しは絶対に忘れないこと。
インストール時も、目を離さないこと。長時間要するが、一つのファイルがインストールされなかったことで起動しないこともありうる。
解凍したファイルは、全て上書きとすること。
エラーが生じる場合は、そのエラーの原因となっているファイルを差し替えてみること。
それでも駄目なら、フォルダごと入れ替えてみること。
それでも、それでも駄目なら他のフォルダも入れ替えてみること。


以上、気になった点をつらつらと書きつづりました。

トラックバックURL

このエントリーのトラックバックURL:
http://nonvey.oops.jp/cgi/mt/mt-tb.cgi/5417

コメント(3)

うわあ。ものっそめんどくせーw

そもそも、私のブログはMySQL使えてません。
何度かチャレンジしたんですが
うまく行かないのです。
意味不明です。
一回全部飛んだ時に
新たに設置した際にやれば良かったのに
復興ばかりに気が行って、すっかり忘れていたのでした。

nonveyさんお疲れ様でした!ほんと!
こんなん私には無理だわー。
アップグレードはもうしませんっ。懲り懲りなのです。
また眠れない夜がくると思うと・・・w

ホント、我ながらよくやったものだと思いますよ(笑)
そもそもMySQLの意味すらもわかっていないような有り様ですので、アップグレードした意味はあったのか?と自問自答しています。
ただ!スパムはいくつか弾かれたみたいです。敢えてアップグレードの意義を見出すとしたら、この辺りかな。逆に、再構築は未だにうまくいきません。特に日別は完全にアウトです。
ま、正直3.17でも不便は感じていなかったわけで、無理してアップすることもなかったな、と今は思っています。

3.3にアップグレードしたら、記事の更新もままならなくなってしまいました。(汗)
もしまだMTの3.17や3.2をお持ちでしたらそちらをお譲りいただけませんか?

よろしくお願いいたします。

コメントする