Xserver上のWordPress MEをUTF-8に
最近時間があるので、サーバーとかサイトを色々いじってる。
XserverでWordPress MEを運用(放置)してるんだけど、さっきコントロールパネルのMySQLの所を見たらMySQL 4から5にアップグレード出来ると言うことに気づいた。条件としては、データベースとユーザーを全ていったん削除すること。いったんバックアップ取らないとダメだね。せっかくなら文字コードもUTF-8にしよう、と思いついた。
ということでやったこと。
- データベースのバックアップ(phpMyAdmin)
- 既存DB、ユーザーの削除(Xserverのコンパネ)
- MySQLのアップグレード(Xserverのコンパネ)
- データベースバックアップファイルの修正
- データベースのリストア(phpMyAdmin)
- 設定ファイルの修正(FTPでダウンロード、修正、再アップ)
○以下詳細、補足
・データベースのバックアップ(phpMyAdmin)
DROP TABLEステートメントを出力するようにしとくと、リストアで何かエラーが起きた時とかに、いちいちテーブルを手動で削除する必要がなくて便利。
・データベースバックアップファイルの修正
wp_options テーブルを修正する(3点)。
– option_name が blog_charset の行、EUC-JP を UTF-8 に変更。
– option_name が wp_user_roles の行
s:6:”管理人” などという値があるけど、この6という数字はbyte数。EUC-JPの場合、日本語1文字=2バイトなのに対し、UTF-8の場合は日本語1文字は(通常)3byte。と言うことで、s:6:”管理人”をs:9:”管理人”に変更。それ以外の日本語のところも同様に変更
– option_name が rss_* の行で文字化けをしているところがあったので、その行は削除した。名前からして管理画面に表示される最新情報とかっぽいので。これをやらないと「あなたはこのページにアクセスする権限を持っていません。」というエラーが出る。
・データベースのリストア(phpMyAdmin)
リストアの際に、バックアップファイルの文字コードをちゃんと指定する。自分の場合EUCでエクスポートしたので、eucjpmsを選択。
・設定ファイルの修正(FTPでダウンロード、修正、再アップ)
以下変更点のみ
//↓MySQL 4の時はlocalhostだった
define(‘DB_HOST’, ‘mysqlxx.xserver.jp’); // 99% chance you won’t need to chan
define (‘WPLANG’, ‘ja_UTF’);
//念のため入れといた。削除するとどうなんだろう?未確認
define(‘DB_CHARSET’, ‘utf8’);
define(‘DB_COLLATE’, ”);