前回・前々回のエントリで、CORESERVERでWordPressを構築し、独自ドメインを割り当てました。
(前々回) CORESERVER CORE-AプランでWordPressを構築
(前回) CORESERVER に VALUE DOMAIN のドメインを付与
今回は、バックアップ用プラグイン「BackWPup」を使って、いざというときのバックアップを取る方法を書き残しておきたいと思います。
CORESERVERならではの問題(PHPのバージョンが古い・PHPのセーフモード)が絡んでいるので、今回の手順も多少トリッキーです。
【今回の目的】
- CORESERVERで構築したWordPressサイトを「BackWPup」で定時バックアップする
以上の手順をまとめたいと思います。
1. BackWPupをインストール
WordPressのバックアップは、プラグイン「BackWPup」を使うと非常に楽に設定することができます。
1) 最新版をインストールしてみる
BackWPupの現時点での最新版(3.0.13)をインストールして有効化してみると、「BackWPup requires PHP version 5.2.6 or greater and WordPress 3.2 or greater.」というエラーが出て、インストールに失敗してしまいます。
最新版のBackWPup 3.x系にしたいところだったけれども、CORESERVERのPHPが古い(「5.2.5」なのでギリギリアウト)ので断念。仕方なく、2.x系を使うことに。
2) 2.1.17 をインストール
2.x計の最新版「2.1.17」であれば、PHP5.2.5で OKなのは確認済み。
readme.txt
** WP 3.1 and PHP 5.2.5 Required!! **
http://wordpress.org/plugins/backwpup/developers/
のページから、2.1.17 をダウンロードします。
3) zipファイルをアップロードしてインストール
[プラグイン] -> [新規追加] -> [アップロード] から、「backwpup.2.1.17.zip」をアップロードします。
プラグインを有効化します。
2. 試しにバックアップしてみる
1) Jobを登録
「Add New」をクリックします。
2) いろいろと入力
ジョブ名 | Test Backup |
Database Jobs / Database tables to use: | 全てのテーブルにチェックを入れる |
File Backup / Blog Folders to Backup: | 「root」「Content」「Plugins」「Themes」「Blog Uploads」全てにチェックを入れる |
Backup to Folder / Full Path to folder for Backup Files: | /virtual/akiyoko/backups/akiyoko.info/ |
Backup to Folder / Max. backup files in folder: | 10 |
Job Type | 「Database Backup」「File Backup」「Optimize Database Tables」「Check Database Tables」にチェックを入れる |
Job Schedule / Activate scheduling | チェックを外す (スケジューリングしない) |
Backup File / File Prefix: | backwpup_test_ |
Backup File / File Formart: | Tar GZip |
Send log / E-Mail-Adress: | (自分のメールアドレス) |
Send log / Only send an e-mail if there are errors. | チェックを入れる |
3) 実行してみる
「Run Now」をクリック。
「Run Now」をクリックすると、BackWPupのコンソールが真っ暗に。ここでもセーフモードの呪いが。。
4) .htaccessを修正
セーフモードの弊害を解消するため、一部PHPをCGIモードで動作させます。
# /virtual/akiyoko/public_html/akiyoko.info/wp-content/plugins/backwpup/job/.htaccess を新規作成 $ cd /virtual/akiyoko/public_html/akiyoko.info/wp-content/plugins/backwpup/job/ $ cat > .htaccess <<EOF <Files job_run.php> AddHandler application/x-httpd-phpcgi .php </files> EOF # 所有者がakiyoko.hpusers、パーミッションが644になっていることを確認 $ ls -al .htaccess -rw-r--r-- 1 akiyoko hpusers 169 2013-08-10 13:58 .htaccess
これで、バックアップが取れるようになります。
参考
すごく助かりました!
5) ダッシュボードに表示されるエラーを解消
一度バックアップを実行すると、一時ファイルとログの出力先の権限エラーが、ダッシュボードに表示されるようになります。このエラーを解消していきます。
エラーの内容から、
/virtual/akiyoko/public_html/akiyoko.info/wp-content/plugins/backwpup/tmp ディレクトリのパーミッションが 755 になっているのがダメっぽいので、707 に変更します。
$ cd /virtual/akiyoko/public_html/akiyoko.info/wp-content/plugins/backwpup/ $ ls -al | grep tmp drwxr-xr-x 2 akiyoko hpusers 48 2013-08-22 02:41 tmp $ chmod 707 tmp/ $ ls -al | grep tmp drwx---rwx 2 akiyoko hpusers 48 2013-08-22 02:41 tmp
次に、[BackWPup] -> [Setting] から、「Log file Folder」の値を変更します。
(ぶっちゃけどこでもよいのですが、ログは一箇所にまとめておきたいですよね。)
変更前 | /virtual/akiyoko/public_html/akiyoko.info/wp-content/backwpup-8b900-logs/ |
変更後 | /virtual/akiyoko/log/ |
# /virtual/akiyoko/log/ のパーミッションを705→707に変更 $ ls -al /virtual/akiyoko/ | grep log drwx---r-x 2 akiyoko hpusers 48 2013-03-02 13:06 log $ chmod 707 /virtual/akiyoko/log/ $ ls -al /virtual/akiyoko/ | grep log drwx---rwx 2 akiyoko hpusers 48 2013-03-02 13:06 log # 不要なディレクトリを削除 $ rm -rf /virtual/akiyoko/public_html/akiyoko.info/wp-content/backwpup-8b900-logs/
3. リストアのテストをしてみる
バックアップが正しく取得できたら、そこからリストアをしてみます。
1) ディレクトリ・データベースを削除
ディレクトリを削除します。
$ cd /virtual/akiyoko/public_html/ $ rm -rf akiyoko.info/
データベースは、コントロールパネルのドメインウェブから削除します。
2) CORESERVERのドメインウェブで、ディレクトリを作り直す
3) バックアップファイルを「/virtual/akiyoko/public_html/akiyoko.info/」直下に置く
$ cd /virtual/akiyoko/public_html/akiyoko.info/ $ cp -a /virtual/akiyoko/backups/akiyoko.info/backwpup_test_2013-08-24_01-27-35.tar.gz .
もしくは、WinSCPを使う。
4) 解凍する
pオプションでパーミッション、same-ownerオプションで所有者を再現します。
(same-ownerオプションは省略可。全ファイルの所有者が「akiyoko」でも問題ないはずなので。)
$ tar --same-owner -zxvpf backwpup_test_2013-08-24_01-27-35.tar.gz # こんな感じで展開されるはず $ ls -al total 8683 drwx---r-x 5 akiyoko hpusers 864 2013-08-24 01:37 . drwx---r-x 4 akiyoko hpusers 136 2013-08-24 01:33 .. -rw-r--r-- 1 akiyoko hpusers 310757 2013-08-24 01:27 akiyoko_wp.sql -rw-r--r-- 1 akiyoko hpusers 8387444 2013-08-24 01:27 backwpup_test_2013-08-24_01-27-35.tar.gz -rw-rw-rw- 1 akiyoko hpusers 405 2013-08-22 02:39 .htaccess -rwx---rwx 1 akiyoko hpusers 395 2012-01-09 02:01 index.php -rwx---rwx 1 akiyoko hpusers 19929 2012-05-06 16:28 license.txt -rwx---rwx 1 akiyoko hpusers 13270 2013-01-25 12:00 readme.html -rwx---rwx 1 akiyoko hpusers 3316 2013-01-25 12:00 readme-ja.html -rwx---rwx 1 akiyoko hpusers 4663 2012-11-18 00:11 wp-activate.php drwxr-xr-x 9 akiyoko hpusers 2920 2013-08-24 01:37 wp-admin -rwx---rwx 1 akiyoko hpusers 271 2012-01-09 02:01 wp-blog-header.php -rwx---rwx 1 akiyoko hpusers 3522 2012-04-11 02:21 wp-comments-post.php -rwx---rwx 1 akiyoko hpusers 4569 2013-08-22 02:09 wp-config.php -rwx---rwx 1 akiyoko hpusers 4289 2013-01-25 12:00 wp-config-sample.php drwxr-xr-x 6 akiyoko hpusers 200 2013-08-24 01:37 wp-content -rwx---rwx 1 akiyoko hpusers 2718 2012-09-24 01:57 wp-cron.php drwxr-xr-x 9 akiyoko hpusers 4048 2013-08-24 01:37 wp-includes -rwx---rwx 1 akiyoko hpusers 1997 2010-10-23 21:17 wp-links-opml.php -rwx---rwx 1 akiyoko hpusers 2408 2012-10-27 04:40 wp-load.php -rwx---rwx 1 akiyoko hpusers 29310 2012-11-30 22:40 wp-login.php -rwx---rwx 1 akiyoko hpusers 7723 2012-09-25 14:26 wp-mail.php -rwx---rwx 1 akiyoko hpusers 9899 2012-11-22 18:52 wp-settings.php -rwx---rwx 1 akiyoko hpusers 18219 2012-09-11 21:27 wp-signup.php -rwx---rwx 1 akiyoko hpusers 3700 2012-01-09 02:01 wp-trackback.php -rwx---rwx 1 akiyoko hpusers 2719 2012-09-12 05:11 xmlrpc.php
5) データベースのリストア
CORESERVERのデータベースで、データベースを作り直す
ここで、データベース名やパスワードを変更した場合は、wp-config.phpを編集しておきます。
・ ・ // ** MySQL 設定 - こちらの情報はホスティング先から入手してください。 ** // /** WordPress のためのデータベース名 */ define('DB_NAME', '<新しいデータベース名>'); /** MySQL データベースのユーザー名 */ define('DB_USER', '<新しいユーザー名>'); /** MySQL データベースのパスワード */ define('DB_PASSWORD', '<新しいパスワード>'); ・ ・
解凍した akiyoko_wp.sql から、データベースをリストアします。
方法その1)
MySQLコマンドから
$ mysql -u akiyoko_wp -pakiyoko_wp < akiyoko_wp.sql
方法その2)
あるいは、phpMyAdminでインポートしてもOKです。
WordPressサイトまたはダッシュボードにアクセスして、動作確認をします。
(ダッシュボードに例のエラーが表示されている場合がありますが、↑のどこかの手順で修正してください。)
4. 本番向けの設定
本番向けの設定をします。
テスト用のジョブをコピーすると、少しだけ捗ります。
1) データベースのバックアップ用(毎日)
ジョブ名 | Database Backup |
Database Jobs / Database tables to use: | 全てのテーブルにチェックを入れる |
Backup to Folder / Full Path to folder for Backup Files: | /virtual/akiyoko/backups/akiyoko.info/ |
Backup to Folder / Max. backup files in folder: | 10 |
Job Type | 「Database Backup」「File Backup」「Optimize Database Tables」「Check Database Tables」にチェックを入れる |
Job Schedule / Activate scheduling | チェックを入れる |
Job Schedule / Type / Hour / Minute | daily 3:00 |
Backup File / File Prefix: | backwpup_db_ |
Backup File / File Formart: | Tar GZip |
Send log / E-Mail-Adress: | (自分のメールアドレス) |
Send log / Only send an e-mail if there are errors. | チェックを入れる |
2) ファイルのバックアップ用(週一)
ジョブ名 | File Backup |
File Backup / Blog Folders to Backup: | 「root」「Content」「Plugins」「Themes」「Blog Uploads」全てにチェックを入れる |
Backup to Folder / Full Path to folder for Backup Files: | /virtual/akiyoko/backups/akiyoko.info/ |
Backup to Folder / Max. backup files in folder: | 10 |
Job Type | 「File Backup」にチェックを入れる |
Job Schedule / Activate scheduling | チェックを入れる |
Job Schedule / Type / Hour / Minute | weekly Sunday 3:00 |
Backup File / File Prefix: | backwpup_file_ |
Backup File / File Formart: | Tar GZip |
Send log / E-Mail-Adress: | (自分のメールアドレス) |
Send log / Only send an e-mail if there are errors. | チェックを入れる |