続 Wordpress on Microsoftを日本語でちゃんと動かす(備忘)。
前回のエントリで、SQLのカラムをnvarcharとかに変更し、WordPress側の管理画面で文字コードをShift_JISにすれば、なんとか、というのを書いたのですが、やっぱり、こそばゆいので、ちょっと掘り下げてみました。
WordPressはUTF-8を推奨
と、いろいろなところに書いているので、やっぱりSJISで動かすのは負けた気がするのと、結果として動けばいいのですが、特定の文字列でビット落ちみたいになるので、やはりUTF-8で動かしたい。
やることは、
0)WordPress on Microsoft (SQL Server) をインストールする
1)SQL Server のテーブルのデザイン(データ型)を変更する
2)WordPressのソースコードを少しだけいじる
3)マルチバイトプラグイン、日本語化モジュールを入れる(オプション)
です。
0)は、
http://wordpress.visitmix.com/development/installing-wordpress-on-sql-server
こちらを参考にしていただくとして、
まず、1)。
SQL Server Management Studioで、デザインを開き、11個あるテーブルの型を1つ1つ変更します(そんなに大変じゃないです)。
varchar() → nvarchar() に変更
text → ntext
ntextは消えるといわれているのと、UNICODE対応で文字数が半分になるので、オーバーフロー等を考えると、nvarchar(8000)とかにしたほうがいいかもしれません。ま、Azureへのポーティングを意識するなら、n*しか対応してないので、いやおうなしですけど。
2)ですが、
Wordpress_home\wp-includes\wp-db\sqlsrv\sqlsrv.php (Wordpress_homeは環境に依存)の、403行目から406行目あたりにある接続情報を設定する箇所に標準のCharacterSetをUTF-8として加えてやります!
$connection_info = array(
'UID' => $dbuser,
'PWD' => $dbpassword,
'Database' => $dbname,
'CharacterSet' => 'UTF-8',
);
基本これでOKです。
3)については、オプションですが、
http://ja.wordpress.org/install-ja/
や
http://eastcoder.com/code/wp-multibyte-patch
からダウンロードし、手順にしたがってインストールすればいいでしょう。パッチ(プラグイン)の方は適用したほうがいいかもしれません。
軽くテストした範囲では問題は有りませんでしたが、ま、付け焼刃なので、何かあるかもしれませんが、あれば、また、改めてUPします。
あと、Azureに乗っけてみたいと思います。
ではでは。