WordPressのマルチサイトを手動で移行する

みなさんこんにちは。WordPressのマルチサイトの移行にはまってしまったので、今回改めて手順を備忘録的に載せていきます。

同じテーマファイルを使ってWordPressのダッシュボード上でサイトを増やすことができるマルチサイト機能。便利ですよね。ですがこれが移行となると、いつも使っているAll-in-One-wp-migrationでは有料のお高めなプラグインが必要になるとのことだったので、今回はいっそ手動で移行していきます。

まずは大まかなステップです

1WordPressファイル一式を新サーバにアップロード
2wp-config.phpのDB情報を変更
3wp-config.phpのドメインを変更
4データベースのエクスポート 新サーバへのインポート
5DB内の旧ドメイン>新ドメインへの置換

WordPressファイル一式を新サーバにアップロード

それではまずは、母体となるWordPressファイル一式を旧サーバーからダウンロードします。ドキュメントルート配下のすべてのファイルをダウンロードすることになるので、場合によっては1時間や半日かかるなんてこともざらの作業ですよね。。

そして、やっとのことでダウンロードしたファイル一式を新サーバへアップロードします。

wp-config.phpのDB情報を変更

新サーバー側で新しいデータベースを作成します。アップしたファイル内のwp-config.phpを開き、この赤線の部分に記載されているデータベース情報を新サーバーで用意したものに変更します。

wp-config.phpのドメインを変更

wp-config.phpのこの赤線の部分に記載されているドメインを新しいドメインに変更します。

データベースのエクスポート 新サーバへのインポート

旧サーバーphpMyAdminへログインしてデータベースをzip形式でダウンロードし、新サーバーのphpMyAdminでインポートします。

DB内の旧ドメインを新ドメインへの置換

phpMyAdminで下記のSQLを実行しました。

UPDATE wp_options SET option_value = replace(option_value, 'http://example.old/', 'http://example.new/') WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET guid = replace(guid, 'http://example.old/','http://example.new/');
UPDATE wp_posts SET post_content = replace(post_content, 'http://example.old/', 'http://example.new/');
UPDATE wp_postmeta SET meta_value = replace(meta_value,'http://example.old/','http://example.new/');

データベース内に散らばっている旧ドメインを新ドメインに置換してくれます。
これでいったん管理画面にログインできるようになるはずです。

これだけだと、データベース内のすべてのドメインを置換できていないかもしれないので、ログイン後に置換プラグインなどを駆使して古いドメインを新しいドメインに一気に置換していく作業が必要になります。

まとめ

以上、今回のWordPressマルチサイト移行で行ったことをまとめ見ました。

WordPressは基本、ファイル一式と、データべース内のドメインを入れ替えてwp-config.phpを修正するという流れていこうできるので、マルチサイトではない場合も、ほぼ今回と同じやり方で移行できます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です