古いWordPressのサイトを新サイトに移行
2009/09/20 Sunday
MovableTypeからWordPressに乗り換えて最初に作ったサイトを、ようやく新しいバージョン(2.8)のWordPressにアップデートしました。事情があってバージョン2.0.11 ME(だったかな?)のまま放置せざるを得なかったのだけど、このバージョンでは先日知った新しいタグ(wp_list_categories)が使えないことがわかったので。
でもこれが、想像以上に大変でした。
バージョン2.0のころというと、まだ2年も経ってないのだけれど、現在までの間にWordPressは大幅に進歩しました。使えるタグの仕様が変わっていったのは当然として、文字コードの関係とかもあったんですよね。もうこれは、本当に日本人でいるかぎり、30年後でも悩まされるんだろうな。これまでコンピューターを使ってきて、最初から日本語が何の問題もなく使えるものって、出会ったことがないです(WindowsだってVistaになってようやく普通に日本語に対応したんですから…)。
まあ、そういうアーリー・アドプターの悩みは、好きでやってることだから仕方がないです。
今回の場合、一気に2.8にアップデートしようとしたら、全面的に文字化けになってしまいました。
当初からエンコーディングはUTF-8を使っています。
はっきりとは分からないのですが、2.2以降、日本語関係が変更になっているようです(どっかに書いてあったんだけど、忘れてしまった…)。
ということで、手順の大きな流れ
- まずは現在のサイトのバックアップを作成
まずWordPressのファイルの単なるバックアップです。WordPressのインストールしてあるディレクトリー全体をcpで複製します。
もうひとつ、MySQLのデータベースもバックアップを作っておきます。 - データベースを書き出し
WordPressの書き出し機能を使って、投稿を書き出します。これはXML形式のファイルを手元にダウンロードすることができます。
ただし、書き出し機能が付いたのはWordPress 2.1からでした。だから、まず2.0を2.1にアップデートしなくてはいけない。ところが日本語版の2.1はすでにダウンロードできないらしい。ということで、仕方なく英語版2.1.3にアップデートしました。 - 別ディレクトリーに2.8を新規インストール
MySQLのデータベースも新しく作ります。うちの場合、WordPressをインストールするたびに新しいデータベースを作ることができるのですが、それができない場合にはwp-config.phpファイルの中の「データベーステーブルの接頭辞」(prefix)というのを変更して別のテーブルを作れば、古いWordPressと新しいWordPressを共存させることができるらしいです。たとえば、$table_prefix = ‘wp01_’;とかにする(?未検証)
この段階では、暫定のURLで動かしておきます。
- データベースを読み込み
最初うまくいったように見えたんですが、実際はカテゴリーの関連づけ(親と子)が滅茶苦茶になってしまっていました。で、結局それを手で直しました。(;_;)詳しく分からなかったのですが、日本語のカテゴリー・スラッグが問題になっていたようです。2.1.3の書き出しに問題があるのか、他のバージョンでも同じようになるのか、アルファベットのカテゴリー・スラッグなら問題は発生しないのか、など、わかっていません。(^^;
- ウェブサーバーの設定変更で新しいディレクトリーを使うようにする
Apacheの設定を書き換え、以前から使っていたURLが新しい2.8のディレクトリーを指すようにします。そのあとWordPressにログインして、ダッシュボードの「設定」のところでURLの設定も書き換えます。

2.1のログイン画面。なんかナツカシス。

