wordpress BackWPup で WordPress をバックアップ

2013年6月16日

追加情報

2013年9月8日

BackWPup を使用していたサイトで不具合(リダイレクトループ)が発生したため、現在はこのプラグインを使用していません。

関連情報:BackWPup の不具合(リダイレクトループ)発生

プラグイン BackWPup(バージョン 3.0.12 )を使って WordPress をバックアップする方法のメモ。

  • プラグインのインストール画面で、「BackWPup」を検索してインストールして有効化する。
  • プラグインを有効化すると、管理画面のメニューの左下に「BackWPup」の項目が表示される。
  • (サブドメインにインストールしたマルチ環境の場合、ネットワーク管理者の画面で「 Warning: Cannot modify header information….」が出たが、参加サイトのダッシュボードなどへ移動したりするうちに「Warning」は消えた。)
  • 「Add New Job」をクリックして設定を行う。
  • ほとんどはデフォルトで問題ないが、保存先などを指定する必要がある。

バックアップ Job の作成

  • 「Add New Job」をクリックしてバックアップの設定画面を表示し、Job を作成。
  • 最初は「General」「Schedule」「DB Backup」「Files」「Plugins」のタブが表示されている。
  • Job Destination(保存先)の「Backup to Dropbox」にチェックを入れると「To:Dropbox」というタブが追加されるなど、設定内容によってタブが増えたりする。
  • この例ではバックアップを「Dropbox」に保存する。

General タブ

  • Job Name:
    デフォルトでは「New」となっているが、分かりやすい名前(weekly backupなど)に変更する。
  • Job Tasks:
    何をバックアップするのかを指定。
    ファイルとデータベースの両方をバックアップするには、「Database Backup」と「File Backup」にチェックを入れる。デフォルトではこのほかに「Installed plugins list」にチェックが入っている。
  • Backup File Creation:
    バックアップしたファイル付ける名前と、圧縮形式を指定。
    「Archive name」はデフォルトのまま。
    「Archive Formart」で圧縮形式を指定。(「Zip」に設定)
  • Job Destination:
    バックアップしたファイルの保存先の指定。
    ドロップボックスに保存するには、「Backup to Dropbox」にチェックを入れる。
  • Log Files:
    バックアップ完了のメール通知を受け取る設定を指定。
    受け取りたいメールアドレスを設定(デフォルトで WordPress で設定しているアドレスが入っている)。デフォルトでは、失敗した場合のみ通知する設定になっているが、バックアップ完了(成功)したら毎回通知する場合は「Errors only」の「Send e-mail with log only when errors occur during job execution. 」のチェックを外す。

Schedule タブ

いつバックアップするかを設定する。

  • Job Schedule:
    自動的にバックアップする場合は 「with WordPress cron」にチェックを入れる。
  • 「with WordPress cron」にチェックを入れる「Schedule execution time」の設定が表示される。
  • Scheduler type:
    「basic」(デフォルト)を選択。
  • Scheduler:
    この例では毎週バックアップを取るので「weekly」を選択し、曜日や時間を指定する。
  • 指定した日時は左上に「Next runtime:」(次回実行日時)として表示される。

DB Backup タブ

データベースのどの部分(テーブル)をバックアップするかを設定。

  • すべてバックアップするので、「Tables to backup」のすべてにチェックが入っている(デフォルト)ことを確認する。
  • 「Dumpfile name」「Dumpfile compression(none)」はデフォルトのまま。

Files タブ

どのファイル(フォルダー)をバックアップするかを設定。
デフォルトでは「Backup root folder(ルートフォルダ)」「Backup content folder(コンテントフォルダ)」「Backup themes(テーマ)」「Backup uploads folder(アップロードフォルダ)」にチェックが入っていて、各フォルダの下の「Exclude:」の項目にチェックを入れれば特定のファイルを除外することも可能。

  • 「Folders to backup」はデフォルトのまま。必要に応じて「Backup plugins」(プラグインのバックアップ)にチェックを入れる。
  • Exclude from backup で、バックアップから除外するファイルを指定できる。
  • Thumbnails in uploads:
    「Don’t backup thumbnails from the site’s uploads folder.」にチェックを入れると、アップロードフォルダ内のサムネイルはバックアップしない。
  • 「Exclude files/folders from backup」:
    特定のファイルやフォルダを指定する。デフォルトでは「.tmp,.svn,.git,desktop.ini,.DS_Store」が指定されているのでそのまま。
  • Special option:
    デフォルトでは、バックアップに含めるファイルとして「Backup wp-config.php, robots.txt, .htaccess, .htpasswd and favicon.ico from root.」にチェックが入っている。

Plugins タブ

  • Plugin list file name:デフォルトのまま。
  • File compression:デフォルトのまま。

To: Dropbox タブ

Dropbox と連携するための設定。

  • Reauthenticate (Sandbox) をクリック。
  • Dropbox のページが表示され「アプリがあなたの Dropbox との連携をリクエストしています。ログインまたは登録してください。」と表示されるので、ログインする。
  • 「続行する前に、信頼できるアプリであることを確認してください。」等表示されるので、確認して「許可」をクリック。
  • DropBox の認証が通れば 「Authenticate!」 と表示される。
  • Backup settings:
    DropBox でのバックアップの設定を指定。
    「Folder in Dropbox」:「バックアップファイルを保存するフォルダ」を指定 (フォルダの区切り文字は 「/」)
    「File Deletion」に保存するバックアップファイルの数を指定する。

設定の保存

  • 最後に「Save changes」をクリックして設定を保存する。
  • 保存が完了すると「設定が保存されました」というようなメッセージとともに「Jobs overview | Run now 」が表示される。
  • 「Jobs overview」をクリックすると、Job の一覧画面「BackWPup Jobs」へ移動する。
  • 「Run now」をクリックすると、バックアップが開始される。

設定の変更

  • 左側メニューの「BackWPup」→「Jobs」をクリック。
  • 「BackWPup Jobs」の画面で、作成した Job name にカーソルを持っていき、「Edit」をクリックして編集して保存する。

バックアップの実行(テスト)

設定が終わったら、手動でバックアップを実行してテストする。

  • 左側メニューの「BackWPup」→「Jobs」をクリック。
  • 「BackWPup Jobs」の画面で、作成した Job name にカーソルを持っていき、「Run now」をクリックして実行する。
  • バックアップが完了すると、DropBox の 「アプリ」ディレクトリの中に BackWPup ディレクトリが作成され、「Folder in Dropbox」で指定したフォルダの中にバックアップファイル 「backwpup_xxxxx_YYYY-MM-DD_H-M-S.zip」(「Archive Formart」で指定した圧縮形式のファイル)ができている。

復元(リストア)

  • 作成したバックアップファイルをダウンロードして解凍する。
  • 解凍したフォルダの中にデータベースのインポートで使用するファイル「xxxx.sql」が入っている。ファイル名は設定時に「DB Backup タブ」の「Dumpfile name」で指定した(またはデフォルトの)名前になっている。
  • phpMyadmin 等で空のデータベース(UTF-8)を作成。(データベース名、データベースユーザー名やパスワード等はバックアップ元と同じ設定しておく。)
  • 解凍したバックアップファイルをサーバーにアップ
  • データベースに phpMyadmin でアクセスして、作成した空のデータベースを選択。
  • 「インポート」タブを選択し、「参照」をクリックしてバックアップファイル内の「xxxx.sql」を選択。
  • 「ファイルの文字セット:」が「utf-8」、「フォーマット:」が「SQL」になっていることを確認して「実行」をクリック。
  • 「インポートは正常に終了しました」と表示されてデータがインポートされ、サイトが正常に表示されていれば完了。
  • 空のデータベースを作成した際に、データベース名、データベースユーザー名やパスワードをバックアップ元と異なるものにした場合は、データベースに正しく接続できないので、wp-config.php の以下を修正する。
    /** WordPress のためのデータベース名 */
    define('DB_NAME', '新しいデータベース名');
    
    /** MySQL データベースのユーザー名 */
    define('DB_USER', '新しいユーザー名');
    
    /** MySQL データベースのパスワード */
    define('DB_PASSWORD', '新しいパスワード');
    
    /** MySQL のホスト名 */
    define('DB_HOST', '新しいホスト名');

異なる環境へのリストア

異なるドメイン名やディレクトリ構成へのリストアを行うには、バックアップ時に作成された SQL ファイルを編集する必要がある。また wp-config.php, .htaccess も変更する必要があり、wp-config.php の修正には、リストア用に作成した空のデータベースの情報(データベース名、パスワード等)が必要。

ディレクトリの構成やマルチサイトを利用している場合などによって異なってくるので以下は参考程度の例。

例:http://www.test.com/でバックアップしたものをhttp://localhost/wpex/へリストアする場合。

  • バックアップ時に作成された SQL ファイルを UTF-8 に対応したテキストエディタで開く。
  • http://www.test.com/ という文字列を http://localhost/wpex/ とう文字列に全て置換する。
  • test.com という文字列を localhost/wpex とう文字列に全て置換する。
  • マルチサイトの場合は、phpMyadmin で以下のテーブルの値等を確認して変更する。
    以下はルートサイト、en サイト、 jp サイトがある場合の例。
    wp_blogs テーブルの「path」の値を変更
    「/」から「/wpex/」に変更
    「/en/」から「/wpex/en/」に変更
    「/jp/ 」から「/wpex/jp/」に変更

    wp_options テーブルの「siteurl」の値を変更
    「http://www.test.com」から「http://localhost/wpex」に変更
    wp_2_options テーブル
    「http://www.test.com/en」から「http://localhost/wpex/en」に変更
    wp_3_options テーブル
    「http://www.test.com/jp」から「http://localhost/wpex/jp」に変更

    wp_site テーブルの「path」の値を変更
    「/」から「/wpex/」に変更

  • 空のデータベースを作成した際に、データベース名、データベースユーザー名やパスワードをバックアップ元と異なるものにした場合は、wp-config.php の以下の部分を変更する。
    /** WordPress のためのデータベース名 */
    define('DB_NAME', '新しいデータベース名');
    
    /** MySQL データベースのユーザー名 */
    define('DB_USER', '新しいユーザー名');
    
    /** MySQL データベースのパスワード */
    define('DB_PASSWORD', '新しいパスワード');
    
    /** MySQL のホスト名 */
    define('DB_HOST', '新しいホスト名');

    また、マルチサイトの場合は wp-config.php の以下の部分も修正する。

    define('WP_ALLOW_MULTISITE', true);
    define('MULTISITE', true);
    define('SUBDOMAIN_INSTALL', false);
    define('DOMAIN_CURRENT_SITE', 'localhost');//サーバー環境では「'www.test.com'」となっていた
    define('PATH_CURRENT_SITE', '/wpex/');//サーバー環境では「'/'」となっていた
    define('SITE_ID_CURRENT_SITE', 1);
    define('BLOG_ID_CURRENT_SITE', 1);
  • .htaccess の「RewriteBase /」を 「RewriteBase /wpex/」に変更
  • この他にもリンクの部分や、「設定」の値、wp_list_categories で作成したメニューの「ホーム」の値なども確認する必要がある場合もある。

似たようなトピック:「WordPress マルチサイトのローカル環境からのサーバー移行手順

false http status (401)

開発環境などでサイト全体にベーシック認証をかけている場合にバックアップを実行すると以下のようなエラーがでる。

The HTTP response test get a false http status (401)

ベーシック認証の設定を解除すれば、普通にバックアップできるようになる。

マルチサイトでのエラー

ローカル環境では問題なかったが、サーバー側では、サブドメインにインストールしたマルチサイトで以下のようなエラーが表示された。但し、BackWPup の管理画面を一度開くとエラーは消えて問題なくバックアップは行えた。

Notice: Undefined index: page in /home/xxxx/public_html/wp/wp-content/plugins/backwpup/backwpup.php on line 244

Warning: Cannot modify header information – headers already sent by (output started at /home/xxxx/public_html/wp/wp-content/plugins/backwpup/backwpup.php:244) in /home/xxxx/public_html/wp/wp-includes/pluggable.php on line 876

Warning: Cannot modify header information – headers already sent by (output started at /home/xxxx/public_html/wp/wp-content/plugins/backwpup/backwpup.php:244) in /home/xxxx/public_html/wp/wp-includes/option.php on line 568

Warning: Cannot modify header information – headers already sent by (output started at /home/xxxx/public_html/wp/wp-content/plugins/backwpup/backwpup.php:244) in /home/xxxx/public_html/wp/wp-includes/option.php on line 569