MovableType(MTOS)+mod_fcgid +mysqlでの文字化けを直す

| | コメント(0) | トラックバック(0)

背景

MTOS を mod_fcgid 上で動かすと高速化できるが、しばらくすると画面が文字化けしていた。
データベースは mysql 5.2.4 を使用している。

再現方法

# service httpd reload
# service mysql restart

原因

Apache 起動後しばらくするとデータベースとのコネクションが切れる。
その後再接続するときに、MovableType内部で「set names utf8」が実行されないため、発生する。

対策

/etc/my.conf に次の記述を追加した。
default-character-set = utf8
skip-character-set-client-handshake

考察

本当は mt-config.cgi やMTOSの修正で対策できるのが良かったが、うまくいかなかった。

mt-config.cgi に次の記述を追加するのは、効果がなかった。
SQLSetNames 1

また、lib/MT/ObjectDriver/Driver/DBD/mysql.pm の 72行目付近に次の行を追加したところ、DBから取得したデータ以外の画面上の日本語が文字化けした。
$dbd->{mysql_enable_utf8} = 1;

トラックバック(0)

このブログ記事を参照しているブログ一覧: MovableType(MTOS)+mod_fcgid +mysqlでの文字化けを直す

このブログ記事に対するトラックバックURL: http://trasis.jp/cgi-bin/mt/mt-tb.cgi/32

コメントする

2009年8月

            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31