WordPress→WordPress ドメイン変更を伴うサーバ移行手順

2015/04/08 追記

WordPress移行時にURLをSQLで一括置換すると、シリアライズデータの部分で不整合が起きるので、「Search and Replace for WordPress Databases Script」というツールを使うのがよいです。Codexにも記述されています。

Moving WordPress « WordPress Codex

新・移行手順

1. WordPressディレクトリごと移行
 rootA/ → rootB とする。
2. Search and Replace for WordPress Databases Script を rootB/ に展開
3. rootB/Search-Replace-DB-master/ にアクセス
4. 置換
5. Search-Replace-DB-master ディレクトリを削除

— 以下は旧記事です —

Webサイトの制作手順としては、まずローカルサーバやテストサーバで制作を行い、完成したら本番サーバへ移行して公開するのが普通かと思われます。

この、ドメイン変更を伴うサーバ移行は、必ず発生するものなのですが、この手順がなかなかどうしてスマートではないので、まとめておきます。

ドメイン変更を伴うサーバ移行手順

移行すべき項目とその方法について、表にするとこうです。

WordPress本体 新規インストール
データベース ドメインを変更して移行
添付ファイル、テーマ、プラグイン 移行 ※プラグインは再インストール推奨

1. 新サーバにWordPressを新規インストール

新サーバにWordPressを新規インストールします。

旧サーバにインストールされているWordPressをそのままコピーしてはいけません。
データベースの設定ファイルや .htaccess が違うためです。

2. データベースをSQLデータでエクスポート

旧サーバのデータベースの、wp_options 以外のテーブルを SQLデータでエクスポートします。

wp_options テーブルには、WordPressの設定情報が格納されています。
新サーバにWordPressを新規インストールした際に設定した内容も含まれるので、このテーブルの内容は上書きしてはいけません。

phpMyAdmin からの例を示します。

WordPressのデータベース構造についてはこちら→ データベース構造/WordPress Codex

3. エクスポートしたデータ内のドメインを一括置換

エクスポートしたデータファイルをテキストエディタなどで開き、旧サーバのドメインを新サーバのドメインに一括置換します。

例えば、http://before.com/ にインストールしたWordPressから、 http://after.com/ にインストールしたWordPressへデータを移行するのであれば、それです、それ。

この作業が必要なのが一番の謎なわけですが、エクスポートしたデータの中身を見ればわかる通り、投稿記事内の画像パスなどは、すべて旧サーバのドメインを含む 絶対パスで記述されています。
これをそのままインポートしてしまうと、新サーバでも旧サーバのデータを参照してしまうというわけです。

4. 新サーバのデータベースのテーブルを空にする

新サーバのデータベースの、wp-options 以外のテーブルを空にします。

5. SQLデータをインポート

旧サーバからエクスポートしたSQLデータを、新サーバにインポートします。

6. 添付ファイルの移行

旧サーバの wp-content > uploads フォルダに格納されている添付ファイルを、新サーバに移行します。

7. テーマの移行

旧サーバの wp-content > themes フォルダに格納されているテーマフォルダを、新サーバに移行します。

8. プラグインの再インストールと再設定

新サーバのWordPressにプラグインを再インストールして、再設定を行います。

9. WordPressの設定

「管理画面 > 設定」パネルから、新サーバのWordPressの設定を行います。
投稿設定、表示設定、パーマリンク設定などは、確実に行っておきましょう。

以上で、すべての移行は完了です。

ところで、WordPress標準のエクスポート/インポート機能について

実は、エクスポート/インポート機能は、WordPressに標準で搭載されています。
「管理画面 > ツール」パネルにあるのが、それです。

手順は以下のようになります。

1. XMLファイルとしてエクスポート
2. エクスポートデータ内のドメインを一括置換
3. 「WordPress Importer」というプラグインをインストール
4. インポート

ただし、エクスポート画面にも記載されている通り、「これにはすべての投稿、固定ページ、コメント、カスタムフィールド、カテゴリー、タグ、ナビゲーションメニュー、カスタム投稿が含まれます。」です。

つまり、全部ではありません。
「リンク」や「ユーザー」などは含まれません。

ドメインの一括置換を自動的にやってくれるのであれば素敵なのですが、そうではないようなので、ドメイン変更を含む移行の場合、この機能を使うメリットはあまりないと思われます。

ただまぁ、WordPressからのインポートだけでなく、Blogger、Movable Type、Tumblrなどもサポートしているようなので、それらのサービスからWordPressに移行する時には使えるのかもしれません(未実施)

おまけ

WordPressのバージョン変更を伴う移行の場合

開発環境と本番環境の違い(PHPのバージョン違いなど)により、WordPressのバージョン変更を伴う移行を余儀なくなれる場合は、データベース構造に相違がある場合があるので注意が必要です。
このような余計な手間を省く為に、本番環境を事前によく確認してから制作に着手しましょう。

だからコアファイルはいじってはいけない

いじってはいけないというか、絶対にいじるべきではないといったところです。
移行に限らず、WordPress本体のバージョンアップを実行したら、コアファイルはすべて上書きされてしまいます。
wp-admin フォルダ以下はいじってはいけません。

だからプラグインに頼りすぎるのも考えもの

プラグインは便利ですが、頼りすぎてはいけません。
工数や自身のスキルとの兼ね合いにもよりますが、テーマフォルダ内の functions.php にコードを書いて実現できる機能は、なるべくそうしましょう。
移行の際にプラグインの再設定にひーひー言っているならそうしましょう。
それに、WordPressのバージョンアップを実行したら、いま使っているプラグインが正常に動く保障はないということも忘れてはいけません。

Comments

コメントを残す