Backupプラグインを使って、GoogleDriveにwordpressサイトを自動でバックアップします。

追記:
個人的には今回紹介するプラグインではなく、UpdraftPlus Backupというプラグインのほうが良かったので、今はそちらを使っています。Google DriveのOAuth2.0認証などは、この記事とだいたい同じやり方です。

つい最近も、大手レンタルサーバ業者にてトラブルが発生しました。サーバ上のデータが突然すべて消えるなど、深刻なダメージがあったようです。サーバー上のデータがバックアップ含め全て消えたため、別の場所にバックアップを保存していたかどうかが明暗を分けたようです(といっても、本当に深刻なのはウェブのデータよりも、メールやグループウェアのデータだと思いますが)。というわけで今回は、wordpressサイトをGoogle Driveに自動でバックアップする方法を紹介したいと思います。

必要なもの

  • Google Drive
  • Backupプラグイン
  • Imsanityプラグイン(任意)
  • リビジョンと自動保存の設定(任意)
  • WP Database Optimizerプラグイン(任意)

とにかく、一度設定したら後は手間がかからないように、自動でできることは自動でやってもらうことにします。また、なぜGoogle Driveかというと、僕がウェブサイトを制作する際は、ほぼGoogle Analyticsを導入するため、同じアカウントで利用できる(そして、まだ未使用の)オンラインストレージがGoogle Driveだからです。DropBoxは、すでに他の用途で使用してる人も多いので。

ちなみに、Google Drive以外のオンラインストレージを使いたい人は、もっと良いプラグインがありますので、そちらを使ってください。
http://wordpress.org/extend/plugins/backwpup/

 

Backupプラグインのインストール

まずは以下のURLからBackupプラグインをインストールしてください。
http://wordpress.org/extend/plugins/backup/

執筆時点の最新版2.0にはデータベースのバックアップファイルが作成されないバグがあります。自動インストールしたバージョンが2.0であれば、こちらのトピックの下の方にある書き込みから修正版(2.0.1)がダウンロードできますので、手動でインストールしてください。

 

Google Driveの開始とOAuth2.0認証

以下のURLからGoogle Driveを開始します。
https://drive.google.com/start

次にGoogle Driveをプラグインから操作できるようにOAuth2.0認証を行います。以下のURLにアクセスしてください。
https://code.google.com/apis/console/

青いボタンをクリック。


API Accessをクリック。


青いボタンをクリック。


プロジェクト名に好きな名前をつけてください。その下の画像は設定しなくてもいいです。


最初の項目はweb applicationにチェックが入っていればOK。Redirect URIsには、

http://wordpressインストールディレクトリ/wp-admin/options-general.php?page=backup&action=auth

と、入力。JavaScript originsにはURLを入力。


きちんと登録されました。赤枠のClient IDとClient secretを使います。


wordpress管理画面の「設定」→「Backup」をクリック。


Authorizationのところに先ほどのClient IDとClient secretを入力。


上記画面が出たらアクセスを許可。リダイレクトURIが間違っているとエラーになるので、その際はエラー画面に表示されるURLをコピペして、もう一度リダイレクトURIを設定してください。

 

Backupの設定


ようやくプラグインの設定です。上記画像の赤枠の部分を設定していきます。見れば大体わかると思いますが、以下に詳しい説明を載せておきます。

Local folder path

Local folder pathは、バックアップデータを保存する場所です。デフォルトでは「wp-content/backup」になっていますので、特に希望がなければそのままでOKです。

上記で設定したフォルダが存在しないと、バックアップが行われません。バックアップ用のフォルダを手動で作成してください。デフォルトの設定であれば、「wp-content」ディレクトリに「backup」というフォルダを作成すればOKです。

そのままだと、backupフォルダ内のファイルに直接アクセスされると誰でもデータを取得できてしまうので、制限をかけます。backupフォルダ内に.htaccessファイルを以下の内容で作成してください。

<Files ~ ".*\..*">
order allow,deny
deny from all
</Files>

これでLocal folder pathに関する設定は完了です。

Drive folder ID

Google Driveにバックアップする際のフォルダを指定できます。


Drive folder IDには、Google Drive上で希望するフォルダを開いた時、アドレスバーの#folders/の後に続く文字列を入力します(上の図の赤枠部分)。フォルダ名をそのまま入力しても動作しないので注意してください。

Store a maximum of

ローカルとGoogle Driveへのバックアップ保存数をそれぞれ指定します。僕はとりあえず3の10にしました。

When to back up

自動バックアップする間隔です。理想はDailyですが、負荷がかかるので更新頻度が少なければWeeklyやMonthlyでも。

What to back up

どこをバックアップするかです。デフォルトではDatabase、Content、Uploads、Pluginsの4つにチェックが入っていますが、Contentの中にUploadsとPluginは入っているので、僕はDatabase、Contentの2つだけチェックを入れています。

その他の項目はお好みでどうぞ。最後に設定を保存してください。プラグインの設定はこれでOKです。Manual backup URLにアクセスすると、その場でバックアップファイルが作成されます。一度、きちんと保存されているかチェックすることをオススメします。

 

Imsanityプラグインの導入

写真などを頻繁にアップしていると、Uploadsフォルダの容量が大きくなります。Imsanityプラグインを用いることで、元画像を自動的にリサイズして容量を抑えることができます。

使い方:大きな画像を自動でリサイズしてくれるwordpressプラグイン「Imsanity」

 

自動保存とリビジョンの設定

wordpressにはリビジョン機能がついていますが、そのままだと大量のリビジョンが保存されてデータベースが圧迫されます。wp-config.phpファイルのwp-settings.phpを読み込む前に以下を追記します。

define('WP_POST_REVISIONS', 5);

上記はリビジョンの保存件数を5件にする場合です。5を10に変えたり、自由に指定してください。

で、wordpressには記事の自動保存機能がついていて、記事の編集画面でたしか1分おきに自動保存されています。便利ですが、数少ないリビジョンをそんなところで使いたくないので、自動保存の間隔を開けます。さっきのコードと同じ位置に以下を追記します。

define('AUTOSAVE_INTERVAL', 3600);

自動保存の間隔を3600秒にしています。増やすも減らすも自由にどうぞ。

すでにリビジョンが溜まっている人は以下を参考に。
WordPressで「リビジョン」と「自動保存」を止める方法+過去のリビジョンも削除する方法|IMAGINATION DESIGN BLOG

 

WP Database Optimizerプラグインの導入

定期的にデータベースを最適化して、容量をスッキリさせたいですよね。それを自動で行うのがWP Database Optimizerプラグインです。データベースを最適化するプラグインは多数ありますが、インストールすれば後は全部勝手にやってくれるのが、このプラグインの良いところです。

http://wordpress.org/extend/plugins/wp-database-optimizer/

 

最後にひとこと

BackWPupプラグインがGoogle Driveに対応したら、そっちに乗り換えます。

アマゾンのサーバでエラーが起こっているかもしれません。
一度ページを再読み込みしてみてください。

クラウドってなんか信用できない。