BackWPUpでWordPressのバックアップをMAMPに復元する

mamp_wordpress

WordPressのバックアップ内容を自由に設定でき、定期的に自動バックアップをとってくれるWordpressプラグイン「BackWPUp

個人的に一番うれしいのが、バックアップデータの保存先を選べること。
FTPにも保存出来るけど、なるべく分散しておきたいので、筆者はDropboxにバックアップデータを自動で保存されるように設定している。

バックアップを自動で行ってくれるのは安心できるが、いざ何か問題が起こった時にすぐに復元出来るのかと、ちょっと心配にならないだろうか。その時に慌てないために練習をしておきたいところ。

ということで今回はMacのローカル開発でよく使うMAMPにBackWPUpでとったバックアップデータを復元してみたいと思います。
ちなみに当サイトは独自SSLを行っているんですが、それによってつまずいた問題も紹介したいと思います。

1, ローカルにバックアップデータをダウンロード

まずはローカルにWordpressのバックアップデータを用意します。
筆者はWordpressのファイルデータと、データベースを別々にバックアップ設定しています。

BackWPUp

それぞれを筆者はDropboxに保存されるようにしているのでDropboxからダウンロードします。

Dropbox

ファイル一式にはwp-configをはじめ、テーマやアップロードした画像までFTPデータすべてが入っています。

2, データベースのインポート

まずはデータベースのインポートです。
MAMPを起動して「オープンWebStart」をクリック。

mampメニュー画面

ブラウザが立ち上がり、MAMPのトップページが開きます。そこからphpMyAdminをクリック。

phpMyAdmin

phpMyAdminの管理画面が開いたらデータベースを作成します。

データベース作成

データベース名はwp-config.phpに書いてあるデータベース名を入力、照合順序は[utf8_general_ci]を選択してください。

データベースを作成したらインポートを行います。
「インポート」タブをクリックしてダウンロードしたデータベースファイルを選択してください。

インポート

アップするプデータは「ファイル名.sql.gz」「ファイル名.sql.zip」といったsqlの付く圧縮データをアップしてください。

実行を押して、エラーがでなければインポート完了です。

といってもこれで終わりではありません。
これからデータベースのサイトのURLを変更します。
さきほど作ったデータベースを選択してテーブル名「wp_optinos」をクリック。
※プレフィックス(wp_)はwp-config.phpで設定されているものによって値が違う場合があります。

その中のsiteuelとhomeのvalueを「//localhost:3000」と変更してください。

URL変更

これでデータベース側の設定は完了です。

3, wp-config.phpの修正

次はwp-config.phpを修正します。以下の部分を修正してください。

wp_config

各値はMAMPのトップページで確認できます。

4, ドキュメントルートの変更

MAMPのドキュメントルートを変更します。
メニュー画面の「設定」をクリック。

mampメニュー

そこから「Webサーバ」を選択して「ドキュメントのルート」のフォルダのアイコンをクリックしてください。

Webサーバ

そこでWordpressのバックアップ一式が格納されているファルダを選択。

あとはlocalhostにアクセスして、開ければ完了です。

https://recost-design.com

(ちなみに8888のポートは人によって違う場合がありますので「設定」でご確認ください)

5, SSLでちょっとつまずいた話

試しに当サイトをMAMPに入れた時に起こったことですが、上記の手順で行ったあと、アクセスするとなぜか接続を拒否されました。

接続拒否

書き間違いがないか調べてもよくわからず、URLをみると「http://localhost/」となっている。
ローカルなのでhttpsなんてあるわけがないので間違いなくこれが原因です。
BackWPUpでバックアップをとるとhtaccessもダウンロードしてくるので、これでリダイレクトがかかっていました。htaccessは不可視ファイルなので普通では見えません。FTPソフトを使い、ローカル上のバックアップフォルダにあるhtaccessの下記の部分を削除したらうまくいきました。

<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteBase /
  RewriteRule ^wp-signup\.php 404-siteguard [L]
  RewriteRule ^wp-activate\.php 404-siteguard [L]
  RewriteRule ^login_47492(.*)$ wp-login.php$1 [L]

  RewriteEngine On
  RewriteCond %{SERVER_PORT} !^443$
  RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
</IfModule>

バックアップはセキュリティ上の問題だけでなく、例えばプラグインのアップデートによって画面が真っ白になってしまった場合でもバックアップデータを使うことで復元出来ます。
またローカルに同じ環境を用意することで、プラグインなどを試して、プラグインごとの干渉がないかもチェック出来ます。
いざという時に備えて皆さんバックアップはちゃんととりましょう!