« 鉄の跡 | メイン | ウソをつく技術営業の話し »
2006 - 7 / 8
Movable Type 3.3 へアップグレード
休みの日に家にべったりいることは稀なぼくですが、今日は朝からずっとパソコンです。
この Blog の作成に使っている Blogツール「Movable Type」 を、Movable Type 3.171 から、Movable Type 3.3 へアップグレードを行いました。
「不具合のないシステムには手を加えない」
がモットーなぼくなのに、出たばっかりの 3.3 に、です。
しかも、やっぱり初物に付きものの不具合があって、それの修正版を後日リリースすることが正式アナウンスされているにもかかわらず、です。
Six Apart のサイトには、丁寧なアップグレードマニュアルもあります、それに従って作業しても、当然ながら不具合は発生してしまいます。
とりあえず、備忘録も兼ねて、ぼくが行ったアップグレード手順と、不具合の対策を記します。
- バックアップ
ホスト側のすべてのファイルを、ローカルにバックアップします。
ぼくは Berkeley DB を利用していたので、ディレクトリごとFTPでバックアップすれば OK でしたが、MySQL や PostgreSQL を使っている場合は、サーバー管理者に問い合わせてください。
- Movable Type 3.3 のダウンロード
Six Apartのサイトに接続して、ダウンロードページに移動します。
今回から、ECバイヤーズ からのダウンロードになりました。
ダウンロードしたファイル "MT-3_3-ja.zip" は解凍します。
- "mt-config.cgi" の修正
ぼくの場合、ver_3.1x からのアップグレードなので、コンフィグファイルの名称が異なります。
ver_3.1x では、"mt.cfg" でしたので、これを "mt-config.cgi" にリネームします。
ただオリジナルの "mt-config.cgi-original" を見れば分かるのですが、コメントが削除され、500行近かったものが たったの 46行にシェイプアップされていますので、ぼくは旧ファイルのリネームではなく、新ファイルを編集しなおしました。
といっても、ほんの数カ所だけです。
最低限必要なのは、
・CGIPath
・StaticWebPath
・利用するデータベース設定
だけです。
さくらインターネット では、CGIはどこでも動きますので、「StaticWebPath」はコメントアウトします。
そして、ぼくの場合、以下の設定をします。
・NoHTMLEntities 1
・PublishCharset utf-8
・AltTemplate comments comments.tmpl
・LaunchBackgroundTasks 0
・TypeKeyVersion 1.1
・AltTemplate feed results_feed.tmpl
- ホストからファイルを削除
データベースとアーカイブ、スタイルシートや外部ファイル以外のファイルを、すべて削除しました。
具体的には、
・docs
・extlib
・images
・lib
・php
・plugins
・schemas
・search_templates>
・tmpl
・tools
の各ディレクトリと、インストールディレクトリにある、拡張子が
・.cgi
・.php
・.js
のファイルです。
- アップロード
ひたすらアップロードです。
1,000以上のファイルをアップしますので、気長に待ちたいところなのですが、そうはいきません。
FFFTP がハングアップするのです。
ファイルの数が多すぎるせいか、100ずつくらいに分けて何度かアップしないとうまく行かないのです。
そういえば新規インストールのときもそうだったなぁ。。。
アップロードが完了したら、各々のファイルのパーミッションを適切に設定します。
- "mt.cgi" にアクセス
ログインすれば、あとは自動的にアップグレードが進みます。
- 再構築
とりあえず、メインインデックスのみ再構築してみました。
これならファイルひとつなので、すぐに終わります。
「Powered by
Movable Type 3.3-ja」
が出て、アップグレードが成功したことを確認できました。
ところが、ここからが問題でした・・・。
- 不具合その1 -再構築で500エラー-
これは、ver_3.2 のときに大きく取り沙汰された問題なので、今回はそんなに話題には上ってないみたいですが、ぼくみたいに ver_3.1x から ver_3.3 へ 3.2 を飛ばしてアップするような場合は、予備知識無しだったので慌てました。
結局は、Berkeley DB がノロマなためにタイムアウトしてしまうようです。
たとえば、「EntriesPerRebuild」の値を、デフォルトの "40" から "10" などに下げてみれば、改善されるのかもしれませんが、いっそのことデータベースを変更しちゃえということで、ぼくの場合 「SQLite」 に切り替えました。
データベースの変更には、Movable Type に標準でインストールされる "mt-db2sql.cgi" を利用するのが正規の方法ですが、ぼくは Ogawa::Memorandaさんトコで公開されている "mt-db-convert.cgi" を使ってコンバートしました。
アップロードした "mt-db-convert.cgi" にブラウザでアクセスすると、以下のような設定画面が現れますので、自分の環境に合わせて設定を変えて[convert]ボタンを押すと、あっという間にコンバートが完了します。
成功すると、以下のようなメッセージが表示されます。
Done copying data from DBM to DBI::sqlite!
All went well.
Your recommended setting
-------------------------------------
# DataSource /hoge/hogera/db
ObjectDriver DBI::sqlite
Database /hoge/hogera/sqlite/sqlite.db
-------------------------------------
これは、"mt-config.cgi" を編集する際の助けになります。
といっても、ここまでの作業を自分で行ってきたのなら、言われるまでもない内容ですが。
"mt-config.cgi" のデータベースに関する部分を、たとえば以下のように書き換えます。
##### SQLITE #####
ObjectDriver DBI::sqlite
Database /hoge/hogera/sqlite/sqlite.db
##### BERKELEYDB #####
# DataSource /hoge/hogera/db
ここまで来れば、あとは "mt.cgi" にブラウザからアクセスして実行すれば完了です。
- 不具合その2 -月別アーカイブが正常に再構築されない-
アーカイブの中でも、月別と日別のアーカイブが、正常に再構築されなくなってしまいました。
何月のアーカイブを見ても、何日のアーカイブを見ても、メインページと同じように最新のエントリ以下がズラリと表示されてしまうのです。
ただこれは、Six Apartのサイトで報告されているように、月別。日別それぞれのアーカイブテンプレートの、MTEntriesタグ が、何の属性も付けられていないのが原因とのことなので、当該タグに 例えば以下のような属性を付与することで解決できました。
<MTEntries sort_by="created_on">
- 丸っこ再構築
あとはすべて再構築するだけです。
Berkeley DB から SQLite にしたこともあって、再構築も早くなりました。
でも 3.1x のときのほうが、キビキビ動いてたかなー。
投稿者 hamayo : 2006年7月 8日 21:50
