WordPressは便利ですよね。
便利ですが、サーバー上で動作し、データベースを使用するウェブアプリですので、万が一のことを考えるとやはりバックアップをとっておきたいものです。
特にクライアントワークなんかの場合は、納品タイミングでバックアップを取っておけば、お客さんが更新に失敗してサイトを壊してしまったとしても(余程のことをしない限りは無いと思いますが)最悪納品直後まで巻き戻すことができます。
そうでなくても、納品時点でのデータ一式をDVDなどで渡す契約をしている場合などもありますよね。
また、毎月1日など、定期的にバックアップを行なっておけば、その月の頭までの巻き戻りで済む場合もありますので、しっかりバックアップを行うべきでしょう。お客さんはWordPressがどのように動いてるのかまったくわからない場合が多いです。ということは、WordPressのどこは触ってもOKでどこは触っちゃダメなのかもわからないため、マニュアルや操作レクチャーで説明していたとしても、制作会社が予想もしなかったようなところからサイトが壊れてしまうなんてことも無いとは言い切れません。
ということで、今回はWordPressをバックアップする方法に関するお話です。
サイトをバックアップする方法としては、プラグインを利用する方法と、手動でバックアップを行う方法があります。
それぞれにメリットとデメリットがあり、プラグインを利用する場合、
- 誰でも簡単にバックアップを取れる
- スケジュール設定をすることで自動的に定期バックアップを取ってくれるものもある
- クリックひとつでバックアップから復元させることができる
- 新しいサーバーに引っ越すときなどに、バックアップから復元させられるものもある
といったメリットがあります。また、データベースのデータだけじゃなく、画像もバックアップしてくれるものもあります。
ただし、
- プラグインの開発が停止した場合、WordPressのバージョンがあがった時に動作しなくなる場合がある
- 簡単に巻き戻せるため、間違って巻き戻してしまう可能性もある
- サイトの負荷が高くなり、表示が遅くなる可能性がある
といったデメリットもあります。
手動で行う場合は、
- 構造を理解できるため、何か合った時に強くなれる(かもしれない)
- どのように動作しているのか不明なプラグインは使いたくないよ!という方でも、プラグインに頼らず作業できる
- なにより無料
というメリットがある反面、
- WordPress管理画面だけでは完結できない
- MySQLを直接操作するため、ちょっとのミスで取り返しがつかなくなるリスクがプラグインを利用する場合よりも高い
といった問題もあります。
プラグインを使う場合
今回は手動で作業してみようというのがテーマですので、あまり細かい操作方法などは説明しませんが、バックアッププラグインとしては、BackWPupのようなサーバーにインストールして、同じサーバーやDropboxのようなクラウドにバックアップを作成するものと、VaultPressのような、プラグインの開発元が提供するクラウドにバックアップするものがあります。
同一サーバーにバックアップを取る場合は、不慮のミスでデータベースやテーマを修復不能なくらい壊してしまったりした場合(めったにないと思いますが)に簡単に巻き戻すことができ、全て同じサーバーで完結できる反面、サーバーのディスク自体が破損してしまったり、メンテナンス中の事故でディスクの中身が消失してしまった場合なんかには対処できなくなってしまいます。
ですので、同じサーバー上にバックアップを取る場合は、定期的にFTPでダウンロードしたり、バックアップ用のサーバーに移すなどの対策が必要です。
BackWPupならDropboxへのバックアップ機能を使えば自動化できますし、VaultPressはそもそも提供元のAutomattic社が用意しているクラウド上にバックアップされますので、安心ですね。
いずれも簡単に巻き戻せるようになっているのも魅力です。
ですが、プラグインをなるべくインストールしたくない場合や何らかの理由で利用できない場合は、手動で作業をおこなうことになります。
手動でWordPressのバックアップをとる方法
ということでここからが今回の本題です。
プラグインを使わずにサイトのバックアップをとってみます。
構造を知る
WordPressは主に記事本文や設定などをMySQLというデータベースに保存し、テンプレートファイルやアップロードした画像などはサーバー上に保存されます。
つまり、WordPressのサイトをバックアップするためには、ウェブサーバー上にアップロードされている画像やテーマファイルと、データベースサーバー上に保存されているデータベースをダウンロードすればよさそうです。
ウェブサーバー上のデータをダウンロード
これは簡単ですね。FTPソフトでサイトをまるごとバックアップしておけばOKです。
面倒ならWordPressがインストールされているフォルダをまるごとでもOKですが、結構なファイルがありますので、時間がかかってしまうかもしれません。 ((ただし、現時点でのバージョンの本体もバックアップできるというメリットはあります。))
最小限度に抑えるならば、「wp-content」フォルダの中身全て、もっと絞るならば、
wp-contentフォルダ以下の 「themes/自分のテーマ名フォルダ」、「plugins」フォルダ「uploads」フォルダの3つです。
とりあえずこれらだけあればリソースは大丈夫かと。
データベースのデータをダウンロード
続いてデータベースのデータをバックアップしましょう。
今回はphpMyAdminというツールを使用します。最近のレンタルサーバーにはデフォルトで用意されていたりすることもありますので、まずはサーバーのコントロールパネルにログインしてみましょう。
殆どの場合は、「データベース」関連のメニューになかに「phpMyAdmin」があるはずですので、そこからログインします。
ない場合は、公式サイトからダウンロードしてインストールしましょう。
ダウンロードしたファイルを解凍したら、フォルダ名を「phpmyadmin」などに変更し ((「phpmyadmin」や「pma」だと簡単に予測されてログイン画面にたどり着かれてしまいますので不安ならばなにか他の文字列にしておいたほうがいいかもしれません)) 、中から「config.sample.inc.php」というファイルをデスクトップなどにコピーして取り出しておいてから、FTPサーバーにアップロードします。
アップロード中に今取り出した「config.sample.inc.php」を「config.inc.php」という名前に変更てそのファイルを修正します。
修正ポイント1
31 |
$cfg['Servers'][$i]['host'] = 'localhost'; |
データベースサーバーのアドレスです。VPSとかローカルのテストサーバーなんかで同じサーバー上にデータベースがインストールされている場合はlocalhostでも動作する場合もありますが、レンタルサーバーなどでデータベースサーバーが別のところにある場合は、このままでは使えませんので自分の使っているデータベースサーバーのアドレスを入力します。
データベースサーバーのアドレスは大抵管理画面から確認できます。
例えば自分も使っているロリポップ!なんかだと、ユーザー専用ページから
「WEBツール」→「データベース」を開くと確認できる「データベースホスト」がそれになります。 ((もっともロリポップははじめからphpMyAdminがインストールされていますが…w))
修正ポイント2
29 |
$cfg['Servers'][$i]['auth_type'] = 'cookie'; |
と、cookieで認証する設定になっている場合は、
17 |
$cfg['blowfish_secret'] = 'a8b7c6d'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */ |
という部分の「a8b7c6d」をランダムの文字列に変更しておきます。
考えるのが面倒ならば、パスワード生成サイトなんかを利用しましょう。
こーんな感じで設定して「生成」をクリックすれば「bA2t5GqSAJPQc3s6SxpUKFJPu5DWWyDKv8wCa7Kj」みたいなランダムな文字列が10個提示されますので、好きなものをコピーして使用すればOKです。
因みにCookie以外に「http認証」という方法もあります。
ログイン時に、ログインフォームではなく、アクセスするときにIDとパスワードのウィンドウがポップアップするタイプですね。
こちらの認証方法を使用する場合は、
1 |
$cfg['Servers'][$i]['auth_type'] = 'http'; |
とします。
http認証の場合は、「blowfish_secret」の設定は特に行う必要はないようです。
さて、phpMyAdmin本体のアップロードが終わったらば、今編集した「config.inc.php」もアップロードしたフォルダの中にアップロードします。
完了したら、自分のサイトにアクセスし、URLの最後に先ほどアップロードしたフォルダ名を入力してエンターキーを押します。
example.com に pma フォルダをアップしていたならば、example.com/pma です。
すると、ログイン画面になりますので、データベースのユーザー名とパスワードを入力してログインします。
ログインに成功したら、まずサイドバーからWordPressで使用しているデータベース名をクリックします。
「information_schema」というのがあってもそちらには触らないようにして下さい。こちらにはデータベース・サーバーに関する情報が保存されています。参照はできますが、編集は出来ないようですので壊してしまうことは無いと思いますが、触らないに越したことはありません。
データベースのページが開いたら、画面上部から「エクスポート」を選択します。
エクスポート方法で「詳細」を選択すると詳細オプションが出てきますので、
テーブルを全て選択します。 ((多分はじめから全て選択されているはずですが、念のため「全選択解除」→「全選択」という順にクリックしておくと確実です。))
続いて、少しスクロールしていくと「生成オプション」という部分がありますが、追加コマンドのうち、「DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT コマンドを追加する」のチェックが外れているのでここにチェックを入れます。
あとは、一万したにある「実行」をクリックすれば、「(データベース名).sql」というファイルがダウンロードされますので、任意の場所に保存します。
このsqlファイルの中身はテキストファイルですので、テキストエディタなどで開いてみて下さい(サイズによってはちょっと読み込みに時間がかかるかもしれません)。
この際、OSに初めから入っているメモ帳やテキストエディットは避け ((これらのはじめから入っているツールは機能が最低限しかついていないため、うまく開けない場合が多いためです。)) 、Macなら mi やCotEditor、Windowsなら TeraPadや真魚、あるいは様々なOSで使える Sublime Text2 といったエディタを使いましょう。
こんなかんじで文字化けせず表示されていればOKです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
-- phpMyAdmin SQL Dump -- version 4.0.4.1 -- http://www.phpmyadmin.net -- -- ホスト: xxx.xxxxxx.xx.xx -- 生成日時: XXXX 年 X 月 XX 日 XX:XX -- サーバのバージョン: X.X.X -- PHP のバージョン: X.X.X SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; SET time_zone = "+00:00"; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; -- -- データベース: `XXXXXXXXXXXXXX` -- (以下省略) |
あとは、先ほどサーバーからダウンロードした画像やテーマファイルと一緒にこれらを保存しておけばいざというときにもとに戻すことができます。
おつかれさまでした。
復元するには
尚、バックアップから戻す場合は、画像類はFTPで同じ階層にアップロード、SQLファイルはphpMyAdminからデータベースを選択後、「エクスポート」の隣にある「インポート」から行います。
コメントする