WordPress引っ越し顛末記


このブログや「Ritchie Blackmoreの部屋」を立ち上げたころ、WordPressを日本語で使おうと思ったらWordPress MEを使うのが早道でした。その後、WordPressは着々とヴァージョン・アップしていき、WordPressMEは2.2で更新が止まり、サポートも2010年には終了。

当然私も公式のWordPressにヴァージョン・アップしたかったのですが、当時のLacoocanで使えるMySQLのヴァージョンは4で、WordPressが要求するヴァージョンである5には「当面移行する予定がない」とのニフティの意向で使えず、MEの最終ヴァージョンのままでずっと使っていました。そのうちにLacoocanでもMySQL5が使えるようになりましたが、

データベースファイルの移行が面倒くせー

ということでデータベースの移行やWordPressのアップ・グレードは放ったらかしでここまでやってきたのでげした。

ところが先日、ニフティからのメールで「MySQL4提供終了のお知らせ」っつーやつが来ましてな。心がちょいとやさぐれましたよ。

「MySQL5はなかなか提供しなかったくせに旧バージョンを止めるときはえらくあっさりしてるじゃねーかっっ!!!」

とはいうものの、このままだと2,000記事を超える「Ritchie Blackmoreの部屋」が電子の藻屑と消えてしまうわけで、仕方なくデータベースの移行、新ヴァージョンのWordPressへの更新、この二つの作業をすることにしました。ニフティで両方のデータベースを共用できる期間は二週間に限られています。この間にすべての作業を終わらせねばナラナイノダッ(アイキャッチ&CM)

とはいうもののやること自体はシンプルなわけで。

  1. 従来使っていたMySQL4からデータをエクスポートする
  2. 今度使用するMySQL5へデータをインポートする
  3. WordPressをMySQL5で使用できるようにヴァージョン・アップする

たったこれだけ!たったこれだけをやるのに素人がどれだけ苦労するものかと(以下略

従来使っていたMySQL4からデータをエクスポートする
MySQL4対応のphpMyAdminでデータベースにアクセスし、ブログのデータベースファイルをエクスポートでパソコンに保存しますが、プラグイン関係の巨大なテーブルは無視していいでしょう(特にアクセスログ関係)。WordPress Meの基本的なテーブルは10種類なので、これらを保存さえしておけばいくらでも復旧可能です。

問題は文字コードですが、私がWordPress MEで使用していたエンコードはEUC-JPでした。このままだと本家を使用したときに日本語がばっちり文字化けしてしまいやす(本家はUTF-8)。なのでエクスポートしたデータをエンコードしなおすのですが、エクスポート時に余計なことをすると文字化けがなおらず泥沼にはまることになります。私ははまりました(笑)エクスポート時にphpMyAdminでデータベースにログインするときの文字コードは「EUC-JP」のまま、エクスポート画面に出てくる文字変換選択は「なし」が無難。

ファイルの容量が8MB以下ならば各テーブルをまとめてエクスポートしても問題なし。後で行う置換も手間がかかりまへん。

今度使用するMySQL5へデータをインポートする
保存したデータをMySQL5対応のphpMyAdminで新しいデータベースへインポートするわけですが保存したままのファイルでは何をどうやってもうまくいきまへんのでネットで対応策を検索してみませう。置換する文字列が二つ。文字コードをEUC-JPからUTF-8へエンコードしなおす。最低限これだけはやっておかないとうまくいきまへん。これらの作業にはエディタが必要ですが、エンコードの時に余計なもんをくっつけないやつじゃないとだめらすいです。Macならミミカキエディットやその後継のmi、Jeditなど。Windowsやその他の環境はしりまへんのでネットで検索してみませう。

インポート自体は一瞬で終了するはずです。インポートした後、各テーブルで日本語がうまく表示されているか確認して、ダメならやりなおしです。カテゴリー名に日本語を使用しているとエンコードがうまくいっていても文字化けするケースがあります。これは管理画面で修正してもいいでしょう。

エンコードがうまくいっていたらもう一仕事。”wp-option”とかいうテーブル(アタマのプリフィックスは設定次第で異なりますがとにかくoptionというテーブル)に「管理者」とか「購読者」とかの日本語が書かれてるフィールドがありまして、このアタマにバイト長の数字が書かれてます。「管理者」の場合だと日本語三文字。日本語一文字が2バイトで表されるEUC-JPだと6になりますがUTF-8だと同じ文字を3バイトで表すのでバイト長が異なることになり、データベースがアクセスしてきたアカウントの権限を認めてくれなくなります。「おめーの権限ねーから(意訳)」というメッセージに延々といじめられるという羽目に陥ります。私は陥りました(泣)なので6だったら9に直しておきます。また、「管理者」のあとにアルファベットが続いて、それを含めたバイト長が設定されている場合は「書かれているバイト長の数字」プラス日本語文字数、の数字に修正する必要があります。

WordPressをMySQL5で使用できるようにヴァージョン・アップする
WordPress MEはMySQL5で使用できないのですぐにアップグレードせねばなりませんが、現在のWordPressとのテーブル構成がかなり異なるのでいきなり最新バージョンをインストールしてもロクなことにならないです。なんとか抜け道はねーかといろいろやりましたが素人には無理でげした。これで三日間は無駄にした(莫迦)

てことで、まずはWordPress MEからWordPress 2.5へ更新します。通常のアップグレードは”config.php”は削除せずに行いますが、今回は特別に”config.php”を削除しちゃいます。なので、アップグレード前にはかならず旧バージョンのディレクトリを丸ごとダウンロードしてバックアップをとっておいてくだされ。んで、それ以外は通常のアップグレードと同手順を踏みます。そして管理画面にログインしようとすると「”config.php”がありません」てことになり、”config.php”を作り直すことになります。ファイルをエディタで直接書き換えてもいいのですが、なぜかその後のアクセス権限が締め出されちゃいます。この画面でファイルを作成しなおすとその後うまくログインできるケースが多いです。

で、再度ログインするとうまく管理画面が表示されるはずですが、もし文字化けしていたら設定で文字コードを確認。”EUC-JP”のままのはずです。”UTF-8″に変更しませう。文字化けでハチャメチャな状態なのでカーソルをリンク先に持っていってブラウザに表示されるurlを頼りに設定できる画面を探してください。変更すればその場で文字化けが治るはずです。

あとは最新バージョンにアップグレードするだけ。とはいっても各バージョンでデータベースの構造が異なるので一気にはできません。WordPress公式のガイドでは「リリースを二つ以上飛ばす更新は推奨しない」ということで、地道に更新しては削除し、またアップロードしては削除し……という作業を繰り返します。2.5から2.7、2.9、3.1、3.3……その後も延々と4.3まで。10回くらいで終わるでしょう(笑)

ニフティでMySQL5が使えるようになったころにこれらの作業をやる気にならなかった一因に当時の私のネット環境の貧弱さがありました。回線はISDNでしたし、使用していたFTPクライアントはfetchで、WordPressだと一回の更新に一時間程度(もっとかな)かかりました。ファイルのアップロード漏れも頻繁にあったので確認にも時間を取られたりするのも面倒に拍車をかけていたわけで。現在はフレッツ光ですし別のFTPクライアントでアップロードもあっという間に済むですし、アップロード漏れもないですし、回数を重ねる更新もさほど苦にならずに済むですし。フレッツばんざい(莫迦)

これでやっと時代に追いついたこのブログですが内容的には追いついてないかもしれまへん(汗
まぁ、これからもぼちぼちといじりますので時々はのぞいてやってくだされ(・∀・)