BackWPupでWordPressをDropBoxに完全バックアップ

2013年4月27日

WordPress

WordPress のバックアップ、きちんとできていますか。

今回は、本ブログで実施している WordPress のバックアップ方法と復元方法を紹介します。この方法で過去に何度も WordPress を復元したことがありますので、結構信頼できる方法かと思います。
ブログは資産ですので、データが失われてもすぐに戻せるようにしておくと安心です。

目次

  1. BackWPup プラグインをインストールする
  2. Job を新規追加する
  3. General タブ
  4. Schedule タブ
  5. DB Backup タブ
  6. Files タブ
  7. DB Optimize タブ
  8. DB Check タブ
  9. To: Dropbox タブ
  10. バックアップ実行
  11. Dropbox へのバックアップに失敗するときは
  12. バックアップから復元

BackWPup プラグインをインストールする

WordPress のバックアップには、BackWpup というプラグインを使用します。WordPress のプラグインのインストール画面で、「BackWpup」を検索してプラグインをインストールし、有効化します。

install-back-wpup

Job を新規追加する

プラグインを有効化すると、管理画面のメニューの左下に「BackWPup」の項目が現れます。「Add New Job」をクリックしてバックアップ Job を作成します。

General タブ

General タブでは、バックアップ全般に関する設定を行います。DropBox にフルバックアップする設定はこんな感じ。

general

ざっくり解説すると、以下のような設定を行なっています。

  • データベースをバックアップする
  • WordPressのファイルをバックアップする
  • WordPressのデータベースの最適化をする
  • WordPressのデータベースのチェックをする
  • バックアップファイルを圧縮する
  • DropBox にバックアップファイルを保存する
  • バックアップのログをメールで通知する。メールアドレスはご自身のものに置き換えてください

Schedule タブ

Schedule タブでは、バックアップのスケジュールを設定します。毎週日曜日の午前四時に 「WordPress cron」 によるバックアップを行う設定にしています。

schedule

WordPress cron とは、ある処理をスケジュール実行させる WordPress の機能です。

WordPress cron は、ユーザがサイトに訪問したときにスケジュールを確認し、設定された時間を過ぎた処理があれば実行します。apache のアクセスログを確認すると、wp-cron.php へのリクエストがちらほら見つかると思います。UNIX 系の OS にある cron の仕組みを WordPress 内で擬似的に再現しているのですね。

今回のケースだと、バックアップされるタイミングは、日曜の午前4時を過ぎて、ユーザが最初にサイトを訪問したときになります。

DB Backup タブ

バックアップ対象のテーブルを選択します。WordPressの全テーブルをバックアップ対象にしています。

db-backup

Files タブ

バックアップ対象のディレクトリを選択します。基本的には、全ディレクトリをバックアップ対象にしていますが、一部のディレクトリを「Exclude from backup」に設定して対象から除外しています。

folders-to-backup

上記の例では、「Exclude Folders(バックアップ除外フォルダ)」 に 001 Prime Strategy Translate Accelerator プラグインのキャッシュディレクトリを設定し、バックアップ対象外にしています。
001 Prime Strategy Translate Accelerator プラグインは、WordPress の言語ファイルをキャッシュし高速化するためのプラグインです。バックアップ時にこのプラグインのキャッシュファイルが容量オーバーエラーとなったので、バックアップ対象から除外しました。

DB Optimize タブ

DBを最適化してくれるようです。何をやっているかは不明ですが、害はなさそうなので設定しておきます。

optimize

DB Check タブ

データベースのチェックをしてくれるようです。こちらも何をやっているかは不明ですが、害はなさそうなので設定しておきます

check

To: Dropbox タブ

Dropbox と連携するための設定を行います。

Authenticate (Sandbox) をクリックして、DropBox の認証を行います。認証が通れば 「Authenticate!」 と表示されます。

dropbox

その他には、バックアップを DropBox に 2 世代分だけ保存するように設定しています。

バックアップ実行

以上で設定は完了です。BackWPup Jobs から Run now をクリックしてバックアップを実行してみましょう。私のサイトでは、およそ 3 分でバックアップが完了します。

run-now

バックアップが完了すると、DropBox の 「アプリ」ディレクトリの中に BackWPup ディレクトリが作成され、その中にバックアップファイル 「backwpup_1_YYYY-MM-DD_XX-XX-XX.tar」 ができているはずです。

圧縮後のバックアップファイルの容量は 40MB ほどでした。キャッシュファイルなどを除外すれば、もう少し容量を小さくできそうです。

Dropbox へのバックアップに失敗するときは

2014年7月現在、Dropbox へバックアップしようとすると ERROR: Dropbox API: (59) Unknown cipher in list: XXXXX というエラーが出てバックアップが失敗します。公式フォーラムにパッチ的なプラグインが紹介されているので、そちらをご利用ください。

バックアップから復元

作成されたバックアップファイルから WordPress を復元してみましょう。まずは、本番環境とは別の環境で復元できることを試してみることをおすすめします。

DropBox に作成されたバックアップファイルを解凍すると、中には WordPress の全ファイルと、hoge.sql のようなデータベースの dump ファイルがあると思います。

...
...
hoge.sql ←データベースの dump ファイル
...
...
index.php
license.txt
wp-activate.php
wp-admin
wp-app.php
wp-atom.php
wp-blog-header.php
wp-comments-post.php
wp-commentsrss2.php
wp-config-sample.php
wp-config.php
wp-content
...

WordPress をバックアップから復元するには、これらのファイルを WordPress がインストールされているディレクトリにそのままコピーするだけで OK です。念のため、ファイルのパーミッションが維持されていることに注意してください。

データベースの dump ファイルは、PHPMyAdmin の「インポート」タブなどから MySQL に取り込みます。

参考までに、バックアップから復元するときのコマンドを載せておきます。

$ mkdir backup
$ mv backwpup_1_YYYY-MM-DD_XX-XX-XX.tar ./backup/
$ tar -zxf backwpup_1_YYYY-MM-DD_XX-XX-XX.tar
$ mv hoge.sql ../
$ rm -rf <WordPressDirectory>/*
$ mv ./* <WordPressDirectory>/
$ mv ./.htaccess <WordPressDirectory>/
$ mysql -u <UserName> -p -h <DataBaseHost> <DataBaseName> < ../hoge.sql
$ rm ../hoge.sql
$ rm ../backwpup_1_YYYY-MM-DD_XX-XX-XX.tar

上記の例では、古い WordPress のファイルを消してしまっていますが、消すのが怖い場合は mv コマンドでディレクトリを差し替えても OK です。私はシンボリックリンクの切り替えで対応しています。

終わりに

WordPress のバックアップと復元方法を紹介しました。

私は、新しいプラグインを入れる前には必ずバックアップを取っています。WordPress 本体のバージョンを上げるときも同様です。

WordPress を簡単に復元できる状態にして、不慮の事故に備えましょう。

-技術ブログ
-