wordpressの本番サイトをローカル環境に再構築するための6ステップ

公開日:2013/09/26 更新日:2013/09/26
wordpressの本番サイトをローカル環境に再構築するための6ステップのサムネイル

レンタルサーバ上にある本番サイトを、ローカル環境のwordpress上に複製サイトとして再構築するための方法と手順をメモします。

2536017020_7e60132e51_z.jpg                       

Original Update by Nikolay Bachiyski

実行環境

Macbookpro, Mac OS X ver10.6.8、MAMP + wordpressという環境で試しました。MAMPの設定は以下のようにデフォルトのままです。

  • 使用するポート番号はApacheが8888番、MySQLが8889番

    mamp_port.png

  • Apacheのドキュメントルートは/Applications/MAMP/htdocs/

    mamp_root.png

方法概要

ローカル環境に本番サイトを再構築するためには以下のステップが必要になります。

  • ステップ1:本番サイトのデータベースをエクスポートする
  • ステップ2:本番サイトのwordpressフォルダを丸ごとローカル環境にコピー
  • ステップ3:ステップ1でエクスポートしたデータベースファイル内のURLをローカル環境用に置換する
  • ステップ4:ローカル環境のphpMyAdminで新しいデータベースを作成
  • ステップ5:ステップ3でURLを置換したデータベースファイルをステップ4で作成したデータベースへインポート
  • ステップ6:wp-config.phpを修正
以降で各ステップについて説明します。

本番環境でやること

ステップ1:本番サイトのデータベースをエクスポートする

本番サイトのデータベースのエクスポートは、本番サイトが設置されているサーバのphpMyAdminから行います。 使用しているレンタルサーバによってphpMyAdminへのアクセス方法は異なりますが、いずれにせよphpMyAdminにアクセスすると、以下のようなログイン画面が出るはずです。

phpmyadmin_login.png ログイン画面でユーザ名とパスワードを入力すると、以下のような画面が出ます。そして以下の画面の左側の赤線枠部分のように、作成済みのデータベース名が表示されています。下の場合は「databaseA」、「infomation_schema」が作成済みのデータベースになります。

export1.png

そして、上の画面左側の赤線枠内の本番サイトが使用しているデータベース名(ここではdatabaseAとします)をクリックすると、以下の画面になります。以下の画面内の下の方にある、「すべてチェックする」をクリックし、その後「チェックしたものを」をクリックします。

export2.png

すると、以下のように、「エクスポート」という選択肢が表示されるので、「エクスポート」をクリックします。

export3.png

すると、以下のようにエクスポートの設定画面になり、最後に「実行する」をクリックすると、databaseA.sqlというファイルのダウンロードが始まります。これは、databaseAの中身が記述されたsqlファイル(拡張子が.sqlのファイルです。)です。ちなみにこの画面の設定は何も変更しませんでした。

export4.png 以上で本番サイトのデータベースのエクスポートは完了です。後ほど、このエクスポートしたデータベースをローカル環境の複製サイト用にインポートします。

ステップ2:本番サイトのwordpressフォルダを丸ごとローカル環境にコピー

具体的には、本番サイトのwordpressフォルダ(wp-admin、wp-content、wp-includesフォルダが置いてあるフォルダのことです。)をローカルのドキュメントルートである「/Application/MAMP/htdocs/」に丸ごとコピーします。このとき、すでにローカル環境にwordpressがインストール済みであり、ドキュメントルートであるhtdocsにwordpressフォルダが存在する場合は、フォルダ名を別の名前に変えてhtdocsに置きます。ここでは、以下のように、「wordpress_B」という名前に変えてhtdocsに置きました。

wordpress_B.png

以上で本番環境での作業は完了です。

ローカル環境でやること

ステップ3:ステップ1でエクスポートしたデータベース(databaseA.sql)内のURLをローカル環境用に置換する

ステップ1でエクスポートしたデータベースファイルである「databaseA.sql」を適当なエディタで開きます。私は「Sublime Text2」というエディタを使用しました。

そしてsqlファイル内に、本番サイトのURL「https://www.virment.com」が記述されている部分が多数見つかると思います。このURLをローカル環境のURL「http://localhost:8888/wordpress_B」に置換します。ここで、ローカル環境のURLはドキュメントルートに置いたフォルダ名である「wordpress_B」に合わせて下さい。

ただし、本番サイトのURLとして、「https://virment.com」が記述されている場合があるので、エクスポートしたデータベースファイル内の本番サイトのURLらしきものを全て忘れずにローカル環境用に置換するよう気をつけて下さい。 なおこの置換作業にはsublime text2を使用しました。

ステップ4:ローカル環境のphpMyAdminで新しいデータベースを作成

ここで作成するデータベースが、本番サイトのデータベースであるdatabaseAのインポート先になります。 ローカルのphpMyAdminにログインすると以下のような画面になります。この画面の赤線枠部分の「データベース」をクリックします。

database_create1.png

すると、以下の画面のように「データベースを作成する」という項目があるので、そこに適当な名前を入力して「作成」をクリックします。以下の場合は「databaseB」というデータベースが新しく作成されます。

database_create2.png 以上でローカル環境に再構築する複製サイト用データベースの作成は完了です。ここで新しく作成した「databaseB」にステップ1でエクスポートしたdatabaseAをインポートします。

ステップ5:ステップ3でURLを置換したデータベースファイルdatabaseA.sqlをステップ4で作成したデータベースdatabaseBへインポート

ステップ3でURLを置換したデータベースファイル「databaseA.sql」をステップ4で作成した「databaseB」へインポートします。 まずはローカルのphpmyadminの左側に表示されている「databaseB」をクリックします。

import1.png

その後、以下の画面上方の赤線枠内の「インポート」をクリックすると、インポート画面になります。そしてインポート画面では、以下のように「アップロードファイル:ファイルを選択 選択されていません」と表示されている部分があります。ここで、「ファイルを選択」をクリックして、databaseA.sqlを選択します。選択後、最後に同じ画面の一番下に「実行」というボタンがあるので、これをクリックすればインポートは完了です。

import2.png

ステップ6:「wordpress_B」フォルダ内にあるwp-config.phpを修正

具体的には、wordpress_Bフォルダ内にあるwp-config.php内のデータベース名、データベースユーザ名、ユーザパスワード、ホストネームを以下のように修正します。

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'databaseB'); ←ここのデータベース名を「databaseB」に変更

/** MySQL database username */
define('DB_USER', 'root');    ←データベースユーザ名を変更

/** MySQL database password */
define('DB_PASSWORD', 'root');  ←パスワードを変更

/** MySQL hostname */
define('DB_HOST', 'localhost'); ←ローカル環境用に「localhost」に変更

/** Database Charset to use in creating database tables. */
define('DB_CHARSET', 'utf8');

/** The Database Collate type. Don't change this if in doubt. */
define('DB_COLLATE', '');

データベース名を本番サイトのデータベースをインポートした「databaseB」に変更します。また、データベースユーザ名とそのパスワードをローカル環境のphpMyAdminと同じものに変更します。なお、デフォルトではこれらはどちらとも「root」である可能性が高いです。

以上で本番サイトをローカル環境に再構築できていると思います。確認のために、ブラウザ上で「http://localhost:8888/wordpress_B」にアクセスしてみて下さい。これで本番サイトと同じサイトが表示されていれば成功です。また、同様に「http://localhost:8888/wordpress_B/wp-login.php」にアクセスすれば、管理画面に入れます。ちなみに、http://localhost:8888/wordpressにアクセスすれば、すでにローカル環境に存在していたサイトにアクセスできるはずです。 なので、この方法ならばローカル環境に複数のサイトを再構築できます。もし、ローカル環境に、すでに存在するサイトとは別のサイトを新しく追加したい場合は、ローカル環境のwordpressに複数のテストサイトを構築して管理する方法が参考になるかもしれませんので参照下さい。 また、もし以上の方法でうまくいかない場合は、以下が参考になるかもしれません。

うまくいかない場合

wordpressの管理画面は表示できるが、複製サイトを開くと本番サイトにリダイレクトされてしまう

この場合は、wp-config.php内に以下の2行を追記することで解決できます。

/** The Database Collate type. Don't change this if in doubt. */
define('DB_COLLATE', '');

define ('WP_SITEURL', 'http://localhost:8888/wordpress_B/'); ←これを追記
define ('WP_HOME', 'http://localhost:8888/wordpress_B/'); ←これを追記

wordpress_Bの部分は、各自が付けたwordpressフォルダの名前に置き換えて下さい。

ローカル環境に再構築した複製サイトのトップページ以外のページが表示されない

この場合は、wordpressフォルダ内にある「.htaccess」の編集が必要な可能性が高いです。例えば、wordpress_B内にある「.htaccess」は以下のようになっていました。(実際には、他の記述もありますが、そこはローカル環境においては関係ないので載せていません。また修正する必要もないです。)そしてこのままでは、「http://localhost:8888/wordpress_B」にアクセスしてトップページは開けるものの、他のページに移動すると「Not Found」と表示されてしまいました。

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

# END WordPress

そこで、以下のように「.htaccess」を修正しました。その結果、問題なくトップページ以外も表示されるようになりました。

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wordpress_B/ ←ここを修正
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress_B/index.php [L] ←ここを修正
</IfModule>

# END WordPress

つまり、上のように「RewriteBase」と「RewriteRule」で指定しているURLの部分を、複製サイトのwordpressフォルダである「wordpress_B」のURLに変更することで解決できます。 ちなみに、.htaccessには他の記述もあると思いますが、ローカル環境で動かす分にはそれらの記述はコメントアウトしても大丈夫だと思います。もちろん自己責任でお願い致します。

また、以上の「.htaccess」はデフォルトの場合だとFinder上には表示されません。よって、編集する場合は、ターミナルからコマンドで編集するか、もしくは他のエディタから開いて編集する必要があります。例えば、私が使っているSublime Text2だと、「.htaccess」も開くことができ、おすすめです。

関連記事

開発アプリ

nanolog.app

毎日の小さな出来事をなんでも記録して、ログとして残すためのライフログアプリです。