kwLogにMovable Type 4.0を導入しました

Movable Type 4.0が公開されたのでアップデートしてみました。その手順メモです。

1) ダウンロード
個人で使うライセンスについては今までと同様で無料です。

個人ライセンスとは、個人名義でダウンロードされ、個人所有のサーバーやレンタルサーバーで個人的な日記等を書くためのライセンスです。この用途であれば、アフィリエイトをおこなうことに問題はありません。

http://www.sixapart.jp/movabletype/license.html#personalより引用
というわけで
http://www.ecbuyers.com/b2c/catalog/default.php?cPath=28_127
からダウンロードできます。

2) バックアップの作成
sshでxreaのサーバにログイン。

tar cf weblog.20070811.tar weblog
tar cf mt.20070811.tar mt
/usr/local/mysql/bin/mysqldump --all-databases > mysqldb.dump -u makotokw  --opt

3) 以前のバージョンのデータの削除

バックアップを作成した事を確認したら FTP プログラムで、アプリケーションディレクトリとスタティックディレクトリの内容を空にします。これは、以前のバージョンとの混在を防ぐためです。

アプリケーションディレクトリ: /home/example/www/cgi-bin/mt
スタティックディレクトリ: /home/example/www/mt-static

とりあえずrename
# mv mt mt334
4) movablet type 4をアップロード
続いてローカルにあった旧バージョンの

  • /default_templates
  • /mt-static
  • /php
  • /plugin

をアップロードします。

(あとでローカルにないファイルがあり、サーバにバックアップしたファイルをcopyすればよかったと後悔しました)
5) 表示の確認
とりあえずインデックスファイルを再構築してみます。

が、デザインが崩れています。

ブログディレクトリ/styles-site.cssの中身を見ると旧バージョンと微妙に違います。

旧バージョン)

/* This is the StyleCatcher theme addition. Do not remove this block. */
@import url(http://makotokw.com/mt/mt-static/themes/base-weblog.css);
@import url(../mt/mt-static/themes/theme-kwlog2/theme-kwlog2.css);
/* end StyleCatcher imports */

新バージョン)

/* This is the StyleCatcher theme addition. Do not remove this block. */
@import url(base_theme.css);
@import url(http://makotokw.com/mt/mt-static/themes/theme-kwlog2/theme-kwlog2.css);
/* end StyleCatcher imports */

とりあえず。

# mv mt/mt-static/themes/base-weblog.css weblog/base_theme.css

で、デザインは元通りになりました。

ここですべてのファイルを再構築。

6) phpプラグインの修正
個別のページを表示しようとすると、phpのダイナミックパブリッシングでエラーが発生します。(トップページはPerlによる静的ページのため問題なし)

Smarty error: [in mt:44 line 4]: syntax error: unrecognized tag 'mtiddyprofileurl' (Smarty_Compiler.class.php, line 580)

ググってみたところ
http://www.antimon2.atnifty.com/2007/06/plugins_for_dynamic_publishing_on_mt4.html
に情報がありました。

ファイル名をすべて小文字にする(*1)
オリジナル・タグの機能を記述した関数名もすべて小文字にする
その他、プリセット、オリジナル問わずテンプレート・タグ名を記述している箇所があればすべて小文字にする

をやらないといけないらしいのです。

この問題にはIddyのプロフィールの表示と、Captchaのプラグインでそれぞれphp用のプラグインを作成していたのが該当していました。というわけでファイル名と関数名をひたすらなおしました。が、小文字に統一されたのは何もこれだけではありませんでした。

phpで使うconfigの連想配列のキー名もすべて小文字になってしまったようです。つまり、
$ctx->mt->config[‘MTDir’];
などは
$ctx->mt->config[‘mtdir’];
にしないとアクセスにしっぱいします。

これらの対応を行いようやく表示できました。修正後のパッチを以下に置きました。

さすがにperlメインなSix Apart様はphpダイナミックパブリッシングなユーザには厳しめですね・・・