WordPressのプラグインであるDuplicatorは、サイトのバックアップを手軽に取れるので便利に使っています。ところが今回バックアップを試みると、上の画面のようなエラーが発生してしまいました。いろいろと調べた結果、原因がわかり問題も無事解決したのでメモとして残しておきます。
コンテンツ
Duplicatorのエラーの原因
エラーメッセージは”Host Build Interrupt”というシンプルなもので、何らかの原因で処理が途中で止まってしまったという事のようです。
通常のホスティングサービスでは1回の処理時間の最大値がホスト側で設定されており、長い間反応が返ってこないという事態を避けるようになっています。
調べてみると、私が使っているホスティングサービスのBluehostでは、WordPressを実行しているPHPの最大処理時間が30秒に設定されていました。
Blogに蓄積されているデータが多くなり、処理に多くの時間がかかるようになったため、処理時間の制限をオーバーしてしまった、という事が直接の原因だったようです。
解決方法
エラー画面から対応方法を解説したページに飛べる、という親切設計?になっており、以下のようなページを見つけました。
これによれば解決方法は、以下の二つでした。
- Duplicatorプラグインの設定見直し
- ホスティングサーバーのタイムアウト設定変更
2番目の方法は、ホスティングサーバーのPHPやWebサーバー、データベースに関するタイムアウト設定を変更するというものです。例えば、PHP関連では、その設定が記述されているファイルであるphp.iniにあるmax_execution_timeの値を変更することになります。
私の場合はPHPタイムアウトを変更(30から120に変更)したものの状況は変わらず、結局のところ1番目の方法で解決となりました。
Duplicatorプラグインの設定変更
こちらの方法は、WordPress上ですべて完結できるのでよりお手軽です。
WordPressの管理画面から左にあるメニューのDuplicator→Settingsと進み、Packagesのタブを選択したところが以下の画面です。
設定は上の赤枠で示したように、SQL Scriptの項目でMysqldumpのオプションを選択すれば完了です。私が使っているBluehostの場合は、mysqldumpの場所を自動的に探してくれましたが、そうでない場合はその下の項目で設定する必要があります。
さらに私の場合は、Archive Flushの項目にあるKeep Aliveのチェックマークもついでに付けました。
SQL Scriptの項目がPHP Codeではなくmysqldumpのオプションがもとから選択されている場合や、そもそもmysqldumpがサーバーに用意されていない場合は、上で挙げた1番目の方法も試すと良いかも知れません。
以上、ご参考になれば幸いです。