サーバーのWordPressをローカルに移行する


以前、ローカルのWordPressをサーバーに移行するを書いたのですが、その逆のサーバーのWordPressをローカルに移行したいと思います。

Windows10をクリーンインストールしたのでローカルのデータがなくなりました。
何か変更したい時に直接サーバーをいじるのでは怖いので、ローカル環境で試すためにサーバー内のデータを移行しました。

ローカルのWordPressをサーバーに移行するでやった作業と逆のことをやればいいわけです。
ローカル環境はXAMPPを使用します。XAMPPインストールはローカルに開発環境を簡単に構築できるXAMPPをインストールを参考にしてください。

スポンサーリンク

サーバーのphpmyAdminでデータベースエクスポート

サーバー内のデータベース(WordPress投稿記事等はデータベース内にあります。)をsql形式で吐き出します。

まずはサーバーのコントロールパネルにログインしてデータベースにアクセスします。
使用しているサーバーがロリポップ!なのでロリポップ上でのデータベース操作になります。
他のレンタルサーバーご利用の方は、そのサーバー環境に合わせて作業してください。

ログインしたら、左サイドメニューの「WEBツール」-「データベース」を選択します。


エクスポートしたい対象のデータベースの「操作する」をクリックします。


この画面で表示されているユーザー名やサーバーを後ほど使用します。
「phpMyAdminを開く」をクリックします。


先ほど表示されていたユーザー名やサーバーを入力・選択して「実行する」をクリックします。


エクスポートしたい対象のデータベースを選択します。


「エクスポート」タブをクリックします。


エクスポート方法の「詳細-可能なオプションを全て表示」を選択します。


テーブルを「全選択」しておきます。


出力の圧縮方法ではzipを選択しました。
データがそんなにないときは圧縮しなくてもいいのですが、データが増えてくると圧縮しないとインポートできません。インポート時に使用できるファイル容量が2,048KBなので、容量オーバーする場合は圧縮します。


生成オプションには「DROP TABLE / VIEW /PROCEDURE / FUNCTION / EVENT コマンドを追加する」にチェックを入れます。


「実行する」をクリックします。

任意のフォルダにダウンロードします。ダウンロードしたファイルは後ほど使うので、どこにダウンロードしたか忘れないようにしてください。

FTPでWordPressをダウンロード

FTPツール※1を使用してサーバーからダウンロードします。
※1私は最近FileZillaを使用しています。
任意の場所にフォルダごとダウンロードします。


ダウンロードしたファイルをC:\XAMPP\htdocsフォルダ内にコピーします。XAMPPインストール先のhtdocsフォルダ内に格納するので、インストール環境に合わせて格納してください。
直接C:\XAMPP\htdocsフォルダにダウンロードしてもいいのですが、ローカル用に修正するのでバックアップ用としてXAMPP格納場所以外に保存しておきました。


コピーしたWordPressのwp-config.phpをローカル用に変更します。

// ** MySQL 設定 - この情報はホスティング先から入手してください。 ** //
/** WordPress のためのデータベース名 */
define('DB_NAME', '●●●●●-●●●●●');

/** MySQL データベースのユーザー名 */
define('DB_USER', '●●●●●');

/** MySQL データベースのパスワード */
define('DB_PASSWORD', '●●●●●');

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

●●●●●の部分は、ご自身で作成した値を設定します。
ユーザー名やパスワードを特に何も設定していない場合は、下記に修正します。

// ** MySQL 設定 - この情報はホスティング先から入手してください。 ** //
/** WordPress のためのデータベース名 */
define('DB_NAME', '●●●●●-●●●●●');

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

/** MySQL データベースのパスワード */
define('DB_PASSWORD', '');

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

ローカル上にデータベースを作る

XAMPPを使ってデータベースにアクセスします。
XAMPPを起動してApacheとMySQLをStartさせます。


ローカルのXAMPPコントロールのMySQL行の「Admin」をクリックしてphpMyAdminを立ち上げます。


ログインします。


グローバルナビの「データベース」タブをクリックします。


任意のデータベース名を記入して「作成」ボタンをクリックします。


データベースが作成されました。

ローカルのphpmyAdminでデータベースをインポート

作成したデータベースにサーバーからエクスポートしたデータを移行していきます。
作成したデータベースを選択し、「インポート」タブをクリックします。


「ファイルを選択」して先ほどエクスポートしたzipファイルを選択し、「実行」をクリックします。


データベースがインポートされました。

インポートしたテーブルの内容をローカル用に置換

インポートしたデータベースはサーバー用のURLなので、ローカル用のURLに変換します。

ローカルURL・・・http://サーバー名/
サーバーURL・・・http://localhost/WordPressフォルダ名/

Search and Replace for WordPress Databases Scriptというスクリプトを使ってURL変換を行います。

サイトからSearch and Replace for WordPress Databases Scriptをダウンロードします。


ダウンロードしたSearch and Replace for WordPress Databases Scriptを解凍し、C:\XAMPP\htdocs\WordPressフォルダ名 に配置します。
XAMPPインストール環境に合わせて格納してください。


ローカルに配置したファイルにアクセスします。

http://localhost/WordPressフォルダ名/Search-Replace-DB-master/
をひらくと下記画面が開きます。


database欄は、自動的に入っていました。
replaceにサーバーURLの「http://サーバー名/」をwithにローカルURLの「http://localhost/WordPressフォルダ名/」を指定します。
infoScoop開発者ブログさんの中で、replaceにhttp(s)や/(スラッシュ)を付与しない方がいいみたいなことが書いてあったので、http://以下を指定して置換しました。

replace・・・サーバー名/
with・・・localhost/WordPressフォルダ名/

「dry run」をクリックすると、どれだけ変更する箇所があるかが一覧で表示されるだけで置換はされません。


「live run」をクリックすると「Are you absolutely ready to run search/replace?~」のメッセージが表示されるので、「OK」をクリックします。


置換されました。


置換が終了したら「delete me」を押してSearch and Replace for WordPress Databases Scriptを削除します。


本当に削除していいの?みたいなメッセージが表示されるので、「OK」をクリックします。


削除されました。

.httaccessをローカル用に合わせる

サーバー環境とローカル環境でディレクトリ階層が合っていないので、「.httaccess」を変更します。

WordPressをルートディレクトリにインストールしている場合

# BEGIN WordPress 
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

WordPressを「memorandums」というサブディレクトリにインストールしている場合

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On RewriteBase /memorandums/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /memorandums/index.php [L]
</IfModule>
# END WordPress

これで作業は終了です。お疲れ様です。