WordPressMEの安定バージョンは2.0.11と2.2.3なんだそうで,私の管理するサイトは全て2.1.3。
つまり,この2.1系は開発対象外なんだそうで,何故こんなバージョンが・・・とぼやきつつ,2.1.3から2.2.3へのバージョンアップに挑戦してみました。
ところが,2.2系からは文字コードが「UTF-8」のみが対象とのことで,現行の「EUC-JP」からの変更が必要。ちょっとややこしそうなので,随分放置していましたが,「ブログの文字コードを EUC-JP から UTF-8 へ変更するためのマニュアル」が登場しています。
以前から存在していたのですが,当時は箇条書きで,具体例が無かったようで,今は随分判り易くなっています。
phpMyAdminのインストールから書かれていますが,xreaを借りていますのでここは割愛。・・・「UTF-8へのエンコーディング」をエクスポート時に行う関係から,kanji-encoding.lib.phpへのパッチは行っておいた方がいいようです。xreaならドキュメントルート下のlogディレクトリにphpMyAdminがインストールされています。
xrea以外のサーバ等で,phpMyAdminを触れない場合は,そのままエクスポートしたファイルを TeraPad なんかで「UTF-8N」として保存しなおせばいいだけ。
(データ量が少なければ,この方法で十分)
さぁ,いよいよUTF-8化に挑戦!
先ず,MaintenanceModeプラグインを導入(WordPressMEが2.1系の場合は・・・と言うかEUC-JPは・・・V3.2ではダメで,V2.2です)してメンテナンスのアナウンス状態に。(後々,このことが壁となって立ちふさがる)
他のプラグインは,必要最小限にとどめて「無効化」しておいたほうがよさそうです。
次に,phpMyAdminからの操作。テーブル接頭語を(安易にも)wp_にしていたので,この際別の接頭語に変更。・・・説明の都合で utf-_とします・・・
っと,その前に一応 wp- 分をバックアップ。ここでは,文字エンコードなどせずにそのままエクスポート。・・・いざと言うときの保険です。
注意1:一応テーブルは全部で10種類になるのですが,利用していたプラグインによっては,更に幾つか増えます。
ここからややこしくなりますが,変更後のテーブルを全て選択して,それらを「UTF-8にエンコード」するモードでエクスポートします。
で,データベース側のテーブル本体を「削除」します。ちょっと勇気が要る場面ですが,思い切るしかないですね。
データベースが空になったところで,さきほど「UTF-8」でエクスポートしたファイルを,データベースに書き戻す作業・・・インポート・・・を行います。
データベース側の作業はこれでおしまいの筈でしたが,1箇所だけ修正が必要で,
UPDATE utf_options SET option_value = 'UTF-8' WHERE option_name = 'blog_charset';
というSQLを実行して WordPressME の文字コードが UTF-8 だと教えてやらなければならないんですね。ちょっと紛らわしい。・・・ utf_option の utf_ はテーブル接頭語です!
一先ずこれでphpMyAdminから離れて,FTPモードでwp-config.phpを編集します。ここでも,文字コードがUTF-8であること,新たなテーブル接頭語を設定します。
さぁ!これでUTF-8モードでWordPressMEを立ち上げて・・・???
メンテナンスモードが表示されるだけ?admin.phpにアクセスしても「あなたはこのページにアクセスする権限を持っていません。」と言われるだけ。
さぁ困りました。ここからは,TheInternetを駆け回り,なんとか以下の情報を得るました。
1. Windows環境に限り「wp_optionsテーブルのwp_user_rolesと言うoption_nameで漢字のバイト数(s:*)が3バイトではなく2バイトのまま
2. 変更したテーブル拡張子に置き換わっていない箇所がある
1と2を夫々独立して対応してみたのですが,それでもダメ!
え?いっ,ままよ!・・・と短絡的に,ここで2.2.3を上書きインストール。
update.php を実行して,さぁどうかな?・・・やはりダメです。入れません。
もう一度,1,2の問題点を見直してみると,同時には設定していませんでした。ですから,もう一度「文字数の変更,テーブル接頭語の適用」を行ってみましたら・・・すんなり,管理画面が表示されて,大成功。
う?ん・・・・WordPressME2.1.3から2.2.3へのバージョンアップは要注意です。
PS.タイムスタンプの項の表示が未だおかしい・・・
コメント