プラグインを利用したWordPressのバックアップ手法


WordPressでは「データベース(MySQL)」と「展開しているフォルダ(ディレクトリ)」の2つをバックアップする必要があります。個別にやってもいいのですが、なかなか面倒な作業でもあります。

さらに付け加えるなら、定期的な手動バックアップ(FTPとかで)も限界があります。

そこで、プラグインを利用したバックアップ手法を2つ紹介します。

手法1)「WordPress Backup (by BTE)」「WP-DBManager」プラグインを利用した半自動バックアップ

手法2)「BackWPup」プラグインを利用した自動バックアップ

いままでは、手法1)を使っていました。しかし、このブログを書くにあたって、最新バックアップ情報を探していくと、さらに便利な解決する手法2)を発見(Dropboxに自動保存!さらに世代バックアップも可能!ほんと!?)。もちろんプラグインですので、完璧かどうかは分かりませんが、うまく機能すればバッチリなはず。手法2)は本日からしばらくチェックすることにしますが、直感的には、手法1)2)を併用するとより確実かと思います。このあたりはしばらく検証した上で、また追記します。

インストール方法について、ここで詳しく書こうとも思いましたが、世の中は便利で詳しく解説しているサイトがあります。したがって、それら便利なサイトを活用させていただきながら、注意点や設定についてのお勧めを紹介していきます。

手法1)「WordPress Backup (by BTE)」「WB-Manager」を利用した半自動バックアップ

半自動と書いたのは、バックアップしたデータは同じサーバ内に保存されるからです。
つまりサーバが飛ぶと、同時にバックアップが無くなるわけで、これでは意味が半減します。
もちろんWordPress本体のバージョンアップやプラグイン導入による不具合の修正には十分効果は発揮します。いずれにしてもこれらのプラグインでバックアップをとった上で、定期的にFTP経由でまるごとWordPressフォルダをバックアップすることだと思います。するとデータベースごとバックアップを取ることができます。

以下、2つのプラグインのインストールおよびお勧めの設定方法を紹介します。

手法1-1)フォルダバックアップ「WordPress Backup (by BTE)」

WordPress本体をのぞいたコンテンツ(テーマ、プラグイン、アップロード)のバックアップになります。もしWordPressごとダメージを受けた場合(サーバ破損等)には、WordPressと本プラグインをインストールした上で、復元作業をすればよいことになります。

まずは下記を参考にインストールしてみてください。

設定や注意事項はについては下記にまとめて起きます。

「bte-wb」フォルダの作成が必要

  1.  wp-contentフォルダ内に、bte-wbフォルダを作成します
  2. bte-wbのアクセス権限は777(だれでも書き込み可)※自身が管理するサーバならapache等ウェブサーバシステムのユーザ権限に書き込み権限を与えることで可です。

「.htaccess」がFTPから見えないよ、どうやって作成するの?

WP-DBManager – データベースを自動でバックアップする内の、「.htaccess を backup-db フォルダーに移動する」を参考にすると分かりやすいかと思います。

  1. htaccess.txtなどのファイルを作成し、ここに必要な内容(フォルダ内をWebからアクセス不可にする)を書く
  2. FTPでアップロード
  3. アップロード先でファイル名を「.htaccess」に変更

確認事項(設定→WordPress Backup)

  • Backup Directory(WordPressインストール場所/wp-content/bte-wb)
  • Plugin Directory (WordPressインストール場所/wp-content/plugins)
  • Theme Directory(WordPressインストール場所/wp-content/themes/テーマ名)
  • Upload Directory(WordPressインストール場所/wp-content/uploads)

特にテーマは変更されていることが多いので注意が必要です。

バックアップ時間は特に指定できません、また上書き保存になるので1回分しか保存されないデメリットはありますが、シンプルなので分かりやすいとは思います。

手法1-2)データベースのバックアップ「WP-DBManager」

が詳しすぎるのでこれを見てください。

これはデータベースのバックアップもリストアも非常に簡単なのが特徴です。

下記では使い方とお勧め設定を紹介します。

DB Options(設定)

どの程度の頻度でバックアップをとりたいのかによります。データベースは単なるテキスト情報なので、圧縮すると容量もたかが知れています。可能なら頻繁なバックアップしておけば巻き戻しがしやすいのでいいかなと思います。

私の設定例を紹介します。

2時間ごとに1度、10日間分保存する

Automatic Backing Up Of DB:

  • Maximum Backup Files: 120
  • Every 2 Hours(s)  Gzip: Yes

記事が200〜300程度でも、30MB〜40MB程度(そこそこの分量で)ぐらいかなーという感じです。これは1つ1つの記事の長さ次第ですから、実際のサイズは分かりませんが一つの目安にはなるかと思います。

それ以外にデータベースの最適化も本ツールを使えばよいかと思います。

Automatic Optimizing Of DB:

  • Every 1 Week(s)

Automatic Repairing Of DB:

  • Every 1 Month(s)

手法2)BackWPupを使った完全バックアップ

ここでは、サーバ内に保存する方法とDropboxへの保存方法を紹介します。

いずれもまだ検証中なのでうまく動くかは分かりません。下記のトラブルもあるようなので、手法1)を使いながら、手法2)を試し中という感じでしょうか。もちろん手法2)がちゃんと動けば、手法2)だけでいいと思います。

インストール

何も考えず、下記のサイトを参照しましょう。

ここでは、設定上の注意点だけ述べておきます。

インストールすると、「BackupWPup」左サイドメニューが出来ています。
ここから「Add New」を選択します。

Dropboxへバックアップする設定

Dropboxは初期容量が2GB、いろいろ増やせば少しはましですが、WordPressでいろいろやっているサイトの場合には容量を超える可能性があります。そのあたりはチェックが必要です。Dropboxで容量が足りないようなら、有償版にアップグレードするか、SugarSyncなど他のサービスを使うことも検討すればいいかなと思います。

下にスクロールして「Backup to Dropbox」の欄を探します。
「Authenticate!」をボタンを押して、出てきたDropboxログイン画面でログインすると下図のような承認メッセージ(WordPressのBackwpupプラグインがDropboxに接続していいかどうかの許可)が出てきますので、「許可」を押します。

Dropbox承認

すると下図のように承認された(Authenticated!)と出てきます。後は、Folderの欄で、たとえば「cseas-info-backupフォルダ以下にいれてほしければ、「cseas-info-backup/」と末尾に半角(1バイト)のスラッシュをいれます。

また世代バックアップをしたいなら、「0」の数字を1,2,3とあげていきます。これはWordPressにどれだけ画像などをアップしたか、Dropboxの容量たりるのかに依存します。0なら上書きになります。

Dropbox設定 for Backwpup

それから、右上の方にある「Job Schedule」の欄にある「Activate scheduling」をチェックし、どの程度の頻度(通常は毎日午前3時に実行)か選択して「Save Changes」ボタンを押します。

後は、左サイドメニューのBackWPupのJobsから設定を確認できます。

Jobスケジュールチェック

サーバにバックアップする設定

バックアップ先は、本プラグインが自動でindex.phpと.htaccessを生成して、アクセスできないようにしてくれますので便利です。

  1. Backup to Folder項目のFull Path to folder for Backup Files:に
    Your WordPress dir is: の右に書かれた文字列/wp-content/backupwpup/ と指定
  2. 後はDropboxの設定と同じです。

タイムアウト時間の延長設定

Dropboxを始め、ある程度のボリュームのあるWordPressの場合、バックアップに失敗する可能性があります。これはタイムアウト時間(デフォルトは10分)を伸ばすと解決するという記事をみました。それをみたら簡単に設定できると思います。流れは下記の通り。

  1. プラグインの「編集」を選択し、「backwpup-functions.php」を編集するモードにします。
  2. 「$revtime=time()-600; //10 min no progress.」を探します。(-600で検索すればいい)
    ※600の数字を変更します(600=600秒=10分、6000=6000秒=100分)。6000とか12000とか長めにして、後はバックアップにかかった時間を見て調整すればいいと思います。

手法1)と併用する場合

Exclude Files/Folders from Backup: について

/wp-content/bte-wb/,/wp-content/backup-db/

と入れておいてください。手法1)でとったバックアップフォルダ(デフォルト設定)を除くバックアップということで、重複バックアップを避けるということです。もしデータベースバックアップは、WP-DBManagerに任せているのであれば、「/wp-content/bte-wb/」のみリストに加えておけばよいでしょう。

手法1)のうち、フォルダバックアップについては、次の3つのみが毎日(変更不可)バックアップされます。

  1. wp-content/themes
  2. wp-content/plugins
  3. wp-content/uploads

これはこれで、今日壊したテーマ内のCSSを復活させたいとかの場合に全データを格納したバックアップから復元するよりは、上記の決めうちバックアップから復元するほうが容易い(容量の小さいので)ので、おすすめです。

総括

だらだらと書いてしまいましたが、ようするにバックアップという手段は体験・経験的にこなれるまでは複数用意しておくことが無難だと思います。

たとえば、手法1)2)それぞれやって終わりということではなく、定期的に手動で手持ちのマシンにデータベースとWordPressフォルダまるごとバックアップしておくことが必要だろうと思います。

2012年9月11日 木谷公哉(kimipooh)
2012年9月12日 加筆修正
2012年9月24日 加筆(手法1との併用部分)

コメントを残す