初心者でも安心!WordPressを本番からローカル(MAMP)へ移行する手順を徹底解説

2018.11.02

概要

この記事では、本番サーバーやレンタルサーバーで運用中のWordPressサイトを、ローカル環境(MAMP)にコピー(移行)する方法を紹介します。

方法は多岐にわたりますが、大きく分けて以下の3つがあります。

  • 1. エクスポート・インポート機能を使う方法(初心者向け・小規模サイト)

    WordPress標準の機能を使う方法です。設定やテーマは関係なく、記事とアップロードしたファイルのみを移行したい場合はこれで十分です。

    メリット: 非常に簡単です。
    デメリット: WordPressの一般設定、テーマのファイルと設定、プラグインのファイルと設定は移行できません(後ほど手動での設定が必要です)。

  • 2. プラグインを使う方法(初心者〜中級者向け・サイト規模問わず)

    WordPressの移行用プラグインを使う方法です。「All-in-One WP Migration」や「Duplicator」など、サイトを丸ごと引越しできるものが多数あります。うまく使えれば一番簡単に引越しが可能です。
    しかし、開発が停止しているものや、環境によってはエラーが多発するものもあるため、使用するプラグインは慎重に選ぶ必要があります。
    また、お客様のサーバーを直接操作できない場合は、この選択肢は取れないことが多いです。ご自身で管理しているサイトであれば、プラグインの導入がおすすめです。

    有名プラグイン:

    メリット: プラグインによっては非常に簡単で、短時間で引越しが完了できるものもあります。
    デメリット: 環境との相性があり、エラーが発生する場合があります。また、サーバーのセキュリティ設定によっては使用できないこともあります。

  • 3. 手動でコピーする方法(上級者向け・サイト規模問わず)

    WordPressの機能に頼らず、ファイルとデータベースを手動でコピー(移行)するため、設定なども丸ごと移行できます。
    その分、難易度は上がりますが、どれだけ高度なカスタマイズをしていても、全く同じ状態でローカル環境に再現できるため、プラグインより確実性があります。
    カスタマイズが多いサイトや、サーバーにプラグインをインストールできず、SQLファイル(データベースのデータ)のみを提供されるような場合には、この手法が望ましいでしょう。

    メリット: サイトの状態を(カスタマイズも含め)完全に同じ状態でローカル環境に再現できます。
    デメリット: 手順が複雑で、一つ間違うとエラーに見舞われる可能性があります。

この記事では、3つの手法のうち「1. エクスポート・インポート機能」と「3. 手動コピー」について詳しく解説します。(プラグインについては、各プラグインの解説ページが詳しいため、ここでは割愛します)


エクスポート・インポート機能を使う方法

この方法は、厳密には「サイトの引越し」ではなく、「ローカルに新しいWordPressをインストールし、そこに本番サイトの記事やメディアだけを移す」作業となります。

手順の概要

  1. 移行元(本番)サイトで記事・メディアをエクスポートする。
  2. ローカル(MAMP)にWordPressを新規インストールする準備をする。
    • FTPで必要なファイル(テーマ、プラグインなど)をコピーする。
    • ローカル用のデータベースを作成する(phpMyAdmin)。
    • wp-config.php.htaccessを編集する。
    • ローカルでWordPressのインストールを実行する。
  3. ローカルのWordPressに、手順1のファイル(記事・メディア)をインポートする。

1. 移行元サイトでデータをエクスポートする

サーバ上(移行元)のWordPress管理画面へ進み、「ツール」「エクスポート」へ進みます。「すべてのコンテンツ」を選択して、「エクスポートファイルをダウンロード」をクリックします。XMLファイルがダウンロードされます。

WordPress エクスポート画面

2. ローカルにWordPressを新規インストールする

次に、ローカル環境(MAMP)に、インポート先となる新しいWordPressを準備します。

2-1. FTPでファイルをコピーする

本番サーバーから、最低限「テーマファイル(/wp-content/themes/)」や「プラグイン(/wp-content/plugins/)」など、記事以外に必要なファイルをFTPソフトでローカル環境のMAMPフォルダ(例: /Applications/MAMP/htdocs/wordpress/)にコピーします。

FTPファイルコピーのイメージ

2-2. phpMyAdminでローカル用データベースを作成する

MAMPを開き、「Open WebStart Page」をクリックします。

MAMP スタートページを開く

「TOOLS」メニューから「PHPMYADMIN」をクリックします。

MAMP phpMyAdminを開く

1.「New」をクリックし、2. 任意のデータベース名(例: `local_wp`)を入れます。3.「Create」をクリックします。

phpMyAdmin データベース新規作成

2-3. wp-config.php と .htaccess を編集する

wp-config.php.htaccess は、共にWordPressのインストールディレクトリ直下にあります。(wp-config.phpは、wp-config-sample.phpをコピーして作成してください)

wp-config.php 書き換え場所。DB_NAMEは先ほど作成したデータベース名。DB_USER・DB_PASSWORDは、MAMPの初期設定の場合、通常「root」「root」です。

define( 'DB_NAME', 'local_wp' ); // DB名
define( 'DB_USER', 'root' ); // DBのユーザー名
define( 'DB_PASSWORD', 'root' ); // DBパスワード
define( 'DB_HOST', 'localhost' ); // DBのホスト名
wp-config.php 編集箇所

.htaccess に記入するもの(RewriteBaseのディレクトリを、WordPressを置いた場所(MAMPのhtdocsからのパス)に書き換えます)

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wordpress/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
</IfModule>
# END WordPress

2-4. WordPressのインストールを実行する

ブラウザでローカルのURL(例: `http://localhost:8888/wordpress/`)にアクセスします。WordPressのインストール画面が表示されます。

▼必要情報を入力し、「検索エンジンがサイトをインデックスしないようにする」にチェックを入れて、「WordPressをインストール」をクリックします。

WordPress インストール画面

「成功しました!」の画面が出たら、「ログイン」をクリックし、設定したユーザー名・パスワードでログインします。

3. ローカルのWordPressにデータをインポートする

ログイン後、「ツール」「インポート」へ進みます。一番下の「WordPress」の「今すぐインストール」をクリックし、プラグインをインストール後、「インポーターの実行」をクリックします。

WordPress インポートツール

「ファイルを選択」で、手順1でダウンロードしたXMLファイルを指定し、「ファイルをアップロードしてインポート」をクリックします。

WordPress インポート実行

(補足)アップロードファイルの最大サイズが足りない場合

インポート時、「最大アップロードサイズ: 32MB」のように制限があり、XMLファイルがそれより大きいとエラーになります。その場合の対処法です。

まずMAMPで利用しているPHPのバージョンを確認します(例:7.1.19)。

MAMP PHPバージョン確認

次にFinderで「/Applications/MAMP/bin/php/php7.1.19/conf/」へと進み、「php.ini」を開きます。

MAMP php.ini パス

▼下記3つの値を、必要なサイズまで引き上げて保存します。

post_max_size = 128M
upload_max_filesize = 128M
memory_limit = 256M

.htaccessに書く場合は、以下の通りです。

#メモリ使用量の制限
php_value memory_limit 256M
#POSTデータに許可される最大サイズ
php_value post_max_size 128M
#1つのファイルアップロードに許可される最大サイズ
php_value upload_max_filesize 128M

※なおこの値は「upload_max_filesize < post_max_size < memory_limit」となるように設定するのが一般的です。(例: 128M, 130M, 256Mなど)

設定変更後は、MAMP(サーバー)を再起動してください。


手動でコピー(移行)する方法

この方法は、本番サイトを「丸ごと」ローカルに複製する方法です。設定やプラグインも含め、完全に同じ状態を再現できます。

手順の概要

  1. サーバ上(移行元)のデータベースをエクスポート(.sqlファイルを取得)する。
  2. FTPを使用し、ローカル環境に全てのファイル(WordPress全体)をコピーする。
  3. phpMyAdmin を使用して、ローカル用のデータベースを作成し、移行元のデータベース(.sql)をインポートする。
  4. wp-config.php.htaccess をローカル環境用に編集する。
  5. データベース内のドメイン(URL)を一括置換する。
  6. ローカル環境にアクセスする。

1. サーバー上のデータベースを取得する(エクスポート)

本番サーバーからデータベース(.sqlファイル)を取得します。取得方法は、代表的なものでは下記の通りです。

  • クライアント(お客様)から、直接データベース(.sqlファイル)を頂く。
  • もし移行元でプラグインが入れられるなら、データベースをエクスポートできるプラグイン(例: WP-DBManager)を使う。
  • レンタルサーバーの管理画面(phpMyAdminなど)のエクスポート機能から取得する。
  • SSHで接続できる場合は、mysqldumpコマンドで取得する。

今回は、SSHで接続できる場合の取得方法(mysqldumpコマンド)を紹介します。

  1. SSHでサーバーに接続します。
  2. データベース名がわからない場合は、wp-config.phpを確認するか、mysqlにログイン(コマンド:mysql -u ユーザー名 -p)して確認します。
  3. mysqldumpコマンドを使用してデータベースを書き出します。

▼コマンド例:

mysqldump -u [ユーザー名] -p [移行元データベース名] > [保存するファイル名.sql]
mysqldump コマンド実行例

▼sqlファイルが書き出されていることを確認し、FTPなどでローカルにダウンロードします。

sqlファイル生成確認

2. FTPですべてのファイルをコピーする

本番サーバーにあるWordPressの全ファイル(wp-admin, wp-content, wp-includes, ルートにある.phpファイルなどすべて)を、ローカル環境のMAMPフォルダ(例: /Applications/MAMP/htdocs/wordpress/)にコピーします。

FTPファイルコピーのイメージ

3. phpMyAdminでデータベースをインポートする

MAMPのphpMyAdminを開き、ローカル用の新しいデータベースを作成します。(手順は「エクスポート・インポート機能を使う方法」の「2-2」を参照)

MAMP スタートページを開く
MAMP phpMyAdminを開く
phpMyAdmin データベース新規作成

▼データベースを作成したら、1.「作成したデータベース」をクリックし、2.「Import」タブをクリックします。3.「ファイルを選択」で、手順1で取得した.sqlファイルを選びます。4.「Character set」等を確認し「Go」(実行)をクリックします。

phpMyAdmin データベース インポート

※アップロードサイズ(Max: 32MiBなど)が足りない場合はエラーとなります。前述した「(補足)アップロードファイルの最大サイズが足りない場合」を参照し、php.iniを編集してください。

4. wp-config.php と .htaccess を編集する

手順2でコピーしてきたwp-config.php.htaccessを、ローカル環境用に編集します。

wp-config.php 書き換え場所。DB_NAMEは先ほど作成したデータベース名。DB_USER・DB_PASSWORDはMAMPの初期設定(root/root)に合わせます。

define( 'DB_NAME', 'local_wp' ); // 3で作成したDB名
define( 'DB_USER', 'root' ); // DBのユーザー名
define( 'DB_PASSWORD', 'root' ); // DBパスワード
define( 'DB_HOST', 'localhost' ); // DBのホスト名
wp-config.php 編集箇所

.htaccess の編集(RewriteBaseのディレクトリを、ローカル環境のパスに書き換えます)

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wordpress/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
</IfModule>
# END WordPress

5. データベースのドメイン(URL)を変更する

このままでは、データベース内のURLが本番環境(例: `https://www.example.com`)のままなので、ローカル環境(例: `http://localhost:8888/wordpress`)に一括置換する必要があります。

SQL内のデータを直接置換すると、シリアライズ(PHPのデータ形式)された情報が壊れてサイトが正しく表示されなくなる危険があります。
今回は、シリアライズに対応した置換ツール「Search Replace DB」を使用する方法を紹介します。

1. Search Replace DBの公式サイトからスクリプトをダウンロードします。

▼必要事項を入力し、「SUBMIT」をクリックすると、メールでダウンロードリンクが届きます。

Search Replace DB ダウンロード

2. ダウンロードしたzipを展開し、フォルダ(例: `Search-Replace-DB-master`)を、ローカルのWordPressのwp-config.phpと同じ階層(ルートディレクトリ)に配置します。

Search Replace DB フォルダ配置

3. ブラウザで、設置したツールのURLにアクセスします。(例: `http://localhost:8888/wordpress/Search-Replace-DB-master/`)

Search Replace DB ツール画面

4. データベース情報が自動入力されていることを確認します。
「search/replace」の項目で、「replace」(検索)欄に「移行元のURL」を、「with」(置換)欄に「移行先(ローカル環境)のURL」を入力します。

※この時、URLの末尾に / があるかないかを、本番環境と厳密に合わせてください。うまくいかない場合は、http:// を除いてドメイン部分だけで試してみてください。

5. まずは「dry run」をクリックし、シミュレーションを実行します。どのテーブルにどれくらい変更があるか(`view changes`)を確認できます。

Search Replace DB 置換実行

6. 「dry run」で置換内容を確認し、問題なければ「live run」ボタンをクリックして置換を本実行します。

7. 【重要】作業後は、セキュリティのため、設置した「Search Replace DB」のフォルダを必ず削除してください。

6. ローカルサイトにアクセスする

ローカルのURL(例: `http://localhost:8888/wordpress/`)にアクセスします。本番サイトと同じユーザー名・パスワードでログインできるはずです。

もしうまく表示されない場合は、ブラウザのキャッシュやCookieを削除して、再度アクセスしてみてください。

※PHPのバージョンが本番環境とローカル環境で大きく異なると(例: 5系→7系)、プラグインのエラーなどで正しく表示されないこともあります。その場合は、MAMPのPHPバージョンを本番環境に合わせてみてください。

(補足)MAMPのPHPバージョンを変更する方法

  1. Finderで「/Applications/MAMP/bin/php/」へ進みます。
  2. 使用したいPHPバージョン(例: php7.4.x)と、もう一つ別のバージョン(MAMPが認識するために最低2つ必要)を残し、あとはフォルダ名をリネームします。(例: `php_xxx` → `nouse_php_xxx` など)
  3. MAMPを再起動し、「MAMP」→「Preferences」→「PHP」と進むと、残した2つのバージョンが選択できるようになっているので、使用したい方を選択します。

よくある質問(FAQ)

Q1. プラグインを使う方法が一番簡単そうですが、なぜ手動の方法も紹介しているのですか?
A1. プラグインは手軽ですが、万能ではありません。サーバーのセキュリティ設定でプラグインがうまく動作しなかったり、移行できる容量に制限があったり、環境の相性でエラーが出たりすることがあります。特にクライアントワーク(お客様のサイト)では、サーバーにプラグインを自由に追加できないケースも多々あります。手動での移行方法は、そうした制約がある場合でも確実に対応できる、Web制作者にとって必須のスキルだからです。
Q2. 移行がうまくいきません。ローカルサイトが真っ白(またはエラー)になります。
A2. エラーの原因は様々ですが、以下の点を確認してみてください。

  • 手動移行の場合: データベースのURL置換(手順5)は正しく完了していますか? シリアライズデータが壊れている可能性があります。
  • 共通: wp-config.phpのデータベース接続情報(DB名、ユーザー名、パスワード、ホスト名)は正しいですか?
  • 共通: .htaccessの「RewriteBase」のパスは、ローカル環境のディレクトリ(例: `/wordpress/`)と一致していますか?
  • 共通: 本番環境とローカル環境のPHPバージョンが大きく異なりませんか? MAMPのPHPバージョンを本番側に合わせてみてください。
Q3. 「Search Replace DB」はなぜ必要ですか?データベースのURLを直接書き換えてはダメですか?
A3. WordPressは、ウィジェットの設定や一部のプラグイン設定などを「シリアライズ」という特殊な形式でデータベースに保存しています。これは、単純なテキスト(文字列)ではありません。もしSQLファイル内のURLをテキストエディタなどで単純に検索・置換してしまうと、このシリアライズされたデータの整合性が取れなくなり、設定が飛んだりサイトが壊れたりする原因となります。「Search Replace DB」のような専用ツールは、このシリアライズを認識した上で安全にURLを書き換えてくれるため、手動移行には必須のツールとされています。

CONTACT

webサイト制作、デザインに関するご相談、御見積のご依頼など、弊社へのお問い合わせはこちら