前回FTPを使ってWordPressのバックアップを取る方法を書きましたが、テーマなどの大きなフォルダを一括ダウンロードしようとすると途中でエラーが出てしまう事があります。
通信速度だったりファルダのパーミッションの問題だったり何か原因があるのかなーと思ってたんですが、とある方法で一気にバックアップを取ることができましたのでその方法を記しておきます。
大きなフォルダをダウンロードしようとするとエラーが出る
いざフォルダを作ってテーマのフォルダをごそっとバックアップ!というタイミングで
こんな感じで途中でエラーを吐いてしまう事が何度かありました。
一度FTPを閉じて開きなおしてみたりしてもダメ。
主要なファイルだけを選択して一個ずつダウンロードするしかないのかなーと思っていたんですが、それは最高に効率が悪い。
色々と調べていたらFTPの設定を変えることで全て一度にダウンロードできる事がわかりました。
暗号化の設定が問題だった
私の場合はXサーバーを借りてます。
その他のレンタルサーバーでも同様だと思うのですが、
参考:FFFTP設定手順 | レンタルサーバー【エックスサーバー】より
FTPでの通信時の暗号化設定で「FTPS(Explicit)で接続」するように指示されています。
どうやらここが原因のようで、FTPSで接続することによって途中でエラーを吐くようになるようです。
FTPS(Explicit)で接続ってどういう事?
wikipediaには
サーバに接続した後にクライアントがAUTHコマンドを実行して、使用するプロトコル(SSLまたはTLS)のネゴシエーションをおこない、適合したプロトコルでのハンドシェイク完了後に暗号化された通信がおこなわれる。 つまりExplicitモードの場合、クライアントがAUTHコマンドを実行しなければ通常のFTPとして機能する。
と記載してあります。
なんのこっちゃ。
とりあえずFTPで接続した後にAUTHコマンド(認証コマンド)を使って暗号化通信を行っているという認識でいいんですかね?
Explicitモードの場合サーバー側でSSLを強制することができるそうなので、安全面からもこの設定で使えよって事だと思います。
どうすればエラー無しでダウンロードできるのか
で、本題のエラーを出さずにバックアップを取得する方法なんですが、一時的にこの「FTPS(Explicit)で接続」を「暗号化なしで接続を許可」に変更します。
こんな感じ。
この状態で再度繋ぎなおすことで、テーマのような容量の大きなフォルダをダウンロードしてもエラーが出なくなります。
またアップロード時のエラーも同様の方法で回避できます。
ただしこの状態で繋ぐことによってセキュリティ的な問題もありそうなので、バックアップを取得し終わったら設定を元の「FTPS(Explicit)で接続」に戻して繋ぎなおすことを推奨します。
何かあっても責任取れないからね。
まとめ
今のところ暗号化なしで接続した場合に途中でエラーが出てダウンロードが止まってしまったことはありませんので、この方法で問題なくダウンロードを行えると思います。
バックアップがうまく取れないときは試してみてください。
なおすぐ上でも書きましたが、取得し終わったら設定を元に戻すのを忘れずに!