イトクロブログ

イトクロ 技術制作部ブログWordPress サイトを別サーバかつ別ドメインの環境へ移行する方法

イトクロ 技術制作部ブログ

【2011.09.02】

WordPress サイトを別サーバかつ別ドメインの環境へ移行する方法

こんにちは、鳥羽田です。

イトクロでは、CMS やブログツールとして WordPress を採用することが多いのですが、先日、既存の WordPress
サイトを別サーバかつ別ドメインの環境へ移行する作業を行ったので、その手順を下記にまとめました。移行作業は、単純にプログラムファイルやDBを移すだけではなく、設定ファイルを一部書き換えたり、DBに格納されている値を変更したりするなど、何点かポイントがあります。試験環境で構築したサイトを本番環境へ移行する場合などにお役立てください。

やりたかったこと

・既存サイトを別サーバかつ別ドメインへ移行
・移行対象は記事だけではなく、画像やプラグイン、パーマリンク等各種設定も含む。
・Wordpress のバーションは 3.0.2 でマルチサイト構成
※下記ではマルチサイト構成の場合について記載していますが、「マルチサイト構成の場合は」という箇所を読み飛ばせば、シングルサイト構成の場合にも対応できるかと思います。

移行手順

ここでは例として、各環境の値を下記として説明します。

移行元環境 移行先環境
ドメイン www.dev.example.com (ブログ ID:1)
blog.dev.example.com(ブログ ID: 2)
www.example.com (ブログ ID:1)
blog.example.com(ブログ ID: 2)
データベース名 example-dev example-www
データベースユーザ user-dev user-www
データベースパスワード password-dev password-www

1. 試験環境から下記をローカルマシンへコピーします。
・Wordpress ファイル一式
・データベースのダンプファイル

2. ローカルにコピーした WordPress の設定ファイル ( wp-config.php ) を下記のように変更します。

【ドメイン設定個所】
変更前

define( 'DOMAIN_CURRENT_SITE', 'www.dev.example.com' );

変更後

define( 'DOMAIN_CURRENT_SITE', 'www.example.com' );

【データベース設定個所】
変更前

/** WordPress のためのデータベース名 */
define('DB_NAME', 'example-dev');

/** MySQL データベースのユーザー名 */
define('DB_USER', 'user-dev');

/** MySQL データベースのパスワード */
define('DB_PASSWORD', 'password-dev');

変更後

/** WordPress のためのデータベース名 */
define('DB_NAME', 'example-www');

/** MySQL データベースのユーザー名 */
define('DB_USER', 'user-www');

/** MySQL データベースのパスワード */
define('DB_PASSWORD', 'password-www');

3. ファイル群をローカルマシンから移行先環境へコピーします。また、データベースのダンプファイルを移行先環境へリストアします。

4. 移行先のデータベースにログインし、ドメインを格納している個所を更新します。
まず、wp_options テーブルについて値を更新します。wp_options テーブルは、各プラグインが共用で設定値を格納しています。

UPDATE wp_options SET option_value = 'http://www.example.com' WHERE option_name = 'home';
UPDATE wp_options SET option_value = 'http://www.example.com' WHERE option_name = 'siteurl';

マルチサイト構成の場合、サイト別の wp_options テーブル(wp_*_options テーブル。* はブログ ID )に対しても上記と同様の更新を行います。アドレスはサイトごとのドメインを指定します。

UPDATE wp_2_options SET option_value = 'http://blog.example.com' WHERE option_name = 'home';
UPDATE wp_2_options SET option_value = 'http://blog.example.com' WHERE option_name = 'siteurl';

次に、wp_blogsテーブルについて値を更新します。wp_blogs テーブルは、マルチサイト構成の場合に存在するテーブルで、マルチサイトのマスタ管理テーブルとなっています。

UPDATE wp_blogs SET domain = "www.example.com" WHERE blog_id = 1;

マルチサイト構成の場合は、blog_id が存在する分、上記と同様のクエリを実行します。ドメインはサイトごとのものを指定します。

UPDATE wp_blogs SET domain = "blog.example.com" WHERE blog_id = 2;

※データベースの値の更新は、該当箇所を説明するため、上記のように SQL を実行する方法を記載しましたが、ダンプファイルを開きドメイン箇所を一括置換した後リストアする方法もあります。
以上で移行作業は完了です。

移行時には、データベース内に格納されているドメインを更新するのがポイントですね。

タグ: , ,


この記事へのコメント

  1. WordPress サイトを別サーバかつ別ドメインの環境へ移行する方法 / イトクロ技術制作部ブログ →http://t.co/8VsfA0hK

  2. 素敵な仲間たち!RT @ItoKuro_recruit: WordPress サイトを別サーバかつ別ドメインの環境へ移行する方法 / イトクロ技術制作部ブログ →http://t.co/QAmvXSck

コメントをどうぞ

次のタグを使うことができます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

ブログTOPへ

page top