ちょうど連休直前にWordPress3.1.2の日本語版がリリースされたので、よいタイミングだった。もともとはルート直下の複数ディレクトリにそれぞれWordPressをインストールしてサイトを運営していた。今回はルートディレクトリに最新版WordPressをインストールし、サブディレクトリ型マルチサイトを構築すればよいと検討をつけた。インストールしたい階層が以前と異なるため、備え付けのアップデート機能は使わず自力で行う。
-
旧サイトのデータベースをバックアップ
- phpMyAdminでmySQLのテーブルをエクスポートする。
対象テーブルは、WP_USERS、WP_USERMETA、WP_OPTION以外のすべて
オプションは、- エクスポートでSQL形式
- オプションの構造で、
- DROP TABLE / DROP VIEWを追加
- AUTO_INCREMENT 値を追加する
- テーブル名やフィールド名を逆クォートで囲む
- オプションのデータで、
- 完全な INSERT 文を作成する
- 長い INSERT 文を作成する
- 作成するクエリの最大長 50000
- BLOBに16進数表記を利用する
- エクスポート形式 INSERT
- ファイルに保存する
- エンコーディングnon
もし投稿履歴があれば事前に削除しておくと、バックアップデータが小さくなる。
DELETE FROM wp_posts WHERE post_type=’revision’ - 添付ファイルをダウンロード
/wp-content/uploads/以下すべてのファイルをFTPでダウンロードする。
- phpMyAdminでmySQLのテーブルをエクスポートする。
- 旧サイトを削除
サブディレクトリ型マルチサイトを作成する場合、同じディレクトリ名が物理的に存在してはならない。削除は怖いのでリネームしておく。 -
WordPress3.1.2のインストール
同じデータベース内に旧テーブル(例:WP_)を残しつつ、別の接頭辞(例:WW_)を指定してインストール。マルチサイト化しておく。 - データベースの移行
旧ブログの記事を、新サイトの2つめのブログの記事として流し込む。- さきほどエクスポートしたSQLファイル内を書き換える
- テーブル接頭辞のWP_をWW_2_に置換する。
- 画像のパスを書き換える。
/wp-content/uploads/ を、/files/ に置換すればよい。
- phpMyAdminでSQLファイルをインポート
- さきほどエクスポートしたSQLファイル内を書き換える
-
添付ファイルをアップロード
アップロード先は、/wp-content/blogs.dir/2/files/
例えば、
http://example.com/example/files/2011/05/01/example.jpg
というURLの画像ファイルがあった場合、
ディレクトリ上では以下に配置すればよい。
↓↓↓
/wp-content/blogs.dir/2/files/2011/05/01/example.jpg - テーマやプラグインを設定
WordPressの関数で変更、非推奨になった箇所があるため、自作のテーマやプラグインでエラーや警告が発生した。修正に半日を費やす。
以前はできていたことができなくなった仕様もある。例えば、- URLにパラメータを持たせて処理していたページ、例えばパーマリンク?param=valueの場合valueに全角文字が使えなくなった。
- 複数のカテゴリを持つ記事のパーマリンクが一意になった
このように、以前なんとなくできていたことが明示的にできなくなっている。システム的な矛盾をなくすためと理解するものの、パーマリンクを変更せざるを得ないページも発生した。