「XAMPP(ザンプ)」というフリーソフトを使うと、ローカル環境で疑似サーバーを構築することができます。
→ XAMPP Installers and Downloads for Apache Friends
以前、そのXAMPPでWordpressのテスト環境を作る方法を紹介しました。
この時は、ローカル環境にまっさらなWordpressをインストールするというものでした。
今回は、レンタルサーバーなどにアップロード済みの既存のサイトを、ローカルに丸ごと移行する方法を紹介したいと思います。
サイトデータのバックアップ
まずは現在サイトを置いているサーバーから、サイトデータとデータベースをダウンロードします。
ダウンロード方法については、以前の記事を参照してください。
→ WordPressサイトをさくらインターネットからXserverへ移転する!
→ wordpressサイトをxserverからbluehostへ移行する・PART1
データベースのインポート
データのバックアップができたら、まずデータベースをインポートします。
インポートの前に、XAMPP側でデータベースを新規作成しておく必要があります。
- XAMPPのコントロールパネルで、MySQLの「Admin」をクリックします。
(ApacheとMySQLは起動済みの状態です)
- 「phpMyAdmin」がブラウザで起ち上がるので、上のメニューから「データベース」をクリック。
- 「データベースを作成する」で、データベースの名前(任意)を入力したら「作成」をクリック。
- 次に、作成されたデータベースの「インポート」タブをクリックし、「File to import」でエクスポートしておいたデータベースを選択して「実行」をクリックします。
- 「インポートは正常に終了しました」とメッセージが表示されればOKです。
ファイルが大きすぎてインポートできない場合の対処法はこちらを参照ください。
→ XAMPPで、大きいファイルがphpMyAdminでインポートできない時の対処法
データベースのサイトURLを修正
次に、インポートしたデータベースに記載されているURLを2カ所、修正します。
- データベースのテーブルから「wp_options(wp_の部分はインストール時の接頭辞に拠ります)」をクリック。
- 「option_name>siteurl」の「編集」をクリック。
- サイトのドメインが書いてある部分を、ローカルの環境に合わせて修正します。URLは「http://localhost/フォルダ名」のようになります。
「フォルダ名」は、Wordpressのサイトデータを入れるフォルダ(次の手順で説明)と同じ名前にします。修正したら「実行」をクリック。
- 同じように、「option_name>home」のURLも修正します。
サイトデータをローカルにコピー
ダウンロードしたサイトのデータを展開(解凍)し、「C:\xampp\htdocs\先ほど付けたフォルダ名」へ丸々コピーします。
wp-config.phpの修正
コピーしたサイトデータのフォルダから「wp-config.php」をテキストエディタなどで開き、下記の箇所を修正します。
/** WordPress のためのデータベース名 */
define('DB_NAME', 'wp_test');
/** MySQL データベースのユーザー名 */
define('DB_USER', 'root');
/** MySQL データベースのパスワード */
define('DB_PASSWORD', '');
/** MySQL のホスト名 */
define('DB_HOST', 'localhost');
データベース名 | 先ほど新規作成したデータベース名 |
---|---|
データベースのユーザー名 | root |
データベースのパスワード | 空白 |
ホスト名 | localhost |
修正したら、上書き保存します。
サイトを確認する
これで一通り作業が終了したので、ブラウザでサイトを開いてみましょう。
URLは「http://localhost/フォルダ名」です。今回のサンプルの場合は「http://localhost/wp_test」ですね。
WordPressにログインする場合は、「http://localhost/wp_test/wp-login.php」となります。
うまく表示されない場合
私の場合、ここまでの手順でサイトのトップページは表示できたんですが、それ以外のページを表示しようとすると下図のようなエラーが出てしまいました。
XAMPPのダッシュボードが表示される場合もあるようです。
この場合、「.htaccessファイル」が影響している可能性があります。
コピーしたサイトデータの中から「.htaccess」をテキストエディタなどで開き…
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
これを、下記のように修正します。
# BEGIN WordPress
RewriteEngine On
RewriteBase /wp_test/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wp_test/index.php [L]
# END WordPress
これで上書き保存したところ、全てのページを表示することができました。
その他、プラグインなどが自動で書き込んだコードが影響することもあるので、不要な記述を消してみるなどするとうまくいくかもしれません。
以上、XAMPPにWordpressサイトをコピーする手順の紹介でした。
サーバー間の移転とさほど変わらない…というか、むしろ簡単ですね。
ただ、最後の最後でつまずく事があるので、自環境に合わせた細かい調整は必要みたいです。