WP作成サイトのクローン・引っ越し

前にも書いた気がするがもう一度まとめてみる。大きく分けて以下の方法がある

  1. WPのエクスポート/インポート機能を使う
  2. Duplicatorなどのプラグインを使う
  3. DBまるごと移動する

それぞれメリット・デメリットがある。

WPのエクスポート/インポート機能を使う

WPを新しくセットアップして、すべてをエクスポートしてからインポートするだけ。「画像をインポートする」にチェックを入れると、時間がかかるが画像もダウンロードしてくれるので手間いらず。

メリット:ダッシュボードのみで完結。簡単。

デメリット:プラグインの設定やウィジェット情報、その他設定情報は一切移行できない。DB内のID番号などが保持されないので、複雑なサイト構成では不整合・不具合が起こる可能性も。

単純なブログ程度ならこの方法でもいけそうだが、WEBサイト一式はちょっと無理がある。

Duplicatorなどのプラグインを使う

実はこの手のプラグインはたくさんあるが、肝心な部分が有料だったりするので使っていない。確かに、同じドメイン内でテストサーバーを組むのに便利だった気がする

メリット:テストサーバならボタン数クリックで完了

デメリット:サイト複製機能が有料だったりする。前にセキュリティ騒ぎが起きた。など

DBまるごと移動する

本命。操作を間違えなければ再現性は100%。間違えると地獄。

メリット:再現性はほぼ100%。最も確実。複雑なサイトもOK。

デメリット:ちょっとした操作ミスで不整合が起こり、修復に苦労する。phpmyadminなどが必要。

この方式の場合の注意点

これも前に書いたな。

DBをエクスポートした後、ドメイン名のリプレイスが必要。その時に使うツールとしては、神ツール

Database Search and Replace Script in PHP | interconnect/it
Search Replace DB is a powerful tool for developers, allowing them to run a search replace against their database where CLI tools or WP plugins can’t work.

を使うか、これまた神プラグインである

Search and Replace

を使うと良い。

注意点としては、サブディレクトリ名が変わる場合、homeとsite_urlに該当する部分を別個に置換しなければいけないということ。つまり、ドメイン名の置換だけではダメということ。

例:
https://hoge.com(/wp) から https://hage.com(/wp2) に移行したい場合
hoge.com -> hage.com だけでは❌

hoge.com -> hage.com を実行してから
hage.com/wp -> hage.com/wp2

としなければいけない。簡単な事だが間違えやすい。

さらに、サブディレクトリからルートに移行する場合(テストサーバーから本番サーバなどで良くあるパターン)

例;https://hoge.com(/wp) から https://hage.com

hoge.com -> hage.com
hage.com/wp -> hage.com 

という手順になるはず。

画像ファイルなどリソースファイルへのリンクはサブディレクトリのままで良い、という場合wp_postsテーブルだけ別の処理をすることになり、ちょっと面倒だ。

hoge.com/wp -> hage.com/(wp2)

後ろのwp2はwpファイルが入っているディレクトリ。ルートに展開している場合は不要。

コメント

タイトルとURLをコピーしました