WordPressME2.1.3から2.2.3へのバージョンアップは要注意

この記事は約4分で読めます。

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.タイムスタンプの項の表示が未だおかしい・・・

コメント