Movable Type 3.2 日本語版がリリースされたみたいですね。
落ち着いたら移行しよっと。
via: Six Apart - MovableType News: Movable Type 3.2 日本語版の提供を開始
2005年9月30日金曜日
2005年6月15日水曜日
Dreamweaver 拡張機能 for Movable Type 3
Six Apart Japan: マクロメディアとシックス・アパート、Dreamweaver拡張機能 for Movable Type 3を発表
MTのテンプレートカスタマイズが効率的に!タグリファレンスは便利そう。
MTのテンプレートカスタマイズが効率的に!タグリファレンスは便利そう。
2005年3月8日火曜日
MovableType with PostgreSQLのインストールでの注意点
MovableTypeのインストールでストレージにPostgreSQLを選択した場合、ある条件でmt-load.cgi実行時に以下のエラーがでました。
>
上記エラーが発生した条件は以下のとおりです。
-MovableType - 3.151
-PostgreSQL - 7.3.5
-サイトの文字コードはUTF-8
-DBの文字コードがSQL_ASCII
エラーを回避するにはDBの文字コードをUNICODE(サイトの文字コードがEUCの場合はEUC_JP)で作り直せばOKです。
>
作成したデータベースの文字コードは以下のコマンドで確認できます。
>
PostgreSQLのVARCHAR型はバイト数でなく文字数で指定できるのでデータベースの文字コードをUNICODEにした場合はバイト数は50バイトを超えていても文字列として50文字以内であればインサートできるようです。
>
<
Insertion test failed on SQL error ERROR: value too long for type character varying(50)
上記エラーが発生した条件は以下のとおりです。
-MovableType - 3.151
-PostgreSQL - 7.3.5
-サイトの文字コードはUTF-8
-DBの文字コードがSQL_ASCII
エラーを回避するにはDBの文字コードをUNICODE(サイトの文字コードがEUCの場合はEUC_JP)で作り直せばOKです。
>
<
createdb -E UNICODE mt_database_name
作成したデータベースの文字コードは以下のコマンドで確認できます。
>
<
psql -l
PostgreSQLのVARCHAR型はバイト数でなく文字数で指定できるのでデータベースの文字コードをUNICODEにした場合はバイト数は50バイトを超えていても文字列として50文字以内であればインサートできるようです。
2005年1月4日火曜日
MT3.x+mod_perl環境でMTプラグインのロードに失敗するとエラーになる
結構前からなぜかmod_perl環境でMTが動かなくなってしまっていて、しょうがなくCGI環境で動かしていたんですが、どうにも遅くてやりきれないので、ちょっとMTのソースを追ってみました。
エラーの内容はこんな感じです。
>
App.pmの該当行ををみてみるとどうやら、apacheのリクエストオブジェクトが空のためエラーになっている模様。さらにソースを追ってみると、親クラスのMT.pmでのinitでこけていることが判明。そこでMT.pmにwarnを仕込んでデバッグしてみたところ、プラグインのロードに失敗した際に呼ばれるlogメソッドが原因だと判明しました。
MT.pmのinitメソッド内では、pluginのreiquireに失敗すると、$mt->logメソッドを呼び出すのですが、このlogメソッドはMT::App.pmで定義されたlogメソッドによりオーバーライドされています。
そのMT::App::logでは$mt->{apache}->connectionを呼び出しているのですが、$mt->{apache}はこの時点ではまだ生成されていないため、最初に書いたようなエラーがでていたのでした。
このエラーを回避し、プラグインのロードに失敗した際もMTが止まらないようにするためには、失敗した際に、$mt->logではなくMT::logを直接呼び出すように書き換えればOKだと思います。とりあえずパッチを書いてみました。
>
エラーの内容はこんな感じです。
>
<
Got an error: Can't call method "connection" on an undefined value at /path/to/mt/lib/MT/App.pm line 594.
App.pmの該当行ををみてみるとどうやら、apacheのリクエストオブジェクトが空のためエラーになっている模様。さらにソースを追ってみると、親クラスのMT.pmでのinitでこけていることが判明。そこでMT.pmにwarnを仕込んでデバッグしてみたところ、プラグインのロードに失敗した際に呼ばれるlogメソッドが原因だと判明しました。
MT.pmのinitメソッド内では、pluginのreiquireに失敗すると、$mt->logメソッドを呼び出すのですが、このlogメソッドはMT::App.pmで定義されたlogメソッドによりオーバーライドされています。
そのMT::App::logでは$mt->{apache}->connectionを呼び出しているのですが、$mt->{apache}はこの時点ではまだ生成されていないため、最初に書いたようなエラーがでていたのでした。
このエラーを回避し、プラグインのロードに失敗した際もMTが止まらないようにするためには、失敗した際に、$mt->logではなくMT::logを直接呼び出すように書き換えればOKだと思います。とりあえずパッチを書いてみました。
>
<
--- MT.pm.orig Tue Jan 4 05:27:34 2005
+++ MT.pm Tue Jan 4 05:27:42 2005
@@ -292,7 +292,7 @@
$plugin = $1;
eval { require $plugin };
if ($@) {
- $mt->log("Plugin error: $plugin $@");
+ MT::log("Plugin error: $plugin $@");
return 0;
}
return 1;
登録:
投稿 (Atom)