WordPressでつくったサイトをいろいろな理由で別のサーバーやドメインに引っ越ししたいことがあります。
シングルサイトなら、All-in-One WP Migration プラグインを使うのが一番簡単でパソコンが苦手な人でも数クリックでできてしまいます。
ところがマルチサイトになると無料版では対応しておらず、Multisite Extensionを購入する必要があります。このMultisite Extensionが結構いいお値段($228〜、約¥24,500円)。業務で頻繁に使うなら購入するのもありですが、そうでないのにこの出費は痛いですね。
ということで、今回は手動でマルチサイトを引っ越したので、その時に作業手順と注意点をまとめました。
WordPressのマルチサイトを引っ越す手順
- 引っ越し先にWordPressをインストールしてマルチサイト化しておく
- 引っ越し元のWordPressデータ(一般的にはwp-contentの中身)を引っ越し先にコピー
- 引っ越し元のデータベースをエクスポート
- エクスポートしたデーター内のドメインを置換
- 置換したデータを引っ越し先にインポート
- データベースを修正
所要時間はデータ量によります。特にwp-contentは画像が多いとダウンロード・アップロードにかなり時間がかかる可能性があります。ただ、このコピー作業が終わらなくてもデータベースのエクスポート・インポートは可能なので平行して作業を進めてもよいと思います。
それでは、頑張っていきましょう!
作業前に用意しておくもの
- 引っ越し先・引っ越し元両方のFTP接続情報(ID、パスワード、ホスト名など)
- 引っ越し先・引っ越し元両方のデータベースログイン情報(ID、パスワード)
- 引っ越し先・引っ越し元両方のWordPressで使っているデータベース名
- 検索・置換ができるテキストエディタ
- FTPソフト
- サイトデータが保存できるだけのハードディスクの空き
引っ越し先をマルチサイト化
まず、引っ越し先のサーバーにWordPressをインストールしてマルチサイト化まで済ませておきましょう。このときサイトの設定自体は適当でかまいません。データベースをインポートした時点で全て消えていまいますからね。
実際のところ、wp-config.phpと.htaccessの内容をマルチサイト用に書き換えておけば一般的なマルチサイト化のステップを踏む必要はないですが、動作確認の意味もこめて普通にマルチサイト化しておいた方が安心だと思います。
サイトのマルチサイト化の詳細はこちらです。
WordPressデータのコピー
引っ越し先のWordPressが用意できたら、WordPressのインストールディレクトリにあるwp-contentの中身をコピーします。
まずは引っ越し元のサイトからダウンロード。
次に、引っ越し先のWordPesssインストールディレクトにあるwp-contentを削除します(上書きコピーでもよいですが無用なトラブルを避けるためにも一度削除がオススメです。)
最後にダウンロードしたデータを、引っ越し先のWordPressインストールディレクトリにコピー。
これでWordPressファイルの引っ越しは完了です。
作業内容はこれだけですが、容量によっては非常に時間がかかる場合があり、エラーが出てしまうこともあります。その場合はフォルダ毎に分割してアップロードするなどして乗り切りましょう。困難は分割せよです。FTPソフトにレジューム機能があれば一旦途切れてもそこから再開できる場合もあります。
今回は簡単なためローカルに保存する方法で作業しましたが、サーバーからサーバーへ直接コピーという手もあります。ファイルサイズが大容量になる場合はその方法を調べた方が良いかもしれません。
データベースをエクスポート
次は引っ越し先のデータベースのエクスポートです。多くのレンタルサーバーではphpmyadminを使えるのでそれを使った作業方法です。
まずはデータベースにログインし、左のリストから引っ越し元のWordPressが使っているデータベースをクリックします。
データベース内のテーブルがズラッと表示されるので下にスクロールします。
一番下に「全てをチェックする」というチェックボックスがあるのでチェックして全テーブルを選択した状態にしてから、上にある「エクスポート」をクリック。
エクスポート画面が出てくるので、「詳細」をクリック。
詳細オプションが表示されるので、出力先がファイルになっていることを確認します。また、圧縮も有効にしておきましょう。
エクスポートでは詳細設定で圧縮を選んでおきましょう。設定が確認できたら下にスクロールして「実行」をクリックします。
これでデータベースをエクスポートしたファイルがパソコンにダウンロードされます。ファイル名は「データベース名.sql.zip」になります。
エクスポートデータ中のドメインの書き換え
引っ越し前のデータが用意できたら、今度はその中のドメインを引っ越し先のサイトのドメインに修正します。手作業でやるのは現実的ではないので、テクストエディタの検索・置換機能を利用します。
まず、エクスポートしたデータを解凍し、テキストエディタで開きましょう。テキストエディタは何でもよいですが私はVS Codeを使いました。
検索置換機能で「引っ越し元のドメイン」を「引っ越し先のドメイン」に全て置換します。その前に、念のためエクスポートしたファイルはコピーしてバックアップしておきましょう。万が一検索と置換でミスがあった場合にすぐにやり直すことができます。
ドメインの置換が完了したら再びデータをzip圧縮しておきます。
ドメイン直下ではなくサブディレクトにマルチサイトをインストールしている場合、検索・置換する文字列はドメイン名/インストールディレクトリにする必要があります。
例えば、マルチサイトのトップページのURLがhttps://example.com/shop/
となっている場合、WordPressはshopというディレクトリにインストールされているので、検索・置換の文字列もhttps://example.com/shop/
とする必要があります。
データをインポート
最後はデータのインポートです。引っ越し先のデータベースにphpmyadminでログインしましょう。
ここでは既にインストールされているWordPressのテーブルを一旦すべて削除してからデータをインポートします。作業するデータベースをくれぐれも間違わないようにしましょう。削除する前にエクスポートしておくことをオススメします。
まず、引っ越し先のWordPressで使っているデータベースを選択し、下までスクロールします。
「すべてをチェックする」をチェックしてすべてのテーブルを選んだら、右にある「チェックしたものを…」セレクトボックスをクリックして「削除」を選択します。
確認画面が表示されるので「はい」をクリックします。これで全テーブルが削除されます。
これでテーブルが空っぽになるので、上のタブの「インポート」をクリックしてインポート画面を開きます。インポート画面でファイルを選択し実行するとテーブルがインポートされます。
無事にテーブルが表示されたらインポート成功です。
サイト構造が変わらずドメインのみ変わる場合、これで作業は終了です。正常に表示されるか確認しましょう。
ただし下記のようにサイトのディレクトリ構造(WordPressのインストールディレクトリ)が変わる場合、データベースエラーが出て表示されません。
引っ越し元:https://example.com/
※ドメイン直下にWordPressをインストール
引っ越し先:https://example2.com/shop/
※/shopの中にWordPressをインストールしてマルチサイトを展開
さらにデータベースを修正する必要があります。
ドメインとディレクトリを修正
上記のようなエラーが出る原因は、検索・置換作業でwp_siteとwp_blogテーブルのdomainの設定にディレクトリが書き込まれているからです。例えば、wp_siteテーブルは下図のようになっています(/msxにWordPressがインストールされている)
これを修正するには「編集」をクリックします。
domainからサブディレクトリを削除して、サブディレクトリをpathの方に設定します。下図のようになっていればOKです。
続いて、wp_blogsテーブルも編集します。このテーブルには子サイトの情報が入っています。wp_blogsテーブルを選択すると下図のようになっています(トップサイトは修正済)
では子サイトを一つ一つ編集していきましょう。左にある「編集」をクリックして編集画面に進みます。
domainからサブディレクトリを削除して、pathの方に移動します。
この作業を全子サイトに対してて行う必要があります。10サイト程度だったら手動で修正もそんなに大変ではないですが、マルチサイトの数が何十、何百となる場合はエクスポートしたデータを検索置換する際に工夫することを検討しましょう。
全サイトのドメインとディレクトリを正しく分割できたらもう一度サイトを表示させてみてください。無事に表示されているはずです!
以上でマルチサイトの引っ越しは完了です。データベースを触るところに怖さを感じるかもしれませんが、作業内容としては文字の置換だけなので難易度が高いことをしているわけではありません。
それよりもデータベースやwp_contentの容量の方が問題になってくると思います。容量が大きくなるとアップロードに色々なトラブルが出る可能性が高くなるので、そこだけ注意しましょう。
コメント
この記事へのコメントはありません。