WordPress Logo WordPress ローカル環境設定

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

更新日:2019年08月06日

作成日:2019年08月06日

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

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

参考ページ:WordPress の引越し

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

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

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

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

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

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

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

サーバーの 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)」などを参照ください。

また、example.com を example.localhost に置換する場合など、E-mail アドレスの部分、例えば info@example.com はそのまま置換してしまうと info@example.localhost となるので置換後に修正するなどが必要になります。

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

編集したデータベースファイル(.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 データベースのユーザー名 */
define('DB_USER', 'root');

/** MySQL データベースのパスワード */
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 の場合の例です。

Virtual hosts の有効化

バーチャルホストを利用するには httpd.conf ファイルを編集して Virtual hosts の機能を有効化する必要があります。  

MAMP の場合、/Applications/MAMP/conf/apache/httpd.conf にファイルがあるので httpd.conf をテキストエディターで開いて編集します。

デフォルトでは、おそらく以下のように Virtual hosts の次の行の Include ... がコメントアウトされているので、その場合はコメントアウトを外します。

# Virtual hosts
#Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf

以下のように変更して(httpd-vhosts.conf を読み込むようにして)保存します。

# Virtual hosts
Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf

httpd-vhosts.conf の編集

上記で読み込みを有効にした httpd-vhosts.conf をテキストエディターで開いて編集します。

httpd-vhosts.conf は httpd.conf ファイルの読み込み(Include)に記述されている /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf にあります。

ファイルを開くと最後の方に以下のようなサンプルが記載されています。

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any <VirtualHost> block.
#
<VirtualHost *:80>
  ServerAdmin webmaster@dummy-host.example.com
  DocumentRoot "/Applications/MAMP/Library/docs/dummy-host.example.com"
  ServerName dummy-host.example.com
  ServerAlias www.dummy-host.example.com
  ErrorLog "logs/dummy-host.example.com-error_log"
  CustomLog "logs/dummy-host.example.com-access_log" common
</VirtualHost>

<VirtualHost *:80>
  ServerAdmin webmaster@dummy-host2.example.com
  DocumentRoot "/Applications/MAMP/Library/docs/dummy-host2.example.com"
  ServerName dummy-host2.example.com
  ErrorLog "logs/dummy-host2.example.com-error_log"
  CustomLog "logs/dummy-host2.example.com-access_log" common
</VirtualHost>

<VirtualHost *:80>〜</VirtualHost> は複数設定することが可能です。

また、少なくとも DocumentRoot と ServerName は指定する必要があります。

  • DocumentRoot:サイトのディレクトリのパス
  • ServerName:ローカル環境でアクセスしたいホスト名

以下は追加例です。

<VirtualHost *:80>
    DocumentRoot "/Applications/MAMP/htdocs/example"
    ServerName example.localhost
</VirtualHost>

ドキュメントルートを変更している場合など環境によっては、<Directory> ディレクティブを使った以下のような記述の追加が必要かも知れません。

<Directory "/path/to/directory">
  order deny,allow
  allow from ALL
</Directory>

hosts ファイルの編集

hosts ファイルを編集してホスト名と IP アドレスをマッピングします。

hosts ファイルは隠しファイルになっているので、Shift + Command + . を押して表示させることができます。

ファイルの場所は /private/etc/hosts になります。

Finder での hosts ファイルの場所のスクリーンショット

hosts ファイルを開くと初期状態ではおそらく以下のようになっていると思います。

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1	localhost
255.255.255.255	broadcasthost
::1             localhost

このファイルにホストを追加します。

テキストエディタで編集

テキストエディタで編集するには、一度デスクトップなどにファイルをコピーして編集します。IP アドレス(127.0.0.1)とホスト名を追加します。

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1	localhost
255.255.255.255	broadcasthost
::1             localhost
127.0.0.1	example.localhost
127.0.0.1	foo.localhost #必要なだけ追加します

元の位置に戻して上書きします。

ファイルを上書きする際には以下のようなメッセージが表示されるので「認証」をクリックします。

etc にあるファイルを上書きする際に表示される警告のスクリーンショット

続いて以下が表示されるので「置き換える」をクリックし、パスワードの入力を求められるので入力します。

hosts ファイルを上書きする際の警告のスクリーンショット

ターミナルで編集

ターミナルを起動して sudo vi /private/etc/hosts と入力して enter を押すとパスワードを求められるので入力すると hosts ファイルが開きます。

i を押して INSERT モードにして矢印キーを使ってカーソルを一番下の右端まで移動し、改行して IP アドレスとホスト名を追加します。

IP アドレスとホスト名の間は tab キーを押すと適当なスペースが入力されます。

hosts ファイルを上書きする際の警告のスクリーンショット

追加したら、esc キーを押して INSERT モードを終了し :wq と入力後 enter を押して保存します。