WordPressの修正やアップデートを行う際、いきなり本番環境で作業するのはちょっと怖いですよね。

そこで、本番サイトをMacのローカル環境へコピーして、そこで動作確認できる環境を作ることにしました。

今回は、All-in-One WP Migrationを使って、本番WordPressをMAMPのローカル環境へ移行する方法を備忘録としてまとめます。

この方法なら、本番サイトをそのまま残した状態でローカルに複製できます。

本番サイトを残したままローカル環境で安全にテストするイメージ

今回やりたいこと

構成としてはこんな感じです。

本番WordPressをAll-in-One WP MigrationでMAMPへコピーする流れ

本番サイトを「移動」するというより、本番サイトをローカル環境へ丸ごとコピーすると考えると分かりやすいです。

そのため、この作業を行っても基本的に本番サイトが消えることはありません。

必要なもの

今回はMacを使用しています。必要なのは以下です。

  • MAMP
  • WordPress
  • All-in-One WP Migration
  • 本番WordPressの管理画面へのアクセス権限

MAMPはあらかじめインストールしておきます。

1. 本番WordPressにAll-in-One WP Migrationをインストール

まず本番サイトのWordPress管理画面を開きます。

「プラグイン」→「新規プラグインを追加」から、All-in-One WP Migrationを検索してインストール、有効化します。

すでにインストールされている場合はそのままでOKです。

2. 本番サイトをエクスポートする

WordPress管理画面から、「All-in-One WP Migration」→「エクスポート」を開きます。

エクスポート先から「ファイル」を選択します。

しばらく待つと.wpress形式のバックアップファイルが作成されるので、Macへ保存します。

このファイルにはWordPressの、

  • データベース
  • 投稿・固定ページ
  • テーマ
  • プラグイン
  • メディア
  • 各種設定

などが含まれます。要するに、WordPressサイトを丸ごとパッケージしたファイルです。

3. MAMPを起動する

続いてMac側でMAMPを起動し、ApacheとMySQLを起動します。MAMP PROの場合も基本的な考え方は同じです。

ローカルサイト用のDocument Rootを作成します。例えば、

/Applications/MAMP/htdocs/example/

などです。MAMP PROでHostを個別に作成している場合は、そのHostのDocument Rootを使用します。

4. ローカル用データベースを作成する

phpMyAdminなどから、新しいデータベースを作成します。例えば、

example_local

など、分かりやすい名前でOKです。文字コードは通常、utf8mb4を使用しておけば問題ありません。

5. MAMP側に新しいWordPressをインストールする

ここがポイントです。

All-in-One WP Migrationでインポートする場合でも、まずは移行先にWordPressをインストールしておきます。

WordPress本体をDocument Rootへ設置して、通常通りインストールします。この時点では、

  • サイト名
  • 管理者ユーザー
  • パスワード

などは仮のもので構いません。このあとAll-in-One WP Migrationで本番サイトのデータに置き換わるためです。

6. ローカルWordPressにログインする

新しく作ったローカルWordPressへログインします。例えば、

http://localhost/example/wp-admin/

などです。MAMP PROで独自のローカルドメインを設定している場合は、

http://example.local/wp-admin/

のようなURLになることもあります。

7. All-in-One WP Migrationをインストール

ローカル側のWordPressにも、All-in-One WP Migrationをインストールして有効化します。

これで本番からエクスポートした.wpressファイルを読み込めるようになります。

8. .wpressファイルをインポートする

管理画面から、「All-in-One WP Migration」→「インポート」を開き、本番サイトからエクスポートした.wpressファイルを指定します。

インポートを実行すると、現在のローカルWordPressのデータが、本番サイトのデータで上書きされるという警告が表示されます。

今回はローカル環境を本番サイトのコピーにしたいので、そのまま進めます。

ただし、インポート先を間違えて本番サイトを上書きしないように注意してください。

9. インポート後は本番サイトのアカウントでログインする

ここは最初ちょっと戸惑うポイントです。

インポートが完了すると、最初にローカルWordPressを作ったときのユーザー情報も上書きされます。つまり、

ローカルWordPress作成時のユーザー名・パスワードではログインできなくなります。

インポート後は、本番WordPressで使用していたユーザー名とパスワードでログインします。

ログインできなくなったように見えても慌てず、本番サイトのログイン情報を試してみましょう。

それでもログインできない場合は、こちらの記事も参考にしてください。

【WordPress】データベースにユーザーがいるのにログインできない時の対処法

10. パーマリンクを保存する

インポート後は、「設定」→「パーマリンク」を開きます。

特に設定を変更しなくても、一度「変更を保存」をクリックしておきます。.htaccessやリライトルールに関連する問題を防ぐためです。

トップページは表示されるのに下層ページが404になる場合も、まずパーマリンク設定を再保存してみます。

11. ローカルサイトが正常に表示されるか確認する

最後にサイト全体を確認します。最低限、以下はチェックしておきます。

  • トップページ
  • 投稿ページ
  • 固定ページ
  • 画像
  • CSS
  • JavaScript
  • 管理画面
  • パーマリンク
  • 使用しているプラグイン

本番環境と同じように表示されれば、ひとまず移行完了です。

PHPのバージョンにも注意

古いWordPressサイトをローカルへ持ってくる場合は、PHPのバージョンにも注意が必要です。

例えば本番環境が古いPHPで動いているサイトを、いきなりPHP 8系のローカル環境へ持ってくると、

  • 重大なエラー
  • Deprecated
  • Fatal error
  • プラグインが動かない
  • 管理画面が真っ白になる

などの問題が発生する可能性があります。

古いWordPressサイトを検証する場合は、できるだけ最初は本番環境に近いPHPバージョンで動かしたほうが原因を切り分けやすいです。そのうえで、

PHP 5.x
↓
PHP 7.x
↓
PHP 8.x

のように段階的にアップデートして動作確認すると安全です。

MAMPで古いPHPが選べない場合は、Dockerで環境を作る方法もあります。

MAMPでPHP 5.6が使えない!Intel MacにDockerで古いWordPress環境を構築する方法

インポートできない場合

All-in-One WP Migrationでは、環境や使用しているバージョンなどによってインポートできるファイルサイズに制限がかかる場合があります。

.wpressファイルが大きくてインポートできない場合は、

  • 不要なバックアップファイルを除外する
  • キャッシュを除外する
  • 不要なメディアを整理する
  • PHP側のアップロード上限を確認する
  • All-in-One WP Migration側の制限を確認する

などを試します。特に画像が大量にあるサイトでは、バックアップファイルが数GBになることもあるので注意が必要です。

ローカル環境からメールを送信しないように注意

本番サイトを丸ごとコピーすると、Contact Form 7などの設定もそのままローカル環境へコピーされます。

そのため、ローカル環境でテストしたつもりが、実際の顧客や管理者へメールが送信されてしまう可能性があります。

メール送信系のプラグインやフォームを使用しているサイトでは、ローカル環境から外部へメールを送らないように設定しておくことをおすすめします。たとえば、フォームの送信先を自分のメールアドレスに変更しておくだけでも安心です。

WooCommerceなどを使用している場合も同様に、外部サービスとの連携には注意が必要です。

本番サイトには影響しない?

基本的には影響しません。今回行っているのは、

本番サイトをエクスポートして、そのデータをローカル環境へインポートする

という作業です。本番サイト側のデータを削除したり移動したりするわけではありません。イメージとしては、

本番サイト
   │
   ├── そのまま運用
   │
   └── コピー → MAMP

という状態です。そのため、WordPressやPHPのアップデートを試したい場合にも便利です。

まとめ

All-in-One WP Migrationを使えば、本番WordPressを比較的簡単にMAMPへコピーできます。大まかな手順は、

  1. 本番サイトを.wpressでエクスポート
  2. MAMPにデータベースを作成
  3. 新規WordPressをインストール
  4. All-in-One WP Migrationをインストール
  5. .wpressファイルをインポート
  6. 本番サイトのアカウントでログイン
  7. パーマリンクを再保存
  8. 表示・動作確認

となります。特に覚えておきたいのは、

「インポート後はローカルで作ったユーザーではなく、本番サイトのユーザーでログインする」

という点です。また、古いWordPressサイトの場合はPHPのバージョン違いにも注意が必要です。

本番環境でいきなりWordPressやPHPをアップデートするのは怖いので、

本番サイト → MAMPへコピー → ローカルでアップデートテスト → 問題がないことを確認

という流れにしておくと安心です。

今後また同じ作業をする可能性が高いので、備忘録として残しておきます。

あわせて読みたい