WordPress Logo WordPress ローカル環境設定

サーバ上の WordPress をローカル環境に移行したり、バーチャルホストを設定するなど WordPress を Mac のローカル環境に設定する際の手順などの覚書きです。

更新日:2020年02月12日

作成日:2019年08月06日

サーバ上の WordPress をローカル環境に移行

サーバ上の WordPress で作成したサイトを Mac のローカル環境(MAMP)に移行する大まかな手順です。

参考ページ:WordPress の引越し

以下ではローカル環境(Mac)に MAMP をインストールしてあることを前提にしています。

大まかな流れは以下のようになります。

  1. ローカル環境(MAMP)にファイルを配置
  2. サーバーのデータベースをエクスポート
  3. データベースファイルの編集
  4. ローカル環境のデータベースにインポート
  5. wp-config.php の編集
  6. .htaccess の編集
  7. 接続確認

【追記 2020年1月19日】

プラグイン「All-in-One WP Migration」などを使えばもっと簡単にデータを移行することができます。

関連ページ:WordPress All-in-One WP Migration を使ってデータを移行

ローカル環境(MAMP)にファイルを配置

サーバーから必要なファイルをダウンロードしてローカル環境のフォルダ(/Applications/MAMP/htdocs/xxxx)に配置しておきます。

必要に応じて .htaccess ファイルなどをローカル環境用に編集します。

関連ページ:MAMP のインストールと初期設定

サーバーのデータベースをエクスポート

サーバーの WordPress のデータベースを phpMyAdmin 等を使用してエクスポートします。

エクスポートするデータベースを選択して、エクスポートタブをクリックして「Export method:」で「詳細 - 可能なオプションをすべて表示」を選択して全てのテーブルが選択されているか等を確認して「実行」をクリックします。

phpMyAdmin エクスポート画面(1)

phpMyAdmin エクスポート画面(2)

phpMyAdmin エクスポート画面(3)

ポップアップ画面が表示されたら「保存する」を選択してデータベースファイルをダウンロードします。

データベースファイルの編集

エクスポートしたデータベースファイル(.sql)をローカル用に編集します。

編集が一度でうまく行くとは限らないので、エクスポートしたデータベースファイル(.sql)を別名で保存して使用すると良いかと思います(再度エクスポートする手間が省けます)。

テキストエディタ(テキストエディットなどUTF-8N対応のエディタ)でデータベースファイル(.sql)を開き、URL の部分をローカル環境の URL に書き換えます。

例えば、www.example.com を example.localhost に置換します。

但し、データベース内で保存されている内容がプラグイン等によりシリアライズされている可能性があるので、シリアライズされて保存されるデータに URL が含まれていると単にテキストエディタを使って一括置換では問題が発生する可能性があります。

ここでは省略しますが、詳細は「WordPressの引っ越しに便利な wp search-replace(Gatespace)」などを参照ください。

【追記】テキストエディタで URL を置換するのは、上記にあるように問題があります。

以下は Moving WordPress からの引用です。

If you do a search and replace on your entire database to change the URLs, you can cause issues with data serialization, due to the fact that some themes and widgets store values with the length of your URL marked. When this changes, things break. To avoid that serialization issue, you have three options:

  1. Use the Velvet Blues Update URLs or Better Search Replace plugins if you can access your Dashboard.
  2. Use WP-CLI’s search-replace if your hosting provider (or you) have installed WP-CLI.
  3. Use the Search and Replace for WordPress Databases Script to safely change all instances on your old domain or path to your new one. (** only use this option if you are comfortable with database administration ** )

「データベース全体で単に検索および置換を行って URL を変更すると一部のテーマやウィジェットでデータのシリアライゼーションでの問題が発生する可能性があります。問題を回避するには以下のオプションがあります。」というような内容で3つオプションが紹介されています。

1つめはダッシュボードにアクセスできる場合のオプション、2つめは WP-CLI がインストールされている場合のオプションです。

個人的には3つめのオプション(Search and Replace for WordPress Databases Script)を使うのが簡単で便利だと思います。実際に試してみましたがマルチサイトの場合でも簡単にデータベースの置換ができました。

但し、その場合、手順として移行元のデータベースをそのまま移行先でインポートして、その後スクリプトを使ってデータベースを置換する手順になります。

関連ページ:Search Replace DB の使い方

また、example.com を example.localhost に置換する場合など、E-mail アドレスの部分、例えば info@example.com はそのまま置換してしまうと info@example.localhost となるので、必要に応じて置換対象にプロトコル部分(http:// や https://)を含めるか、置換後に修正するなどが必要になります置換後に修正するなどが必要になります。

ローカル環境のデータベースにインポート

編集したデータベースファイル(.sql)をローカル環境(MAMP)の phpMyAdmin でインポートできるように zip 形式で圧縮します(拡張子の例:.sql.zip)。

インポート先の空のデータベースを作成します。

「データベースを作成する」の下の入力欄でデータベース名を指定し、照合順序は「utf8mb4_general_ci」を選択し、「作成」をクリックします。

データベース名は「wp-config.php」の修正時に使用するので控えておきます(データベース名は後から変更はできません。)。

phpMyAdmin データベース作成画面

インポートタブで「選択」をクリックして圧縮したデータベースファイル(.sql.zip)を指定し、「実行」をクリックしてインポートします。

  • ファイルの文字セット: utf-8
  • フォーマット: SQL

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

「インポートは正常に終了しました。」と表示されれば、インポートは完了です。

phpMyAdmin データベースインポート完了メッセージ

wp-config.php の編集

ローカル環境の wp-config.php ファイルをローカル環境のデータベースに合わせる必要があります。

サーバーからダウンロードしたファイルは念の為「wp-config_original.php」などの別名で保存しておくと良いと思います。

データベースへの接続情報の部分をローカル環境のデータベースの設定に変更します。

以下は MAMP のデフォルトの接続情報の例です。

2行目の DB_NAME は「ローカル環境のデータベースにインポート」で作成したデータベース名を指定します。

/** WordPress のためのデータベース名 */
define('DB_NAME', '作成したデータベース名');

/** MySQL データベースのユーザー名(MAMP のデフォルトの場合) */
define('DB_USER', 'root');

/** MySQL データベースのパスワード(MAMP のデフォルトの場合) */
define('DB_PASSWORD', 'root');

/** MySQL のホスト名 */
define('DB_HOST', 'localhost');

/** データベースのテーブルを作成する際のデータベースのキャラクターセット */
define('DB_CHARSET', 'utf8');

/** データベースの照合順序 (ほとんどの場合変更する必要はありません) */
define('DB_COLLATE', '');   

また、必要に応じてローカル側ではデバッグを有効にします。

define('WP_DEBUG', true);  

マルチサイトの場合は以下も確認して必要であれば修正します。

define('WP_ALLOW_MULTISITE', true);
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false);
define('DOMAIN_CURRENT_SITE', 'www.xxxxxx.com');  //ここの値や
define('PATH_CURRENT_SITE', '/');  //ここの値など
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);

※ローカル環境用に変更した「wp-config.php」をアップロードしてしまうと、サーバ側でデータベース接続エラーとなり WordPress が表示されなくなるので注意が必要です。

.htaccess の編集

.htaccess ファイルは隠しファイルなので、Mac の場合は、Shift + Command + . を押して表示させる必要があるかも知れません。

以下は WordPress を wp と言うディレクトリにインストールした場合に生成される.htaccess の例です。

編集が不要な場合もありますが、インストールするディレクトリ構成がサーバー側と異なっている場合などでは、.htaccess の「RewriteBase」の値などの修正が必要になります。

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

また、他のセキュリティ設定などがあればそれらもローカル環境に合わせて修正する必要があるかも知れません。wp-config.php 同様、オリジナルファイルはバックアップとして別名で保存しておくと良いと思います。

接続確認

最後にローカル環境で WordPress にアクセスして問題なく接続できれば終了です。

「データベース接続確立エラー」が表示された場合は、エラーが表示されていればエラーの内容を確認して必要な修正を行います。

以下は「データベース接続確立エラー」の例で、データベースの接続パスワードが空になっているためデータベースの接続が拒否されています。

エラーを表示させるには wp-config.php でデバッグを有効にする必要があります。

「データベース接続確立エラー」画面

「データベース接続確立エラー」が発生した場合は、wp-config.php のデータベース接続情報が正しいかを確認して必要に応じて修正します。

デバッグを有効にしていてもデータベース接続確立エラー」とだけ表示されてエラーが表示されない場合もあります。

場合によっては編集したデータベースファイルの内容(ドメイン名の変換・置換等に問題がないか等)を確認し、問題があればデータベースファイルを修正または削除してやり直す必要があるかも知れません。

バーチャルホスト

例えば、ローカル環境(MAMP や XAMPP)で htdocs に example と言うフォルダを配置してブラウザでアクセスする場合、通常 http://localhost/example/ と言う URL になります。

これを http://example.localhost/ と言う URL でアクセスできるようにするにはバーチャルホストと言う機能を利用します。

MAMP でのバーチャルホストの設定方法は「MAMP のインストールと初期設定/バーチャルホストの設定」を御覧ください(このセクションは移動しました)。