サーバ上の WordPress をローカル環境(XPMPP)に移行する方法についてのメモ。
XPMPP のインストールはすでに完了しているものとして省略(XPMPP のインストールについては以下を参照ください)。
以下は www.webdesignleaves.com をローカル環境に移行する例。
サーバーからダウンロードした全てのファイルをローカル環境(XAMPP)の htdocs 以下に配置する。
サーバーの WordPress のデータベースを phpMyAdmin 等を使用してエクスポートする(またはバックアップソフトを使って作成された SQL ファイルを使用)。
「参考」:データベースのバックアップ(CodeX 日本語版)
サーバー側のディレクトリ構成と合わせるために、ローカル環境(XAMPP)でサブドメインを使用できるようにする。(オプション。必須ではない。)
通常 XAMPP の htdocs 以下にフォルダ(例:webdesignleaves)を作成してアクセスするには以下のような URL になる。
http://localhost/webdesignleaves/
これを以下のような URL でアクセスできるようにする
http://webdesignleaves.localhost/
サーバー上の実際の URL は
https://www.webdesignleaves.com/
方法は「ローカル環境(XAMPP)でサブドメインを使用」を参照。
データベースをバックアップしたファイル( SQL ファイル)をローカル環境に合うように編集する。
この例の場合
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 ファイルをインポート
phpMyAdmin を開き「データベース」タブをクリックしてデータベース名を入力し「照合順序」を「utf8_general_ci」に指定
左ペインのデータベース一覧に、作成したデータベースが表示されているので、クリックして選択してメニューから「インポート」をクリック
「参照」をクリックして編集した SQL ファイルを選択。
「ファイルの文字セット:」が「utf-8」、「フォーマット:」が「SQL」になっていることを確認して「実行」をクリック。
「インポートは正常に終了しました」と表示されれば成功
以下のように「インポートするデータを受信できませんでした。ファイル名が送信されていないか、ファイルサイズが PHP の設定で許可された最大値を超えています。」というエラーがでたらファイルの大きさを確認して、サイズが大きければ「C:\xampp\php」にある「php.ini」の「upload_max_filesize」と「post_max_size」を編集する。(変更後は 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」をローカル環境のデータベースに合わせるため編集する。
以下は 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 の「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
またセキュリティ設定などがあればそれらもローカル環境に合わせて修正する。オリジナルファイルはバックアップとして別名で保存しておくとよい。
最後にローカル環境でワードプレスが動作していることを確認して完了。