RSS

初出:2007年12月 3日 20:11

更新:2007年12月 9日 00:58

かねてからの懸案事項だった、うちのブログサーバをMovableType 4へ移行する計画をようやく遂行しましたよ。とは言っても懸案ってほど必要にかられていたわけじゃないし、新しくして目に見えるメリットがあるかどうかも定かではない。Six Apartの製品情報を見てても、複数のユーザーやブログを管理するサイトには便利そうだけど、一個人ユーザーが細々と運用するのには、それほどのメリットは見えません。

でもね、実は数ヶ月前にちょっとした興味でトライして、いろいろと不具合が続出したんで、そのまま元のバージョンに戻しちゃったんです。それがなんか気持ち悪い。特に不具合があったわけじゃないけど、気持ちの悪さを感じていたんですね。そこで週末に再度トライしたわけです。

不具合、というか不都合のポイントは、まず、mt4i(携帯向けブログサーバ)のMT4対応。10月末にMT4に対応したVer.3.0βが出たので、まずはそれに移行することから始めました。インストール手順どおりに進めればだいたいOKなんですが、うちの環境では「Can't locate MT.pm in @INC」などとエラーが発生。いろいろ調べてみると、CPANのHTML::Template.pmモジュールをあらかじめインストールする必要があるんですね。インストール手順ページにさりげなく書かれている「HTML::Template が必須です」を見逃してはいけません。

mt4i 3.0は最近スタートしたモバイル版AdSenseにも対応しているというので、さっそくAdSense管理ページから携帯用のHTMLコードを取得し、mt4iのテンプレートに追加してみました。…が未だ表示されず。AdSense管理ページによると48時間くらいかかるって話なので、気長に待つことにしましょう。

次の不都合は、MT3で構築してMySQLに蓄積されているブログデータが、そのままではMT4上で綺麗に動かない問題。具体的には、サイトの再構築をかけると「MTEntryDateを日付コンテキストの外部で利用しようとしました。」なんてエラーが出るわけです。この原因はMT3で構築したDBをMT4で再利用した際に起こる不整合のようです。いちいちテンプレートをすべて書き換えるのは気が萎えるので、えいやっと以下の手順を行い、なんとかうまくいきました。

  1. MT4のシステム管理ツールから「バックアップ」を選び、データを丸ごとバックアップ
  2. phpMyAdminで、新しいデータベース「mt4」を作成
  3. mt-config.cgiを開いて、Databaseをmt4に変更
  4. MT4のシステム管理ツールの「復元」から、そのデータをおもむろに復元

MT4でデータを書き出して、MT4で復元しているんだから、あまり意味がないんじゃないかって思うんだけど、動いているんだから由としましょう。ちなみに、復元を実行するとプログレスバーによるステータスが表示されるんですが、5時間ほど放ったらかしにしても一向に終わりません。もうひとつブラウザを起動して管理画面にアクセスしたら、とりあえず移行できていたみたいなので、復元中のブラウザはここで終了。

でもまだ問題発生です。MT3時代のユーザーは当然引き継がれているんですが、なぜかログインに問題発生。管理画面で何かする度に、何度もログイン画面に戻ってしまうんです。ネット上にもこれに関する情報はあまりないので、手を焼きました。MTが生成するCookieに問題ありって書いてあるページもありますが、ブラウザからCookieを消してみたところで症状は変わらず。これもMySQL内における不整合を疑うのが筋ってもんでしょう。そこで、MT3時代のユーザーをなんとかするのは諦めて、新たにユーザーアカウントを作り、それとこのブログを紐づける方法で解決しました。

うちはブログの更新をectoってアプリケーションでやってますが、これはXML-RPC APIを使ってMovableTypeと接続する仕組みです。その設定画面で、今まではユーザー名と管理画面にアクセスするパスワードを設定してたんですよ。でもMT4にすると、ユーザーのプロフィール設定内にある「Webサービスパスワード」というのを指定しないといけないみたいです。これ豆知識。

そんなわけで、なんとかMT4化がひとまず完了。これで何のメリットがあるのか未だ未知数ですが、きっとこれから良いことがあるのでしょう。これだけ苦労したんだから、そう信じたい。あ、そうだ。iPhone/iPod touch用MTインターフェイス「iMT」というのもありますね。最近はiPhoneで一言メモ的に入力するのはすべてTwitterにしているので、あまり出番はなさそうですが、とりあえず入れてみようと思います。


【追記】

解決したと思った、何度もログイン画面に戻ってしまう問題。いきなり再発しました。うちのMT4は非サポート版なのでSix apartに問い合わせることもできないので、「こういう問題が出ましたよ」というフィードバックという形で連絡したら、担当の方からサポートメールをいただきました。その中には「同様のご指摘は特にいただいてないので、システムの不具合とは考えづらい」と書かれていたので、次は何を疑えばいいのかと色々調べていると、MySQLデータベースのためPerl DBIドラバである「DBD::mysql」が古いバージョンだったことを発見。ダメもとで2.9004にアップしたところ、なんと治まりました!

次に、携帯用のmt4iでAdSenseを出す部分ですが、どうしても出ない。いつまで経っても出ない。そこでApacheのログを見たところ、PerlでWebにアクセスするためのライブラリ「LWP」が、これまたインストールされていないことを発見。こちらを参考にインストールしたところ、しっかり表示されました。

Googleさんは、この記事をこんな風に解釈しました
Googleさんは、この記事をこんな風に解釈しました

コメント

コメントする











名前、アドレスを登録しますか?








このエントリーのトラックバックURL:

トラックバック一覧


記事の詳細ページ

記事の全文を表示します。関連するコメントやトラックバックなどもこちらからどうぞ。

本日のBGM

Ajaxで動いてます。詳しくはここ

Now & Then