XAMPPでサーバー上のWordPressサイトをローカル環境にまるごとコピーする方法

SEROの嫁です。
夫とニコ生で喋ったり、ブログに投稿したりしています。
2級ウェブデザイン技能士。

この記事は2017年8月15日に書かれたものです。
現在は内容が古い可能性もありますのでご注意ください。

XAMPP(ザンプ)」というフリーソフトを使うと、ローカル環境で疑似サーバーを構築することができます。
→ XAMPP Installers and Downloads for Apache Friends

以前、そのXAMPPでWordpressのテスト環境を作る方法を紹介しました。

XAMPPでWindows PCにWordPressのテスト環境を作成する方法

この時は、ローカル環境にまっさらなWordpressをインストールするというものでした。

今回は、レンタルサーバーなどにアップロード済みの既存のサイトを、ローカルに丸ごと移行する方法を紹介したいと思います。

サイトデータのバックアップ

まずは現在サイトを置いているサーバーから、サイトデータとデータベースをダウンロードします。

ダウンロード方法については、以前の記事を参照してください。
→ WordPressサイトをさくらインターネットからXserverへ移転する!
→ wordpressサイトをxserverからbluehostへ移行する・PART1

 

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

データのバックアップができたら、まずデータベースをインポートします。

インポートの前に、XAMPP側でデータベースを新規作成しておく必要があります。

  1. XAMPPのコントロールパネルで、MySQLの「Admin」をクリックします。
    (ApacheとMySQLは起動済みの状態です)

     
  2. phpMyAdmin」がブラウザで起ち上がるので、上のメニューから「データベース」をクリック。

     
  3. データベースを作成する」で、データベースの名前(任意)を入力したら「作成」をクリック。

     
  4. 次に、作成されたデータベースの「インポート」タブをクリックし、「File to import」でエクスポートしておいたデータベースを選択して「実行」をクリックします。

     
  5. 「インポートは正常に終了しました」とメッセージが表示されればOKです。

     

ファイルが大きすぎてインポートできない場合の対処法はこちらを参照ください。
→ XAMPPで、大きいファイルがphpMyAdminでインポートできない時の対処法

 

データベースのサイトURLを修正

次に、インポートしたデータベースに記載されているURLを2カ所、修正します。

  1. データベースのテーブルから「wp_options(wp_の部分はインストール時の接頭辞に拠ります)」をクリック。

     
  2. option_namesiteurl」の「編集」をクリック。

     
  3. サイトのドメインが書いてある部分を、ローカルの環境に合わせて修正します。URLは「http://localhost/フォルダ名」のようになります。
    「フォルダ名」は、Wordpressのサイトデータを入れるフォルダ(次の手順で説明)と同じ名前にします。修正したら「実行」をクリック。

     
  4. 同じように、「option_namehome」の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サイトをコピーする手順の紹介でした。

サーバー間の移転とさほど変わらない…というか、むしろ簡単ですね。
ただ、最後の最後でつまずく事があるので、自環境に合わせた細かい調整は必要みたいです。