BackWPupでFTP接続が中断される場合の対処法

BackWPupでFTP接続が中断される場合の対処法

WordPressで運用しているサイトで、必ず導入しているプラグインに「BackWPup」があります。定期的かつ柔軟にバックアップを行うことができるプラグインで、ファイル保存先にローカル、メール添付以外にもFTP、S3、Dropbox、Azure、Rackspace、SugarSyncを指定できるため、最悪サーバが壊れてしまった場合でも安心です。

そんな「BackWPup」にお世話になりっきりな管理しているサイトの一つで、週末に全データを別サーバにFTP接続しデータ転送を行い、バックアップするよう設定し運用していたのですが、あるタイミングでエラーが頻発するようになっていました。

日を追うごとにバックアップエラー発生

最初はバックアップが完了したり、しなかったりを繰り返し、日を追うごとに完全に完了できない状態に・・・。FTP接続は問題がないのに、なぜか接続を繰り返してしまうのです。

以下ログになります。こんな感じ。

[情報] BackWPup バージョン 3.3.7; Inpsyde GmbH のプロジェクト
[情報] https://○○○.com/○○○/上の WordPress 4.7.3
[情報] ログレベル: 普通 (翻訳)
[情報] BackWPup ジョブ: Weekly Backup
[情報] ログファイル: backwpup_log_○○○.html
[情報] バックアップファイル: backwpup_○○○.tar.gz
[05-Apr-2017 12:45:17] 1. バックアップするフォルダーのリストを作成中...
[05-Apr-2017 12:45:18] "wp-config.php" をリストに追加しました。
[05-Apr-2017 12:45:18] 2306 個のフォルダーをバックアップ。
[05-Apr-2017 12:45:18] 1. マニフェストファイルを生成 …
[05-Apr-2017 12:45:18] manifest.json ファイル (6.59 KB) をバックアップファイルリストへ追加しました。
[05-Apr-2017 12:45:18] 1. バックアップアーカイブを作成中...
[05-Apr-2017 12:45:18] ファイルを TarGz に圧縮します。時間がかかる場合がありますので、しばらくお待ちください。
[05-Apr-2017 12:45:41] バックアップアーカイブを作成しました。
[05-Apr-2017 12:45:41] アーカイブのサイズは435.02 MBです。
[05-Apr-2017 12:45:41] アーカイブ内に515.89 MB、15510個のファイルがあります。
[05-Apr-2017 12:45:42] 1. FTP サーバーにバックアップファイルを送信中...
[05-Apr-2017 12:45:42] 明示的な SSL-FTP を介してサーバーへ接続: ○○○.com:21
[05-Apr-2017 12:45:42] FTP クライアントコマンド: USER ○○○
[05-Apr-2017 12:45:42] FTP サーバーの応答: User ○○○ logged in.
[05-Apr-2017 12:45:42] FTP クライアントコマンド: SYST
[05-Apr-2017 12:45:42] FTP サーバーの応答: UNIX
[05-Apr-2017 12:45:42] 現在の FTP フォルダー: /backup/○○○/
[05-Apr-2017 12:45:42] FTP クライアントコマンド: PASV
[05-Apr-2017 12:45:42] FTP サーバーの応答: パッシブモードで入る
[05-Apr-2017 12:45:42] FTP へのアップロードを開始 …
[05-Apr-2017 12:46:10] 明示的な SSL-FTP を介してサーバーへ接続: ○○○.com:21
[05-Apr-2017 12:46:10] FTP クライアントコマンド: USER ○○○
[05-Apr-2017 12:46:10] FTP サーバーの応答: User ○○○ logged in.
[05-Apr-2017 12:46:10] FTP クライアントコマンド: SYST
[05-Apr-2017 12:46:10] FTP サーバーの応答: UNIX
[05-Apr-2017 12:46:10] FTP クライアントコマンド: PASV
[05-Apr-2017 12:46:10] FTP サーバーの応答: パッシブモードで入る
[05-Apr-2017 12:46:10] FTP へのアップロードを開始 …
[05-Apr-2017 12:46:38] 明示的な SSL-FTP を介してサーバーへ接続: ○○○.com:21
[05-Apr-2017 12:46:38] FTP クライアントコマンド: USER ○○○
[05-Apr-2017 12:46:38] FTP サーバーの応答: User ○○○ logged in.
[05-Apr-2017 12:46:38] FTP クライアントコマンド: SYST
[05-Apr-2017 12:46:38] FTP サーバーの応答: UNIX
[05-Apr-2017 12:46:38] FTP クライアントコマンド: PASV
[05-Apr-2017 12:46:38] FTP サーバーの応答: パッシブモードで入る
[05-Apr-2017 12:46:38] FTP へのアップロードを開始 …

しっかり接続されているのに繰り返している。何かがタイムアウトしている? 実はこの後、永遠と接続を繰り替えしていたため、エラーログがもの凄いことになっていました。

原因はPHPスクリプトの実行時間

BackWPupでFTP接続が中断される場合の対処法小一時間、原因を究明していたところ解決しました。

なんと転送ファイル容量の増大のためスクリプトの実行時間をオーバーしてしまい、タイムアウトしていたのです。なるほど、こんなところで引っかかっていたのか。

解決するには、WordPress管理画面 > BackWPupメニュー > 設定 > ジョブ の「最大スクリプト実行時間」、まずここを増やします。もし増やしても設定が元に戻ってしまう場合は、「php.ini」の「max_execution_time」を増やすことで解決しました。

max_execution_time = 30

30秒設定になっていたところ、とりあえず300秒にあげておきます。

max_execution_time = 300

これで接続を繰り返すことはなくなりました。「max_execution_time = 0」にすることで、永遠と実行させることはできますが、処理がなかなか終わらない高負荷なスクリプトを実行した場合に、PHPのプロセス自体に支障を来す場合があるのであまりお勧めしません。節度ある「max_execution_time」にしましょう!

related story