wordpress サーバ上の WordPress をローカル環境に移行する方法

2014年4月28日

サーバ上の WordPress をローカル環境(XPMPP)に移行する方法についてのメモ。

XPMPP のインストールはすでに完了しているものとして省略(XPMPP のインストールについては以下を参照ください)。

以下は www.webdesignleaves.com をローカル環境に移行する例。

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

サーバーからダウンロードした全てのファイルをローカル環境(XAMPP)の htdocs 以下に配置する。

サーバーのデータベースのバックアップ

サーバーの WordPress のデータベースを phpMyAdmin 等を使用してエクスポートする(またはバックアップソフトを使って作成された SQL ファイルを使用)。

  • サーバーの phpMyAdmin にログインし、データベースタブをクリックして 目的の WordPress のデータベースを選択(または左側ペインからデータベースを選択)。
  • エクスポートをクリック。

    wp_transfer_05

  • 「エクスポート方法:」で「詳細」を選択。

    wp_transfer_06

  • 「テーブル:」で全て選択されていることを確認。(または選択)
  • 「生成オプション 追加コマンド:」の「DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT コマンドを追加する」にチェックを入れる。

    wp_transfer_07

  • 後は全てデフォルトで「実行」をクリック。

    wp_transfer_08

  • 「データベース名.sql」というファイルがエクスポート(生成)される。

    wp_transfer_09

「参考」:データベースのバックアップ(CodeX 日本語版)

ローカル環境(XAMPP)でサブドメインを使用

サーバー側のディレクトリ構成と合わせるために、ローカル環境(XAMPP)でサブドメインを使用できるようにする。(オプション。必須ではない。)

通常 XAMPP の htdocs 以下にフォルダ(例:webdesignleaves)を作成してアクセスするには以下のような URL になる。

http://localhost/webdesignleaves/

これを以下のような URL でアクセスできるようにする

http://webdesignleaves.localhost/

サーバー上の実際の URL は

http://www.webdesignleaves.com/

方法は「ローカル環境(XAMPP)でサブドメインを使用」を参照。

データベースのバックアップファイルの編集

データベースをバックアップしたファイル( SQL ファイル)をローカル環境に合うように編集する。

  • バックアップしたファイルを別名で保存して、そのファイルを使用するとよい。
  • テキストエディタ(UTF-8N対応)でファイルを開き、サーバー環境の URL の部分をローカル環境の URL に書き換える。

この例の場合
www.webdesignleaves.com/wp を
webdesignleaves.localhost/wp に
テキストエディタを使って一括置換。

追加情報 2015.2.23

データベース内で保存されている内容がシリアライズされている可能性があるので(プラグイン等)、単にテキストエディタを使って一括置換では、うまくいかない場合もあるらしい。以下参照。

WordPressの引っ越しに便利な wp search-replace(Gatespace)

この例では WordPress を「wp」以下に配置してあるが、それぞれの環境に合わせて変換する。

通常の場合、置換の対象に「http://」の部分を含めても問題ないと思うが、マルチサイトの場合では、「xxxx_blogs」テーブルや「xxxx_site」テーブルがあり、それらの「domain」の値には「http://」は含まれていないので、置換の際には「http://」の部分は含めないほうがよいと思う。

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

ローカル環境(XAMPP)のデータベースに編集した SQL ファイルをインポート

  • ローカル環境(XAMPP)に空のデータベースを作成。
  • 空のデータベース作成の際の、データベース名は「wp-config.php」の修正時に使用するのでひかえておく。
  • ローカル環境(XAMPP)の phpMyAdmin を使用して、編集した SQL ファイルをインポートする。
  • 問題がなければ、インポートが完了する。
  • 編集した部分の文字コードが違っていたりするとエラーになることがある。

phpMyAdmin を開き「データベース」タブをクリックしてデータベース名を入力し「照合順序」を「utf8_general_ci」に指定

wp_transfer_01

左ペインのデータベース一覧に、作成したデータベースが表示されているので、クリックして選択してメニューから「インポート」をクリック

wp_transfer_02

「参照」をクリックして編集した SQL ファイルを選択。
「ファイルの文字セット:」が「utf-8」、「フォーマット:」が「SQL」になっていることを確認して「実行」をクリック。
「インポートは正常に終了しました」と表示されれば成功

wp_transfer_03

以下のように「インポートするデータを受信できませんでした。ファイル名が送信されていないか、ファイルサイズが PHP の設定で許可された最大値を超えています。」というエラーがでたらファイルの大きさを確認して、サイズが大きければ「C:\xampp\php」にある「php.ini」の「upload_max_filesize」と「post_max_size」を編集する。(変更後は XAMPP を再起動)

wp_transfer_04

  • 初期設定では「upload_max_filesize=2M」になっているのでこの値を変更
  • 値を「20M」に変更すると「post_max_size=8M」の値が最大値として適用される
  • ファイルサイズにより両方の値を調整する
  • 変更後は XAMPP を再起動する
; Maximum size of POST data that PHP will accept.
; Its value may be 0 to disable the limit. It is ignored if POST data reading
; is disabled through enable_post_data_reading.
; http://php.net/post-max-size
;770行目付近
post_max_size=8M

;920行目付近
; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
upload_max_filesize=2M

wp-config.php の修正

ローカル環境の「wp-config.php」をローカル環境のデータベースに合わせるため編集する。

以下は XAMPP をデフォルトでインストールしてある場合の例。

以下の部分をローカル環境のデータベースの設定に変更

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

/** MySQL データベースのユーザー(ログイン)名 */
define('DB_USER', 'root');

/** MySQL データベースのパスワード (設定してあれば指定。なければ空)*/
define('DB_PASSWORD', '');

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

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

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

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

バックアップとして元々あったオリジナルフィルを「wp-config_original.php」等に別名で保存しておくとよい。

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

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);

.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

またセキュリティ設定などがあればそれらもローカル環境に合わせて修正する。オリジナルファイルはバックアップとして別名で保存しておくとよい。

最後にローカル環境でワードプレスが動作していることを確認して完了。