wordpressのプラグインAll-in-One WP Migrationを使ってサイトを移行する際に、移行先でインポートが100%で止まってしまう現象が発生したときの内容とその解決法をご紹介します。
なお、この記事の内容はnginx限定となっていますのでご了承ください。
環境
nginx 1.12.2
WordPress 4.9.18
All-in-One WP Migration 7.45
All-in-One WP Migration Multisite Extension 4.13(エクスポート側のみ)
現象
この現象はAll-in-One WP Migrationを使ってサイト間のデータ移行を行う場合において、移行先でデータをインポートするときによく起こる現象のようです。
自分はマルチサイト用の拡張版を使ってマルチサイトから通常サイトへデータを移行したときに発生しました。
この時は画像やプラグインは除外していたのでデータそのものは約19MBでした。
再現手順は以下の通りです。
まず元サイトからAll-in-One WP Migration Multisite Extensionでデータをエクスポートします。(自分はマルチサイト用の拡張版を使いました。)
次に新しく作成したサイトでAll-in-One WP Migrationをインストールし、エクスポートした元サイトのデータをインポートします。
すると画像のようにインポート率が100%で止まったまま動かなくなりました。
解決法
まずHow to Increase Maximum Upload File Size in WordPressに書かれている方法を試してみましたが、上手くいきませんでした。
その後色々な情報を探していたところ、プラグインのサポートフォーラムの投稿(Uploading a file stuck at 100% – what to do)に書かれていた、以下の一文が目に留まりました。
3. If you wait for a while and the process does not move past the 100% mark, open developer tool and see if you have any JavaScript errors in the console.
「しばらく待ってもプロセスが100%を超えなかったら、デベロッパーツールのconsoleでJavaScriptエラーを確認せよ」ということなので、この通りにブラウザのconsoleを確認すると以下のエラーメッセージが出ていました。
Failed to load resource: the server responded with a status of 413 (Request Entity Too Large)
このメッセージを検索するとこちら記事がヒットしましたので、内容を参考にしてnginx.confのserverディレクティブに以下の行を追加しました。
client_max_body_size 1024M;
このコードでは1024MBまでのデータをアップロードできるようになります。
「1024M」の部分はインポートするデータに合わせて調整してください。
nginxをリロードして再度インポートを試みると、無事にインポートできました。
参考
・Nginx での 413 Request Entity Too Large エラーの対処法
https://qiita.com/takecian/items/639deeae094466de6546
・Uploading a file stuck at 100% – what to do(サポートフォーラムへの開発者の投稿)
https://wordpress.org/support/topic/uploading-a-file-stuck-at-100-what-to-do/
・How to Increase Maximum Upload File Size in WordPress
https://help.servmask.com/2018/10/27/how-to-increase-maximum-upload-file-size-in-wordpress/