WordPressのプラグインBackWPupを使ってバックアップ、リストアを行ってみました。
手順は以下の通りです。
目次
WordPressのデータベースのバックアップ手順
WordPressのバックアップにはBackWPupというプラグインを使います。
BackWPupをインストールして有効化します。
正常にプラグインがインストールされると以下のように表示されます。
BackWPupの設定
BackWPupの設定はとても簡単です。
英語版のメニューしかないようですが、基本的にはデフォルト設定でよいです。
Generalタブの設定は以下の通りです。
Job Nameとして「Regular backup」という名前を付けました。
メールアドレスを設定してログが自分のメールアドレスに届くように設定します。
Scheduleタブの設定は以下の通りです。
WordPress cronを使って週1回、毎日曜日にバックアップするように設定します。
DB Backupタブの設定は以下の通りです。
バックアップ対象を絞ることができますが、すべてチェックしてバックアップしてよいと思います。
Filesタブの設定は以下の通りです。
デフォルトのままで問題ありませんが、キャッシュをバックアップしていることは気をつけておいた方がよいです。
キャッシュはバックアップしなくてもよいかもしれません。
Pluginsタブの設定は以下の通りです。
To:Folderタブの設定は以下の通りです。
どのフォルダにバックアップファイルを作成するかを指定します。
このまま「Save changes」を押して設定を保存します。
次に、ジョブを「Run now」を押して「Regular backup」を実行します。
わずか30分ほどでバックアップは完了し、
/var/www/wordpress/wp-content/uploads/backwpup-xxxxxxx-backups
というフォルダに
backwpup_xxxxxxx_2014-10-25_12-13-07.tar.gz
というバックアップファイルが作成されました。
WordPressのデータベースのリストア手順
作成されたバックアップファイルを手元のLinux環境にリストアしてみます。
WordPressをLinux環境にインストールするまでの手順は以下の通りです。
ここまでのソフトウェアがインストールされているという前提で、さきほどのバックアップファイルをリストアしてみます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
(カレントディレクトリを/var/wwwに移動します) # cd /var/www (既存のwordpressディレクトリをwordpress-origにリネームします) # mv wordpress wordpress-orig (新たにwordpressディレクトリを作成します) # mkdir wordpress (カレントディレクトリを/var/www/wordpressに移動します) # cd /var/www/wordpress (/var/www/wordpressディレクトリにbackwpup_xxxxxx_2014-10-25_12-13-07.tar.gzをコピーします) (backwpup_xxxxxx_2014-10-25_12-13-07.tar.gzを展開します) # gunzip backwpup_xxxxxx_2014-10-25_12-13-07.tar.gz # tar -xvf backwpup_xxxxxx_2014-10-25_12-13-07.tar (wp-config.phpをエディタで開きます) # vim wp-config.php (マルチサイトを使っている場合は、次のように記述を変更する必要があります。 define('DOMAIN_CURRENT_SITE', '192.168.141.135'); (カレントディレクトリを/var/wwwに変更してwordpressディレクトリの権限をapacheに変更します) # cd /var/www # chown -R apache:apache wordpress (既存のwordpressのデータベースを削除して新たに作り直します。) # mysql -u root -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 6 Server version: 5.5.37-MariaDB MariaDB Server Copyright (c) 2000, 2014, Oracle, Monty Program Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> drop database wordpress; Query OK, 11 rows affected (0.10 sec) MariaDB [(none)]> create database wordpress; Query OK, 1 row affected (0.00 sec) MariaDB [(none)]> grant all privileges on wordpress.* to wordpress@localhost identified by 'wordpress'; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> quit; Bye (バックアップデータベースをリストアします) # mysql -u wordpress -p wordpress < wordpress.sql |
データベースのリストア中に、
というエラーが表示させることがあります。
DATABASE SEARCH AND REPLACE SCRIPT IN PHPを使ってデータベースのリプレース
このあとDATABASE SEARCH AND REPLACE SCRIPT IN PHPという著名なツールを使ってデータベースのリプレースを行います。
以下のURLを開きます。
「PROBLEM? TRY V2.1.0 STABLE」をクリックしてダウンロードします。
searchreplacedb21.zipというファイルがダウンロードされます。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
(カレントディレクトリを/var/www/wordpressに移動します) # cd /var/www/wordperss (searchreplacedb21.zipを/var/www/wordpressにコピーします) (searchreplacedb21.zipを展開します) # unzip searchreplacedb21.zip (searchreplacedb2.phpの権限をapacheに変更します) # chown apache:apache searchreplacedb2.php (念のためApacheを再起動します) # systemctl restart httpd.service |
ローカルホストのIPアドレスを192.168.141.135とすると http://192.168.141.135/searchreplacedb2.php
をブラウザから開きます。
「Submit」を押します。
「Submit DB details」を押します。
「Continue」を押します。
「Search for (case sensitive string):」にバックアップ元のドメインを入力します。
「Replace with:」にローカル環境のIPアドレスを入力します。
このまま「Submit Search string」を押します。
「Safe Search Replace Completed」と表示されて変更が完了しました。
/var/www/wordpress/searchreplacedb2.phpは別のディレクトリに移動しておきます。
念のためにシステムを再起動しておきます。
からWordPressにログインします。
キャッシュ系のプラグインを導入している場合は、ログイン後にキャッシュを削除しておきます。
パーマリンクなど正しく表示されることを確認します。
パーマリンクで404 Not Foundとなったときは、
を参照してください。
追記:Search Replace DB Masterがバージョン3になって使いやすくなった
Search Replace DB Masterに、新しいバージョン3が登場しました。
バージョン2に比べて随分と分かりやすくて使いやすくなりました。
replace の左に旧ドメイン名を入力します。
withの右に新ドメイン名を入力します。
あとはデータベース名、ログイン名、パスワードを入力します。
今回から、「dry run」という方法が追加されています。
これは、お試しでやってみるという方法なので、まずこちらで試すことをお勧めします。
これで成功することを確認してから実行するようにします。
もっとも、Dry runで失敗してもどうしようもないかもしれませんが。
また、バージョン3から「delete me」というボタンが付いており、成功したら「delete me」を実行して、ツール自体を削除しておきます。
これを削除しておかないと外部の第3者から、勝手にドメインを変更されるリスクがあります。
WordPress cronが実行されない
WordPress cronを使って週1回自動バックアップするように設定したつもりなんですが、自動バックアップの機能が動いていないようです。
2014.11.20 追記
WordPress cronが実行されない理由は、キャッシュ系プラグインを無効にした際に、object-cache.phpがゴミとして残っていたことが原因でした。
予約投稿もバックアップもWordPress cronを使っていたので、object-cache.phpを削除することで、両方とも修正されました。
WordPressの定期バックアップ
WordPress cronを使って定期バックをアップを行うと以下のようになります。
「Regular backup」をクリックするとバックアップのログを表示することが可能です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
[INFO] BackWPup version 3.1.2; A project of Inpsyde GmbH [INFO] WordPress version 3.9.6 [INFO] Blog url: http://xxxxx.yyyyyy/ [INFO] BackWPup job: Regular backup; DBDUMP+FILE+WPPLUGIN [INFO] BackWPup cron: 0 3 * * 0; Next: 日, 17 5月 2015 @ 03:00 [INFO] BackWPup job started from wp-cron [INFO] PHP ver.: 5.4.34; fpm-fcgi; Linux [INFO] Maximum PHP script execution time is 30 seconds [INFO] MySQL ver.: 5.0.95 [INFO] curl ver.: 7.15.5; OpenSSL/0.9.8b [INFO] Temp folder is: /var/www/wordpress/wp-content/uploads/backwpup-9bfb6f-temp/ [INFO] Logfile is: /var/www/wordpress/wp-content/uploads/backwpup-9bfb6f-logs/backwpup_log_9bfb6f_2015-05-10_03-00-04.html [INFO] Backup type is: archive [INFO] Backup file is: /var/www/wordpress/wp-content/uploads/backwpup-9bfb6f-backups/backwpup_9bfb6f_2015-05-10_03-00-04.tar.gz [10-5月-2015 03:00:04] 1. Try to backup database … [10-5月-2015 03:00:04] Connected to database wordpress on localhost [10-5月-2015 03:00:04] Backup database table "wp_2_commentmeta" with "1023" records [10-5月-2015 03:00:05] Backup database table "wp_2_comments" with "350" records [10-5月-2015 03:00:05] Backup database table "wp_2_ewwwio_images" with "0" records [10-5月-2015 03:00:05] Backup database table "wp_2_links" with "0" records [10-5月-2015 03:00:05] Backup database table "wp_2_options" with "211" records [10-5月-2015 03:00:05] Backup database table "wp_2_postmeta" with "563" records [10-5月-2015 03:00:05] Backup database table "wp_2_posts" with "373" records [10-5月-2015 03:00:05] Backup database table "wp_2_term_relationships" with "115" records [10-5月-2015 03:00:05] Backup database table "wp_2_term_taxonomy" with "71" records [10-5月-2015 03:00:05] Backup database table "wp_2_terms" with "71" records [10-5月-2015 03:00:05] Backup database table "wp_amzps_padv" with "1" records [10-5月-2015 03:00:05] Backup database table "wp_amzps_pcat" with "0" records [10-5月-2015 03:00:05] Backup database table "wp_amzps_pfield" with "0" records [10-5月-2015 03:00:05] Backup database table "wp_amzps_pprod" with "0" records [10-5月-2015 03:00:05] Backup database table "wp_amzps_pstyle" with "5" records [10-5月-2015 03:00:05] Backup database table "wp_amzps_pupd" with "0" records [10-5月-2015 03:00:05] Backup database table "wp_blog_versions" with "1" records [10-5月-2015 03:00:05] Backup database table "wp_blogs" with "2" records [10-5月-2015 03:00:05] Backup database table "wp_commentmeta" with "1692" records [10-5月-2015 03:00:06] Backup database table "wp_comments" with "595" records [10-5月-2015 03:00:07] Backup database table "wp_domain_mapping" with "1" records [10-5月-2015 03:00:07] Backup database table "wp_domain_mapping_logins" with "5" records [10-5月-2015 03:00:07] Backup database table "wp_ewwwio_images" with "12403" records [10-5月-2015 03:00:07] Backup database table "wp_links" with "7" records [10-5月-2015 03:00:07] Backup database table "wp_mts_wp_reviews" with "0" records [10-5月-2015 03:00:07] Backup database table "wp_options" with "302" records [10-5月-2015 03:00:07] Backup database table "wp_postmeta" with "6223" records [10-5月-2015 03:00:07] Backup database table "wp_posts" with "3760" records [10-5月-2015 03:00:08] Backup database table "wp_registration_log" with "1" records [10-5月-2015 03:00:08] Backup database table "wp_signups" with "0" records [10-5月-2015 03:00:08] Backup database table "wp_site" with "1" records [10-5月-2015 03:00:08] Backup database table "wp_sitemeta" with "106" records [10-5月-2015 03:00:08] Backup database table "wp_term_relationships" with "977" records [10-5月-2015 03:00:08] Backup database table "wp_term_taxonomy" with "479" records [10-5月-2015 03:00:08] Backup database table "wp_terms" with "473" records [10-5月-2015 03:00:08] Backup database table "wp_usermeta" with "67" records [10-5月-2015 03:00:08] Backup database table "wp_users" with "2" records [10-5月-2015 03:00:08] Added database dump "wordpress.sql" with 31.15 MB to backup file list [10-5月-2015 03:00:08] Database backup done! [10-5月-2015 03:00:08] 1. Trying to make a list of folders to back up … [10-5月-2015 03:00:09] 775 folders to backup. [10-5月-2015 03:00:09] 1. Trying to generate a file with installed plugin names … [10-5月-2015 03:00:09] Added plugin list file "urashita.com_.pluginlist.2015-05-10.txt" with 5.59 kB to backup file list. [10-5月-2015 03:00:09] 1. Trying to generate a manifest file … [10-5月-2015 03:00:09] Added manifest.json file with 4.34 kB to backup file list. [10-5月-2015 03:00:09] 1. Trying to create backup archive … [10-5月-2015 03:00:09] Compressing files as TarGz. Please be patient, this may take a moment. [10-5月-2015 03:02:39] Backup archive created. [10-5月-2015 03:02:39] Archive size is 664.66 MB. [10-5月-2015 03:02:39] 16819 Files with 707.78 MB in Archive. [10-5月-2015 03:02:39] Job done in 155 seconds. |
このままでは、毎週バックアップファイルが作成されますので定期的に削除するか、別サーバーにバックアップファイルを移動する必要があります。
Dropboxなどのクラウドストレージに移動するのがよいと思います。
WordPressのおすすめ本
↓WordPressのおすすめ本はコチラ
コメント
[…] […]
[…] […]
[…] […]
[…] […]