先日、弊社で管理させて頂いているクライアントさんのWordPress利用のWEBサイトの中で、バックアッププラグインのBackWPupが突然動かなくなったので、その原因を探っていたら新しいことも発見しましたので、今までのことも含めて、備忘録として書いておこうかと思います。
1.圧縮には「Tar GZip」を推奨。
WordPressのバックアップとして、コンテンツとデータベースを両方圧縮して保管できるのは便利なんですが、圧縮に「Zip」を使うと、すごく時間がかかることがあります。ここでは、圧縮オプションに「Tar Gzip」を使うのがオススメです。
Tar Gzipの解凍は、Windowsでも解凍ソフトによっては対応していますので、特に問題ないはずです。
2.サーバによっては対応していないバージョンがある。
BackWPupのバージョンが3.0.2以上あたりから、データベース処理にmysqliというものを使うようになっていますので、古いバージョンでないと動かないということがあるかもしれません。
また、PHPのバージョンも、5.3ではなく、5.4以上に上げておくと、動くようになると思います。
3.Open SSL関連の制限で動かないことがある。
詳しくは↓の記事に書いていますが、Open SSL関連のサーバ変更により動かなくなるケースもあります。
WordPressのBackWPupでDropbox API error | ITコンサルタント日記
対策方法も記載してあります。
4.SSL 3.0の脆弱性に起因する不具合が起きている。
今年発見された、SSL 3.0の重大な脆弱性↓について、
更新:SSL 3.0 の脆弱性対策について(CVE-2014-3566):IPA 独立行政法人 情報処理推進機構
レンタルサーバ事業者側で穴を塞ぐ対応をされていることがあります。その結果、BackWPupが動かなくなるケースがあるようです。
今回、ちょうど2.のサーバのケースで、BackWPupの最新バージョンだと動かないレンタルサーバで、少し前のBackWPupのバージョン(3.0.1以前?)が動かなくなった、ということで調べたところ、
ERROR: Dropbox API: (35) error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure
のようなエラーが出ていたので、原因を調べていたところ、
プラグイン中の
・class-destination-dropbox.php
・class-destination-sugarsync.php
の2つのファイル中に、
curl_setopt( $ch, CURLOPT_SSLVERSION, 3 );
という記載がされている箇所が数カ所あります。これは、強制的にSSL 3.0を使うという命令なので、うまく動くはずがなく、これを、
curl_setopt( $ch, CURLOPT_SSLVERSION, 0 );
のように、全部書き換えてあげます。この 0 というのは、サーバのデフォルトのSSLを使いなさい、という命令です。
これで、動くようになります。
もちろん、PHP、MySQLともにできるだけ安定版&最新バージョンを使うようにして、WordPress、BackWPupも最新バージョンに上げておくというのが基本ルールなのですが、それだと動かなくなるというケースも希にあるので、自社が使っているサーバにあわせて調整してみてくださいね。
コメント
はじめまして、同じ状況になってから2か月くらい経ってまして・・・やっと対処法がわかりました。ありがとうございます。ただ3を0にする方法がどうにもわからないのでコメントさせていただきました。素人には難しい作業でしょうか?
TOM様、コメントありがとうございます。
いえいえ、難しくないと思いますよ。FTPは使えますか?
使えるのでしたら、「wp-content\plugins\backwpup\inc」のフォルダに入っている、
・class-destination-dropbox.php
・class-destination-sugarsync.php
をローカルPCにダウンロードし、メモ帳などのテキストエディタで開いてください。
検索機能を使って「CURLOPT_SSLVERSION」で検索すると、
curl_setopt( $ch, CURLOPT_SSLVERSION, 3 );
という箇所が何カ所かヒットすると思います。
それらを「3」→「0」にして、保存します。
それを、FTPを使ってアップロードし、元のファイルを上書きで保存してください。
これでOKだと思います。