インターネット上で運営しているWordPressのサイト(httpsも対象)をローカル(自分のPCとか)にリストアして複製環境を作る方法について覚書。
https化されている場合は特に注意が必要なのでその点についても詳しく記載しています。
ローカルにインターネットに公開しているWordPressのサイトをローカル環境にリストアすれば、それをテスト環境として色々試すことができるようになります。
プラグインの動作確認やレイアウトの確認、記事の確認など、本番のサイトにアップする前にチェックやテストできる環境を作ることで公開しているサイトの不要なトラブルを未然に防ぐことができます。
ローカルにリストアする前に必要な準備作業
ローカルにリストアする前に必要な作業を以下に記載します。
インターネット上に公開しているWordPressサイトのフルバックアップを採取
WordPressは主にデータベース部分とファイル部分の2つにわかれています。
そのそれぞれをバックアップする必要がありますが、個別にやると色々と大変なので、WordPressのサイトをまるごとバックアップしてくれるプラグインの「BackWPup」を使ってバックアップします。
「BackWPup」の使い方については、この記事では省略しますが、「BackWPup」で採取したバックアップファイルをローカルにダウンロードして解凍しておきます。
ローカルの環境にWWWサービス、PHP、MySQLが動作する環境を作る
これも個別にインストールして設定するのはとても面倒なので、WordPressの動作環境に必要なコンポーネントがセットでインストールできる「XAMPP」を使います。
「XAMPP」のインストール方法等については、以下の記事を参照してください。
WordPressをローカル環境にリストアする
インターネット上のWordPressのフルバックアップとXAMPP(WWWサービス、PHP、MySQL)環境を前提に説明をします。
ここでは、インターネット上のサイトURLをwww.test.netと仮定し、ローカルに作成するサイト名を「test.net」と仮定して説明します。
バックアップしたファイルをhtdocsフォルダに配置
XAMPPインストールフォルダ配下のhtdocsフォルダに"test.net"フォルダを作成し、そのフォルダにバックアップしたフォルダとファイルをコピーします。
パスとしては、"C:\xampp\htdocs\test.net"フォルダにバックアップしたフォルダ(wp-admin、wp-content、wp-includes)とファイルがコピーされている状態です。
MySQLにデータベースを作成する
MySQLに空のデータベースを作成します。
作成するデータベースの名前は、バックアップしたファイルにある"wp-config.php"ファイルの"define('DB_NAME'"で指定されているデータベースと同じ名前にします。
また、データベースを作成する際に指定する"照合順序"には、"utf8_general_ci"を指定します。
データベースのリストア
WordPressのバックアップファイルを解凍したフォルダの直下に"データベース名.sql"ファイルが有りますので、そのファイルを文字コードUTF8で開けるエディタで開きます。
エディタがメモ帳しかない場合は、サクラエディタでもインストールしてもらえばよいです。
"データベース名.sql"ファイルをエディタで開いたら文字列置換機能を使って以下のように文字列を変換し、上書き保存します。
置換前
www.test.net
置換後
localhost/test.net
httpsの場合
最近レンタルサーバーの多くは無償でSSL化のサービスを提供している場合が多いので"https://XX"からローカル環境に展開するケースも有るかと思います。
ローカル環境は当然ながら"http"で始まるので"https"からの展開の際は置換文字列を必ずURLの頭から含めるようにしてください。
例えば、"https://www.test.net"をローカル環境に展開する場合は、置換対象が"https://www.test.net"、置換後が"http://localhost/test.net"になります。
また、もしあなたがWordPressのテーマに"simplicity"を使っていている場合は、ローカル環境展開後に[外観] > [カスタマイズ] > [その他]の設定にある"内部URLをSSL対応"のチェックがオンになっていたらオフにしてください。
これをオフにしないと内部リンクのURLが自動で"https"に変わってしまい、リンクエラーとなってしまいます。
置換対象のURLの文字列にURLの最後の"/"は絶対に含めないでください。
例えば、"http://www.test.net"までなら良いですが、"http://wwww.test.net/"はNGです。
MySQLの管理画面から、作成した空のデータベースを指定して文字列置換後の"データベース名.sql"ファイルをインポートします。
これでデータベースがローカル環境にリストアされたことになります。
"wp-config.php"ファイルの編集
バックアップを解凍してできたフォルダの直下に"wp-config.php"というファイル名のファイルがありますので、その中身をローカルの環境に合わせて編集する必要があります。
まず最初に"wp-config.php"ファイルのデータベースへのログインユーザー名を編集します。
ここでのログインユーザー名は、WordPressへのログインユーザー名ではなく、ローカルのデータベース(MySQL)に対するログインユーザー名となります。
例えば、MySQLへのログインユーザー名が"root"であるなら以下のように編集します。
define('DB_USER', 'root'); 次に上記で指定したユーザーでデータベースへログインする際のパスワードを指定します。
例えば、"root"ユーザーのパスワードが"password"であるなら以下のようになります。
define('DB_PASSWORD', 'password'); 次にデーベースのホスト名の指定を編集します。
通常であれば"localhost"で良いので以下のように編集します。
define('DB_HOST', 'localhost'); 上記の編集が終了したら"wp-config.php"ファイルを上書き保存します。
".htaccess"ファイルの編集
バックアップを解凍してできたフォルダの直下に".htaccess"という名前のファイルが有りますので、その中身をローカルの環境に合わせて編集します。
まず最初に、「# BEGIN WordPress」 から 「# END WordPress」までの行を残して、それ以外の記載を全て削除します。
次に"RewriteBase /"という記載を、"RewriteBase /ローカルのサイト名/"に変更します。
例えばローカルに作成するサイト名を「test.net」と仮定した場合、記載は以下のようになります。
RewriteBase /test.net/
次に"RewriteRule . /index.php [L]"という記載を、"RewriteRule . /サイト名/index.php [L]"に変更します。
例えばローカルに作成するサイト名を「test.net」と仮定した場合、記載は以下のようになります。
RewriteRule . /test.net/index.php [L]
編集が終了したら上書き保存します。
以上でインターネット上のWordPressサイトをそっくりそのままの状態でローカル環境にリストアできたはずです。
ローカル環境のURLは、http://localhost/サイト名 となります。
例えばローカルに作成するサイト名を「test.net」と仮定した場合、ローカル環境のWordPressのURLは以下のURLとなります。
"http://localhost/test.net"
WordPressにログインする際のユーザー名とパスワードは、インターネット上のWordPressサイトと同じです。
ローカル環境を使ってテストする際の注意
ローカル環境を構築して色々テストしたり、記事の下書きを書いたりしてそれをもとにインターネットに公開している本番サイトに変更を加えるときは、リンクが正しい本番環境のリンクになっているか必ず確認してください。
例えばローカル環境で記事を書いてそれを本番環境にコピペしてアップする際など、記事中の内部リンクURLが正しい本番サイトのリンクURLになっているか確認してください。
間違ってテスト環境のリンクURLのままアップしてしまうと他のユーザーからはリンクエラーになってしまいます。
自分の環境だとテスト環境も参照できるため、リンクエラーとはならず気づきづらいです。
まとめ
インターネット上のWordPressサイトをローカル環境にリストアして複製する方法についてほんとに雑にざっくりと書きました。
画面ショットや各ステップの詳細手順もなく、経験のない人にはとても不親切な記事になってしまいましたが、とりあえず自分が忘れないうちに記録しておきたかったためとりあえず覚書きしました。
何れ時間があるときに詳細に書き直してわかりやすい記事にしたいと思っています。
コメント