WordPressのマルチサイトを移行するにあたって抑えておくべきポイントをまとめました。移行の定義としてはドメインを変更して新しいDBに設置する時といったイメージで捉えていただければと思います。
全体的には以下のような対応です。
- WordPressファイル一式のアップロード
- wp-config.phpのDB情報を変更
- wp-config.phpのドメインを変更
- DBのインポート
- DB内の旧ドメインの置換(主要部分)
- DB内の旧ドメインの置換(コンテンツ部分)
5までできれば管理画面にアクセスできるので、4ではプラグインを使ってコンテンツの置換を行いました。もっとスマートな方法はあるように思いますが、ひとつの例として参考になれば幸いです。
※ 対応にあたっては自己責任でお願い致します。
WordPressマルチサイトを手動で移行する際に抑えておくべきポイント
移行元となるデータを「旧サーバー」「旧ドメイン」「旧DB」、移行先となるデータを「新サーバー」「新ドメイン」「新DB」という表現をしていきます。
WordPressファイル一式のアップロード
旧サーバーからWordPressに関連するファイル一式をダウンロードして、新サーバーにアップロードします。基本的には旧サーバーのドキュメントルート配下のすべてのファイルをダウンロードする形になるかと思います。
wp-config.phpのDB情報を変更
wp-config.phpの旧DB情報を新DB情報に変更します。新サーバーへのDBはあらかじめ用意しておいてください。
wp-config.phpのドメインを変更
マルチサイトの場合は、wp-config.phpにドメイン情報が記載されているはずです。こちらは旧ドメインから新ドメインに変更しておきましょう!
DBのインポート
旧DBからエクスポートしたデータを新DBにインポートします。コマンドを使えない方でもphpMyAdminなどを使うと簡単に実行できるかと思います(自分はphpMyAdminを使うことが多いです)
DB内の旧ドメインの置換(主要部分)
インポートした新DB内には、旧ドメインがたくさん登録されています。まずは管理画面にアクセスできる状態にしたいので、主要な値だけ変更していきます。
テーブル名 | 対象の値 |
---|---|
wp_options | option_name「siteurl」のoption_valueの値 |
wp_x_options ※ サイトの数だけ存在します。 | option_name「siteurl」のoption_valueの値 |
wp_blogs | domainの値 |
wp_site | domainの値 |
wp_sitemeta | meta_key「siteurl」のmeta_valueの値 |
wp_usermeta | meta_key「source_domain」のmeta_valueの値 |
ドメインの変更例
ここまで変更できれば、新ドメインの管理画面にログインできるはずです!
管理者等のメールアドレスを変更したい方は
WordPressで管理画面にアクセスしようとしてエラーになると、管理者にメールが届くような仕組みとなっています。もしあらかじめアドレスを変更しておきたい場合は、以下の値を変更しておくといいかもしれません(これで変更されるかは試してないですが…)
テーブル名 | 対象の値 |
---|---|
wp_sitemeta | meta_key「admin_email」のmeta_value |
wp_options | option_name「admin_email」のoption_valueの値 |
wp_x_options ※ サイトの数だけ存在します。 | option_name「admin_email」のoption_valueの値 |
DB内の旧ドメインの置換(コンテンツ部分)
コンテンツ内のドメインは旧ドメインのままなので、「Search Regex」プラグインを使ってコンテンツの一括置換を行なっていきます。
ドメインの置換漏れをチェック
最後にサイト全体が旧ドメインから新ドメインに置換できているかをスクレイピングツールを使ってチェックしておきましょう!手動でのチェックは見落としの原因になるのでツールを使ったほうが無難です。
自分はFrogというスクレイピングツールを使っています。
Frogでチェックした時に旧ドメインへのリンクが繋がっていなければOKです!
おわり
WordPressマルチサイトを手動で移行する際に抑えておくべきポイントの紹介でした!
管理画面までアクセスできれば、一安心できると思うので、wp-config.phpの書き換えやDB内での主要な置換部分はぜひ抑えておいてもらえたらと思います。