All-In-One WP Migrationでサイト引っ越し(サーバー移転)インポート時にハマったトラブルと対処法覚書
こんにちは、SHΦWTA(@showta_jp)です。
今回はWordPressサイトの引っ越し(サーバー移転)を『All-In-One WP Migration』で実施したところうまくいかないケースがあり、ネットで情報をググっても解決できなかったのですが、自分なりになんとか対処できましたので自分用の覚書兼誰かの役に立てばということで記録しておきます。
WordPressサイトの引っ越しは面倒
まず前提として、WordPress(以下WP)サイトを何らかの理由で現環境から引っ越し(サーバー移転など)しようと思った場合、けっこうめんどくさいです。
それはWPには『データベース』という仕組み・概念が存在するから。このデータベースには記事の文章からテーマ・プラグインの設定など色々な情報が詰まっていて、WPではアクセスする度に都度このデータベースを参照するという仕組みらしく(僕も専門のエンジニアじゃないのでそこまで詳しいことはわかりませんが)。こいつがあることで、HTMLサイトのように単純に旧サーバーから新サーバーにデータをまるっと移行するだけではうまく引っ越しできないのです。
All-In-One WP Migrationがめちゃくちゃ便利
んで、このめんどくさいデータベース周りの設定やらを一切自分ですることなく、めちゃくちゃ簡単に引っ越しできるのが『All-In-One WP Migration』というプラグインを使う方法です。
有名なプラグインなので詳しい説明は割愛しますが、引っ越し元の旧サイトにプラグインをインストールしてデータをエクスポート→引っ越し先の新サイトにプラグインをインストールしてデータをインポート…という流れで、たった数クリックで全く同じサイトを複製することができちゃう優れものです。もちろんデータベース云々の設定も必要なく、テーマやらメディアファイルやらプラグインの設定やらも完全に複製できます。ちなみにドメイン変更を伴わない引っ越し(サーバーAからサーバーBへの乗り換え)もできますし、ドメイン変更を伴う引っ越しも可能です。
なので、私も過去何度もドメイン変更あり・なし両パターンでWPサイトの引っ越しを経験していますが、引っ越しには専らこのプラグインを利用しています。面倒な設定も無く定期的にアップデートされていて信頼性も高い。利用者も多いので解説サイトや情報も多く何かあってもたいていはなんとかなる…とこのプラグインを使わない理由がないくらいWPサイトの引っ越しでは定番のプラグインだと思います。
他に手動じゃない移行手段としては一部のサーバーが用意している『サイト間単移行』みたいな機能もありますが、実際は意外と簡単じゃなかったりエラー吐きまくりで使い物にならないケースも多い印象です(あくまで個人の主観ですが)。
それなら最初から確度も高く、万が一うまくいかなくてもググればたいていなんとかなるAll-In-One~を使うほうが早いかと思います。
なんとかならない事例に行き当たってしまった
というわけで、WPサイトの引っ越すなら『All-In-One WP Migration』が簡単だし正確性も高いし断然おすすめだよ!という話なのですが…
今回はインポート時にエラーが起きてしまい、そこからサイト移行が進まないというトラブルに遭ってしまいました。
とはいえ、こんなときは「All in one wp migration インポート 止まる」とかでググると先人たちの有益な情報が出てくるのを知っているので焦らずGoogle先生にキーワードを打ち込んで聞いてみたのですが…なんとそれらしき情報が出てきません。
正確には出てくるには出てくるのですが、それらの情報を確認し試してみても状況が改善しなかったのです。仕方がないので自力で対処することにしました。
※移行するサイトの情報・環境など
今回移行するサイトは全部で3サイトです。知人所有のサイトで、かねてから引っ越しを検討していたそうですが、自力では難しかったそうで依頼をいただきました。
3サイトは全てWPサイトで同じテーマを使用しています。導入しているプラグイン多数(サイトにより約30~40)。サーバーはロリポップからエックスサーバーへの変更です。いずれもインポート時に途中で動かなくなる、という状況でした。
サイトAの状況
ここからもう少し具体的に各サイトの状況を記録しておきます。3サイトとも旧サイトからのエクスポートはすんなり終わり、新サイトにデータをインポートする段階でインポートが停止する問題が発生しました。
その中でサイトAはインポートが約70%前後の時点で止まる…という状況でした。
インポートが止まる原因としては「移転元・移転先のWPのバージョンが異なる」「phpバージョンが異なる」など仕様の違いでうまくいかないことが多いそう。ただ今回はそこは問題なくクリアしています。また『All-In-One WP Migration』のデフォルトのインポート上限に引っかかるといったケースもありますが、こちらもサーバーのphp.ini設定を弄ることで解決済みです。
その他のケースとして、セキュリティ系やキャッシュ系のプラグインを導入しているとインポートが正常に完了しないことがあるようで、有名どころだと『SiteGuard WP Plugin』『WP Fastest Cache』なんかで失敗事例があるようです。
ただ、今回のサイトでは上記のプラグインを導入しているサイトもあればしていないサイトもありましたが、どのサイトも一律インポートに失敗。該当プラグインを停止・削除したりしても状況は変わりませんでした。ネット上に載っている情報ではこれ以上解決ができず、さっそく行き詰まりました。
とはいえやっぱりプラグインが原因なんじゃね?
ということで、エクスポート時とインポート時の環境設定、プラグインのインポート上限、プラグインの影響の可能性…どのケースにも該当せず悩んでいたのですが。
いわゆる「キャッシュ系プラグイン」じゃなくてもキャッシュを利用するプラグインも多いし、プラグインの設定から機能を停止・削除しても実は内部データ的には設定が残ってしまう…なんていうプラグインもありますから、やはりプラグインの影響が大きいのではないか?と思いました。WPのプラグインはクセがあるものも多いですし、引っ越しじゃなくともプラグインを多く入れすぎると干渉してうまく機能しないケースなども出てきます。まして今回はどのサイトも少なくとも30個以上のプラグインが導入されていたので、どれかが悪さをしている可能性が高いのではないか、と。
また、インポートが70%前後で止まってしまうのも気になっていました。『All-In-One WP Migration』の挙動や処理順がわからないので何とも言えないところではありますが、ステータスバーで見る限り7割方処理が終わっているということは、少なくともデータベースやらWP本体の基本的な処理は終わっているのではないかと。また容量の大きそうなメディアファイルの処理も終わっていそう。そうなると次に来るのがプラグインなどの処理で、ここで詰まってしまっているのでは?と考えました(これはエラーログなどを見たわけじゃないのでただの推論にすぎませんが)。
プラグインを除外するとあっさり解決した
上記の推察から、プラグインを除外して再チャレンジすると…あっさりインポートが完了しサイトが復元できました!
『All-In-One WP Migration』ではエクスポート時のオプション設定でメディアファイルやプラグインなど除外したいものを選択できるので非常に簡単でした。
※プラグインの復元にもプラグインを使った
で、All~、でプラグイン情報を除外することで引っ越しできたわけですが、このままでは当然プラグインが入っていないので移行は不完全なままです。また単純に同じプラグインを入れ直せばいいというわけではなく、各プラグインの設定も引き継がなければいけません。
ここで使用したのが『WP Downloader』と『WP Options Importer』という2つのプラグインです。通常、WPのプラグインをバックアップするにはFTPソフトからプラグインのデータやらを抜き出さなければいけません。ただプラグインの数が多いとちょっと面倒な作業です。
そこで『WP Downloader』を導入すると、WPの管理画面のプラグイン一覧にダウンロードボタンが追加され、簡単にプラグインをダウンロードすることが可能になります。ちなみに今回はプラグインのダウンロードでのみ使用しましたが、このプラグインを使えばテーマのダウンロードも可能になります。
また、『WP Options Importer』は、プラグインの情報をエクスポート/インポートすることが可能なプラグインです。
WP標準の機能(「ツール>エクスポート」)で、記事データやメディアファイルはダウンロードすることができますが、プラグインの設定などは引き継ぐことができません。しかしこの『WP Options Importer』を導入すると、エクスポートの欄に「Options」の選択肢が追加され、テーマとプラグインの設定などもダウンロードできるようになります。
このふたつのプラグインを使用し、
旧サイトでプラグインの設定をバックアップ→旧サイトから全く同じプラグインをダウンロード→新サイトにプラグインをアップロード&有効化→設定をインポート
という手順でプラグイン情報も無事引き継ぐことができました。FTPソフトなどを弄らずプラグインで簡単にできる手段としてなかなか良いんじゃないかと思いますが、もっと簡単な方法や効率的な方法がある場合ぜひ教えて下さい。
また今紹介した二つのプラグインは更新が止まっているようで、WPのバージョンやその他環境によっては正常に動作しない可能性がありますのでご注意ください。
※一応2023年1月現在、WP6.1.1では正常に動作しました
サイトBも同じ方法で復元可能だった
サイトAの引っ越しが無事に完了したので、続いて取り掛かったサイトBですが、こちらも『All-In-One WP Migration』のまるごとバックアップでは同様に60%後半~70%前後でインポートが停止してしまう状況だったので、サイトAと同じくプラグインを除外しインポート、プラグインは別途復元という形で移行完了できました。
サイトCはさらに面倒だった
最後に残ったサイトCは、一番手間がかかりました。
サイトA、Bと同様にまずまるっとバックアップデータをインポートしてみたところ、10%も進まずに一桁台でインポートが停止してしまいました。
これは前の2つのサイトとは状況が異なるので、原因も別にあることが推察されます。
といっても、おおよその予想はついていました。その原因はメディアファイルです。
このサイトは3つのサイトの中でも圧倒的にコンテンツ数が多く、メディアファイルも大量にありました。その違いは『All-In-One WP Migration』のエクスポートデータのサイズを見てもあきらかで、まるごとエクスポートしたデータを見てみると、前ふたつのサイトは大きくても600MB程度のところ、サイトCは1.7GBも容量がありました。
一応、冒頭でも説明したように『All-In-One WP Migration』のインポートサイズはサーバーのphp.ini設定などで上限を変更することが可能ですが、実際には1GB以上の大きなファイルなどになるとインポートが正常にうまくいかないケースもしばしば起こるようです。
そこで、今回は『All-In-One WP Migration』の設定でプラグインに加えてメディアファイルも除外し、WP本体やテーマなどの基本的な情報のみプラグインで引っ越ししてみると、インポート完了しました。
※原因が違うのならプラグインはそのままでいけるのでは?とも思って、メディアファイルのみ除外しプラグインはそのままでチャレンジもしてみたのですがやはり無理で(同じようなプラグイン群で構成しているためおそらく特定のプラグインが引っかかっていそう)、結局メディアファイルとプラグインの両方を除外することで成功しました
プラグインの復元はさきほどの方法と同様に行いましたが、メディアファイルは量も膨大でプラグインでどうこうできそうな雰囲気ではありません。ここは仕方がないのでFTPソフトを接続して、旧サイトの「wp-content>uploads」内にあるファイルを全てダウンロード、その後新サーバーに接続し同じuploads内にすべてアップロードという正攻法で引っ越ししました。
ちなみに各サーバーが提供しているWEBFTPが使えれば簡単そうなので使えないかなーと調べてみたのですが、WEBFTPはあくまで簡易的な機能で、フォルダ単位の一括ダウンロードやアップロードができない場合が多く(少なくともロリポップ、エックスサーバーでは一括DL/ULは無理でした)、アップロード上限なども決まっていたために結局普通にFileZillaでそれぞれ接続して引っ越しを行いました。
All-In-One WP Migrationでインポートがうまくいかなかった場合のまとめ
というわけで、今回はWPサイト3サイトのサーバー移転に際して『All-In-One WP Migration』がうまく機能しなかったケースと解決策を書いてみました。
まとめると、
インポートが後半で止まる場合…プラグインが干渉している可能性
インポートが前半で止まる場合…メディアファイルの可能性
という感じでした。もちろん詳しく調査したわけではないので厳密には異なる原因があるのかもしれませんが、少なくとも今回は上記のようにアタリを付けて、それに対処する形でうまくいきました。
具体的には、プラグインが原因の場合はプラグインを除外して別途プラグインでバックアップ・設定データを引き継ぐ。メディアファイルの場合は、メディアファイルを除外してFTPソフトでアップロードする。これで対処可能かと思います。
プラグインが原因の場合、何が影響しているのか原因を突き詰められればそのプラグインのみ除外して移行できるのでより簡単に移行できるかと思いますが、そもそも大量のプラグインがインストールされているサイトの場合、いちいちひとつずつプラグインを検証するのも困難かと思いますし、単に引っ越しをしたい場合は上記のように対症療法的に対応すれば十分かと思います。
またプラグインだけじゃなくメディアファイルも除外して引っ越しする場合、そもそも『All-In-One WP Migration』プラグインを利用する意味があるのか?とも思いがちですが、個人的には面倒なデータベース関連の設定・復元を行わなくても良いというだけで十分に利用する価値はあるのではないかと考えています(テーマファイルも含めて引っ越しできればテーマの再設定も不要ですし)。
主に自分の覚書として文字に起こしてみましたが、同じように引っ越しがうまくいかない人の参考になれば幸いです。