WordPressバックアップのベストプラクティス
WordPressのデータのほとんどは、MySQLのデータベースに格納されます。なので、バックアップはMySQLからデータベースをダンプして、そのファイルをサーバー以外の別の場所に保存することになります。5330では、WP-DBManagerとCimy Swift SMTPの2つのプラグインを使って、SQLファイル定期的に保存し、お客様のGmailに転送することをバックアップ手段として推奨しています。
(WordPressファイルそのものは、Gitと呼ばれるバージョン管理システムを使って、変更履歴を取りながら管理します。)
先のバックアップ手段は、WordPressの設定、投稿、ページなどには有効ですが、メディアにある画像ファイル(大抵は、wp-content/uploads)まではバックアップできません。また、フォトギャラリーを作る定番プラグインNextGen Galleryなどを利用する場合も、画像ファイルのバックアップ手段を別途検討する必要があります。Download Managerを使って配布しているファイルがある場合も同様です。
WordPressのバックアップを完璧に行いたい場合、以下の3つのバックアップが必要になります:
- MySQLのデータベース(WP-DBManagerで定期的にバックアップ。そのファイルをGmailのアカウントへ転送。)
- WordPressそのもの(Gitで変更履歴を取り、専用レポジトリに保存。)
- wp-content配下の画像フォルダやファイルフォルダ
3. については、FTPでWordPressが運用されているサーバにアクセスし、これら画像ファイルが置かれているフォルダを定期的に手持ちのコンピューターにコピーする方法も考えられますが、人手で行うと面倒ですし、また忘れると思います。
バックアップ先としてのクラウドストレージ
ここ数年で、DropboxやSugarSyncに代表されるクラウドストレージサービスが身近になり、手軽に使えるようになりました。2ギガから5ギガの容量も無料で提供されています。バックアップを安全かつ確実に行うには、バックアップの保存先を数カ所確保しなければなりません。こうしたクラウドストレージが無料で提供されているのであれば、バックアップ先として活用しない手はありませんね。
WordPressでのバックアップを支援するプラグインは沢山ありますが、クラウドストレージへの連携に対応したものとなると選択肢は少ないです。BackWPupは中でもその中でも安定しており、Dropbox、SugarSyncのみならず、Amazon S3やMicrosoft Azureにまで対応しています。他にもFTPやメールでの送信にも対応しているため、考えつく大抵のストレージ先に対応できますので、きっと好みの方法でバックアップ手段が取れることでしょう。
BackWPupのセットアップ
上のリンク先からBackWPupをダウンロードして、WordPressにインストールします。プラグインを有効にすると、画面の上部に警告画面が出ます。それらは、このプラグインで必要なフォルダがなく、書き込み権限がないというメッセージなので、その警告に従ってフォルダを作成し、書き込み権限を追加します。フォルダは2つ必要です:
- backwpup-?????
- backwpup-?????-log
上のフォルダは、バックアップ対象になるフォルダを圧縮したファイルを格納します。下のフォルダには、バックアップ時のログを保存します。ログのフォルダはプラグインを有効するだけで自動作成されますが、バックアップ用のフォルダは自動で作成されないので、mkdirで作成しておきます。両フォルダともに、chmodで権限を707にすることを忘れないでください。
プラグインのセットアップはこれだけです。
BackWPupのバックアップジョブを作成
セットアップが済んだら、バックアップのジョブを作成します。設定画面へのメニューは管理画面左「ツール」の下に追加されます。メニューをクリックして、BackWPupの設定画面を開きます。
上方の「Add New」ボタンを押して、新規ジョブを作成します。
新規ジョブ作成画面右上に「Job Type」窓がありますので、File Backupだけをチェックします。5330では、先に書きました通りデータベースのバックアップはWP-DBManagerとCimy Swift SMTPプラグインで行っていますので、バックアップするのはファイルだけです。
真ん中の「File Backup」でバックアップするフォルダを選択します。ここではwp-content/uploadsの画像だけバックアップしたいので、Blog Uploadsにチェックします。画像フォルダを年別で整理している場合は、2010年以前のものだけまとめて一度バックアップを取り、差分である2011に対してだけバックアップをスケジュールすると、ストレージや通信帯域を圧迫しません。大きなファイルをバックアップする場合はサーバに付加が掛かりますので、各環境で設定の調整を検討してみてください。
次にクラウドストレージサービスの設定です。Dropboxがメジャーだと思いますが、サービス連携にOAuthを使っており、署名の扱いがおかしいのか、Dropboxにファイルをアップする際にエラーが出てしまいます。しかたがないので、(Dropbox連携のバグが直るまで)代わりにSugarSyncを使います。デスクトップで使う際の使いやすさはDropboxの方が上ですが、SugarSyncの容量は5ギガありますので、バックアップ用ならこちらの方が適しているかもしれません。
SugarSyncの設定では、メールアドレスとパスワードを入力します。パスワードが入力されると、アカウントの確認が自動的に始まります。正しいアカウントであることが確認されると、Root: の部分にバックアップ先の選択肢が表示されるようになるので選びます。利用しているデスクトップと同期を取る必要がないのであれば、ウェブアーカイブを選ぶと良いでしょう。この辺りは好みで設定してください。バックアップ先に更にサブディレクトリを作っている場合は、Directory: にディレクトリ名を入れます。Max. Backup Files in Folder には、このジョブでバックアップするファイルの保存数を入力します。画像なので、最新のものが一つあればいいですよね。なので、「1」を入力しています。
Backup Fileでは、ファイル名の接頭語を決めます。何のバックアップか分かりやすければ、何でも良いでしょう。バックアップ時にフォルダは圧縮されますので、好きな圧縮形式を選びます。画像なので、圧縮率の高いBZip2とかが良いかもしれません。Windowsでもみたいなら、Zipのほうが楽です。
バックアップジョブのテスト
個々まで設定できたら、「Save Change」を押して設定を保存します。ふたたび、ジョブのリスト画面に戻り、作成したジョブが登録されたことを確認します。作成したジョブの名前の上にマウスをのせると、「Run Now」というリンクが表示されるので、早速、このジョブが動くかテストします。
バックアップが完了すると上のようなログが表示されます。バックアップに失敗したときだけ、同様のログがメールで送信されます。サーバをセーフモードで動かしているため、色々警告が出ていますが、バックアップは正常に行われます。セーフモードだと送信時に実行時間やメモリの制約があるため、大きなバックアップはしない方がいいでしょう。ですので、バックアップするフォルダごとにジョブを作って、実行する時間をずらしておく等の対策をしておきたいものです。
バックアップのスケジュール
再びジョブの設定画面に戻り、ジョブの実行時間をスケジュールします。先ほど作成したジョブを定期的に実行したい場合は、Activate schedulingにチェックを入れます。それぞれのセレクトメニューが実行時間の項目なっていますので、設定します。上は毎日午前3時に実行する例になっています。
まとめ
一昔前なら、高価なDATテープ複数個使って面倒なバックアップのローテーションを手作業でやっていたのが、無料のクラウドストレージとWordPressのプラグインを使ってここまで自動化できるようになったのは、凄いことだと思いますw(少なくとも昔から、こういう仕事をしていた者には、「まさか無料でここまでできるようになったのか」と感慨深いです。)WordPressのバックアップ方法はこれまで色々試してみましたが、これが決定版のような気がします。データベース、WordPressのファイル、画像&その他のファイル、の3つが何処かに保存されていれば、サーバに何が起ろうとも大事なサイトを復活させることができますので、もう心配ありません!皆さんもお試しください。