WordPressの移行ができない場合の手動対応について触れていきます。。今回は雑談程度です(ただ、WordPress移行にお困りの方に、何かしらのヒントにはなるかもしれません)。端的にはWordPressの引っ越し、別サーバーへの移転、移管の際に各種ツールが使えない場合の原因と手動対応についてです。
サーバー移管の際に、WordPressを移行する場合があります。この時、各サーバー会社さんに「WordPress簡単移行ツール」などが用意されていて、WordPressログイン情報等のある程度簡単な情報入力だけでWordPressを新サーバーに移行することができる場合があります。
サイトの規模が小さい場合は、こうしたツールでWordPress移行をするというのが一番楽で簡単ですが、サイト規模がある程度以上になると、WordPress移行ツールが全く役に立たないというケースが出てきます。
サイト規模が大きいとWordPressの移行作業の最初の段階の「移管元ファイルの圧縮」などにおいてサーバーに高負荷がかかり、作業がストップしてしまうからです。
この場合地道に手動対応していくしかありません。
サイト規模が大きいとWordPressの移行作業がストップしてしまう

WordPress移行のためのファイルの圧縮などにおいてサーバーに高負荷がかかり、実行を制限されてしまったり、タイムアウトなどが生じたりして、WordPressの移行作業がストップしてしまうというような場合です。
これは、WordPress移行のプロセスとして、①移管元のデータをzipなどに圧縮して②移管先に渡し③移管先で解凍するというような流れにある中、一番最初のデータファイルの圧縮の段階で、「数が多すぎて対処できません」という状態になるというイメージです。
- 移管元のデータをzipなどに圧縮
- 移管先にzipデータ移行
- 移管先でzip解凍(展開)
こうした流れの中でファイルサイズが大きい、ファイル数が多いという場合にフリーズしてしまうというイメージです。
メディアファイルの圧縮などにおいてサーバーに高負荷がかかる

WordPressのデータは投稿等のテキストデータや各種基本設定データのほか、WordPressテーマやプラグイン、メディアファイルなど多岐にわたります。
投稿や固定ページ、基本設定やプラグイン内の設定といったテキスト系のデータはデータベースに格納されており、たくさんのリビジョンで容量が大きくなっている場合もありますが、比較的データ容量は小さい傾向にあります。
各サイズの自動生成によって想像以上の画像枚数になっている
一方、WordPressのメディアファイルは、画像を中心として容量も大きく、またWordPressの機能によって様々なサイズの画像が自動生成されており、その数も想像より多くなっています。
アップロードした画像は一枚でも「サムネイル表示用サイズの画像」「スマートフォン表示用サイズの画像」などたくさんの画像が自動生成されています。
このため、メディアファイルの圧縮などにおいてサーバーに高負荷がかかり、WordPress移行ツールが実行を停止してしまうという現象が起こります。
WordPress移行プラグインも停止する

構造としては「zip圧縮などによってWordPressのデータをひとまとめにする」という段階で動作が止まるため、サーバー会社さんに用意されている「WordPress簡単移行ツール」はもちろん、All-in-One WP Migration、Duplicator、Migrate Guruといった有名なWordPress移行プラグインも全く役に立たないという場合もあります。
この場合は、WordPress移転を手動対応して行く必要があります。
まずはWordPress簡単移行ツールやWordPress移行プラグインを利用してみるという流れになりますが、それができない場合はそれぞれのデータを手動で移し替えていくしかありません。
WordPress移転の手動対応

このようにサーバー移管時にWordPressの移行ができない場合には、WordPressの移転は手動対応となります。
つまりWordPressテーマファイルやアップロードファイルを一度ダウンロードしたり、データーベースをエクスポートしたりといった作業、そして、移転先へのアップロードやデータベースインポート、WordPress内の各再設定を手動で行うしかありません。
こうなるとノイローゼ気味になります。
慣れていない人がやると、WordPress移行が完了する前に挫折してしまいます。
慣れている人がやっても、ノイローゼ気味になります。
「これで簡単に移行できる!」…待たされた挙げ句「実行できませんでした」

なぜノイローゼ気味になるのかというと、WordPress以降に関するツール、プラグインを発見し、「よし、これで簡単に移行できる!」と、実際にプラグインなどを動かしてみた結果…
…待たされた挙げ句「実行できませんでした」と返されるオチばかりだからです。
「ダメなら最初から言ってくれ、時間を返せ」という感想がやってきます。
作業が膨大になるためできれば手動対応したくない、そこでプラグインなどで簡単にWordPress移行を実行したいという気持ちは常にあります。
しかし、「これで簡単に移行できる!」と期待を与えられ、待たされ、結局「実行できませんでした」と返されます。
この場合、致し方ありません。
WordPress移行を手動対応していく必要があります。
プラグインや移行ツールが途中で止まる主な原因
移行ツールがフリーズしたりエラーを吐き出したりする背景には、主にサーバーの処理能力とデータ容量の問題が潜んでいます。これらを理解することで、適切な手動対応へ切り替える判断が可能になります。
移管元サーバーのスペック不足による処理落ち
現在稼働している移管元サーバーのCPUやメモリといったスペックが低い場合、移行ツールが要求するデータ圧縮や転送処理に耐えきれず、プロセスが強制終了してしまうことがあります。特に共有サーバーの安価なプランを利用しているケースでは、PHPのメモリ制限や実行時間の制限(max_execution_time)に引っかかりやすく、バックアップデータの生成途中で進行が止まります。こうした環境下では、サーバー上で重い処理を行うプラグインに頼る手法は現実的ではありません。
ページ数やデータ量が膨大であることによるタイムアウト
長年運用してきたホームページ(ウェブサイト)や、画像ファイルが大量にアップロードされているホームページでは、全体のデータ量が数ギガバイトに及ぶことも珍しくありません。ページ数が多くデータベースの容量が大きい場合、ツールを通じた一括エクスポートやインポートはタイムアウトを引き起こす原因となります。プラグインはあくまでPHPのプロセス内で動作するため、膨大なデータを一度に処理しようとすると限界を迎えます。
WordPress移行の手動対応の手順

WordPress移行の手動対応の手順としては、まず新サーバーでデータベース(MySQL・MariaDB)を作成し、WordPressをインストールします。
そして、旧サーバーのデータベースのデータをエクスポートして、新サーバー側のデータベースにインポートする、といった手順となります。
そして次に、旧サーバー側の「アップロードファイルフォルダ」のファイルをすべてダウンロードして、新サーバー側のアップロードファイルフォルダにアップロードします。
その後、wp-configファイルの書き換え、. htaccessの再設定を行います。
(こういった原則的な対応は、サーバー会社さんの方でも解説されています)
データベース(MySQL・MariaDB)のエクスポートとphpMyAdmin
データベース(MySQL・MariaDB)をエクスポートするのにphpMyAdminをインストールする必要がある場合もあります。
phpMyAdminが使えない場合でも、データベースバックアップ系のプラグインでデータベース(MySQL・MariaDB)の内容を吸い出すことはできます(ただ移管先ではphpMyAdmin等々でデータベース内容をインポートする必要があります)。
なお、サーバー会社さんによっては、サーバーコントロールパネル上からデータベースのデータをそのままダウンロードできる場合もあります。
サイト規模が大きいとサーバーが動作停止し手動対応が必要になる

しかし、そんな原則的な対応が通用しないか、しながらも膨大な時間と手間がかかる場合があるということになります。
プラグインなどを使えば、アップロードファイルフォルダをzip圧縮してまとめてダウンロードしたりすることもできます。
しかし、サイト規模が大きいと、そうしたコマンドを受け付けてくれないというか、負荷がかかりすぎてサーバー側が動作を停止する場合があります。
「WordPressの移行プラグインを使えば…」
「バックアッププラグインを使えば…」
というのは原則的な方法が通用する場合です。
サイト規模が大きいと、実行作業が固まってエラーが表示されるだけです。
つまり、そうしたプラグインは役に立ちません。
こうしたことから、全てが手作業になります。
事例:膨大な画像ファイル数の影響でWordPress移行にかかるzip圧縮ができずに手動対応となったケース

膨大な画像ファイル数の影響でWordPress移行にかかるzip圧縮ができずに手動対応となったケースをご紹介します。
弊社の管理するWordPressサイトを移行した時、画像ファイルが83000点を超えていました。
WordPressが自動で色々なサイズの画像を生成します。この機能のおかげで、通信負荷軽減、サイトスピード向上などが実現しているのですが、WordPress移行に関して言えば、ノイローゼを加速させる要因になります。
それほどのファイルをダウンロードしてアップロードするとなると、相当の時間がかかります。なので、zip圧縮したいと思っても、数が多すぎて圧縮してもらえません。
phpによるtar、zipコマンド利用可、かつ、zipモジュール利用可の場合でもダメですね。
つまり、地道にやるしか無いということになります。
「WordPress簡単移行ツール」などがあるため、「それほど大した作業ではないだろう」と思われがちですが、それが使えない場合の時間と労力は膨大なものになります。
もちろん「WordPress移行ツール」が使えるのであれば、それが使えるに越したことはありません。結果としては、新サーバー等にWordPressが移管されるというだけですからね。
移行ツールに頼らない手動移行の具体的な手順
ツールが停止してしまう環境においては、ファイルとデータベースを切り分けて個別に移行する手動対応が最も確実な手法です。より専門的には、サーバーの基盤部分に直接アクセスしてデータを移動させます。
FTPソフトを用いたファイル群の直接ダウンロードとアップロード
プラグインによる一括圧縮ができない場合は、FTPソフトを利用して、WordPressを構成する「wp-content」フォルダ内の画像データやテーマ、プラグインのファイルを直接ローカル環境へダウンロードします。その後、移管先のサーバーへ再度FTPでアップロードを行います。
ファイル数が膨大な場合は、サーバーのコントロールパネルに備わっているファイルマネージャー機能を利用して、ディレクトリごとに分割してZIP圧縮をかけると、転送中の欠損を防ぎながら安全に移動できるかもしれません。
phpMyAdminを通じたデータベースの分割エクスポート
データベースのエクスポートにおいても、WordPressの管理画面からではなく、ホスティングサーバーに用意されているphpMyAdminに直接ログインして作業を行います。
データ量が大きい場合は、全テーブルを一度にエクスポートするのではなく、投稿データが入っている「wp_posts」や「wp_postmeta」などの巨大なテーブルと、その他の設定テーブルを分割してエクスポートします。これにより、インポート時の容量制限やタイムアウトを回避しやすくなります。
専用スクリプトによるURLとファイルパスの検索置換
手動でデータベースを移行した後は、データベース内に記述されている古いドメインやサーバーの絶対パスを、新しい環境のものへ書き換える作業が必要です。単なるテキスト置換ソフトを使うと、シリアライズされたデータ(ウィジェットやテーマ設定などの配列データ)が破損してしまいます。
そのため、シリアライズデータに対応した検索置換用の専用PHPスクリプトを一時的にサーバーへ配置し、適切に書き換え処理を実行します。作業完了後は、セキュリティの観点から必ずこのスクリプトを削除しておきます。
サーバー環境の設定調整による事前対策
手動対応を進める前に、移管元および移管先サーバーのPHP設定を見直すことで、作業をスムーズに進められる環境を構築できます。
PHPの各種制限値の引き上げ
サーバーのコントロールパネルや設定ファイルを編集し、一時的にPHPの制限値を引き上げます。具体的には、メモリの最大使用量を示す「memory_limit」や、スクリプトの最大実行時間を示す「max_execution_time」、アップロード可能な最大ファイルサイズ「upload_max_filesize」などを大きな数値に変更します。
これにより、インポート時の途中停止をある程度防ぐことが可能になります。移管が完了した後は、安全のために元の適切な数値に戻しておくことが大切です。
WordPress移行にまつわる「最初には見えないトラブル」

WordPress移行を手動対応していると「最初には見えないトラブル」がよく発生します。
「データベースをまるごと移し替えているのに、移行後のWordPressサイトに反映されていない部分がある」
といったようなものです。
「データベース内容も同じで、アップロードファイルフォルダにあるファイル構成も同じであるはずなのに」
というような理解し難いトラブルです。
アイキャッチ画像が未設定になっていたり、一部の画像が反映されていなかったり、それに対応しようとWordPress eXtended RSS(WordPressのインポートエクスポートに使うXML)で上書きしようと思うと、既存ファイルについては上書きではなく、枝番が付く形で二重に投稿が設定されたりと、ロクなことはありません。
サイトの投稿数、固定ページ数が多く、プラグインも多く利用して、たくさんカスタマイズを実施しているサイトほどこのようなトラブルが起こりやすいのは言うまでもありません。
WordPress eXtended RSS

WordPress エクスポート WordPress eXtended RSS
WordPressサイトの移行、移管において、コンテンツ部分の移管には、WordPress純正のXML ファイル「WordPress eXtended RSS」によるデータのエクスポート、インポートツールを使用します。
ただ、純正のままだと画像の移管がうまくいかない場合もあります。
うまくいかないからとインポートを何度か繰り返すと先に触れた通り「上書きではなく、枝番が付く形で二重に投稿が設定される」という現象が起こることがあります。
WordPress設定順序の問題

「なぜ、WordPressがそのまま移行されないのか?」
という点ですが、それにはアップロード自体のトラブル、高負荷によるトラブルというものもありながら、設定順序の問題なども大きく関わっていると考えられます。
例えばデータベース上では、プラグインが有効化状態になっていながら、そのプラグインがまだきちんと新サーバー側のWordPressに正常インストールされていない場合、プラグインは停止状態になります。
もし、プラグインファイルがきちんとあったとしても、何かの設定が一旦無効化されているという場合もあります。
. htaccessにあるコードが書き込まれている前提であるのに、新WordPressサイトが設置されている. htaccessにはそれがなく、プラグインが正常に動作していないという場合もあります。
画像重複によるファイル名の変更
インポートツールのエラーで画像が重複して、ファイル名に枝番がつき、投稿内の画像呼び出しファイルとの整合性がなくなったいう場合もあります。
「呼び出しファイル名に枝番がついたため画像が表示されていない」ということを確認するには、「枝番(つまり”-1″など)」を検索して発見することになります。
普通に考えると、一括で枝番を削除するための書き換えをすれば解決するということになりますが、元々枝番がついたものが設置されていた場合、「枝番がついている方が正常なもので、ついていない方が存在しない画像ファイル名」というパターンもちらほらあります。
なので気は抜けません。
WordPress移行が完了した際にやってくる達成感と爽快感

理屈上はWordPress移行の手動対応の解説通り、移行作業を進めればWordPressの移行は正常完了するはずですが、手動対応の場合は、「こちら側でこの設定になっているのに、必要なファイルがありません。だから機能を停止しておきます」というような現象が、見えぬところで起こっている場合があります。
なので気は抜けません。
こうしたトラブルも発生するため、苛立ちや冷や汗ばかりとなります。
ひとつが解消したと思うと、「あらあちらにも、ほらこちらにも」と細かな不具合が出てきます。
なのでノイローゼ気味になります。
ただ、WordPress移行が完了した際には達成感と爽快感がやってきます。
こうした理由から、安易に「すぐできますよ」「簡単にできますよ」とは言えません。
移行ツールやプラグインが使い物にならず手動対応となると相応の時間と作業が必要になりますし、WordPress移行が完了したかに見えて、細かな不具合が残っている場合もありますからね。
弊社ではWordPressサイトの移転(サーバー移転、ドメイン変更)や、WordPress移行ツールや移行プラグインが使えない場合の手動移転にも対応しています。お困りの際には「お問い合わせフォーム」よりお気軽にお声がけください。
(状況によっては費用が高額になったり、WordPress移転自体が難しい場合もありますがご容赦ください)
(初回投稿日 2023年9月4日)







