既存のWordPressサイトをローカル(vagrant等)に移行方法(MySqlエクスポート)
2014.01.03
この記事は最終更新日から1年以上が経過しています。
久しぶりにWordpressについて。
既存のWordPressサイトをそのままローカルに持って来たかったので、その手順についてとなります。
ファイルダウンロード
既存のWordPressファイルをftpを用いてファイルまるまるダウンロードを行います。
ローカルのVagrantディレクトリに格納しましょう。
(ここらへんの手順は割愛させて頂きます。)
MySQLエクスポート
まずは、既存のWordPressのデータをエクスポートします。
お使いのwebサービスのphpMyAdminからエキスポートすることが出来ます。
ここでは、ロリポップを例とします。
まず、ログインし管理画面のメニュー「WEBツール」より「データベース」を選択。
すると、「.phpMyAdminを開く」のボタンが表示しますのでクリック。
phpMyAdminのログインページといきますので、mySQLの ユーザーidとパスワードを入力し、ログインします。
画面右上のメニューに「エクスポート」のタブがありますのでクリック。
すると、「エキスポート方法」が表れますので、「詳細」を選択します。
(違いを確認していないので、取り敢えず選択しました。)
ほぼデフォルトで大丈夫かと思いますので、
そのまま、画面下の「実行する」ボタンをsqlがエキスポートされ「DBネーム.sql」ファイルがダウンロードされます。
WordPress config修正
ローカル用のデータベースの作成を行います。
mysql> CREATE DATABASE データベース名;
この際、MySQLのパスワードは簡易なパスワードに変更しておいて良いかと思います。
パスワード変更のsql文は以下となります。
mysql > SET PASSWORD FOR root@localhost=PASSWORD('NEWPASSWORD');
WordPressの設定ファイルである「wp-config.php」を編集します。
ローカル環境と本番環境で切り替えを行いたいので、「ホスト」で判別しデータベースの設定を変えます。
$hostname = $_SERVER['SERVER_NAME']; if ( $hostname === ‘ローカルホスト名' ) { define('DB_NAME', ‘ローカルDB'); define('DB_USER', 'root'); define('DB_PASSWORD', ‘ローカルpass'); define('DB_HOST', 'localhost'); } else if ($hostname === ‘本番ホスト名' ) { define('DB_NAME', ‘本番DB名'); define('DB_USER', ‘本番ユーザー名'); define('DB_PASSWORD', ‘本番pass'); define('DB_HOST', '本番ホスト'); }
ローカルホスト名〜〜 の設定は先ほど作成したdbの設定を記述します。
本番ホスト名〜〜 は既存のデータを記述します。
ローカルデータベース インポート
エクスポートしたsqlファイルをローカルのデータベースにインポートします。
mysql -u root -p --default-character-set=utf8 foo_db < dump.sql[/code] foo_dbはローカルのdb名。dump.sqlはエキスポートしたファイルを指定。 この状態でローカルのwordpressは接続(アクセス)可能となりますが、 wp_optionsの"siteurl"と"home"の値が本番のままなので、こちらを変更しないと遷移がおかしな事になってしまいます。 現在の値を調べるには [code]mysql> select * from wp_options WHERE option_name="siteurl"; mysql> select * from wp_options WHERE option_name="home”;
値の更新は、
UPDATE テーブル名 SET カラム名=`値`[, カラム名=`値`, … ] WHERE 条件式;
と、update文を用いて更新します。
UPDATE wp_options SET option_value="ローカルサイトパス" WHERE option_name=“site url"; UPDATE wp_options SET option_value="ローカルサイトパス" WHERE option_name=“home";
と、sql文で変更しましたが、
wp-admin/
以下(WordPressの管理画面)にアクセス出来れば、そちらで変更する形で問題ありません。
サイト確認
と、ここまで行えば、ほぼ本番とローカルで同じ環境となるかと思います。
表示がおかしい。等の症状が出る場合は、WordPressの方にキャッシュが残ってる場合がありますので、管理画面の「キャッシュクリア」を押すことによってキャッシュがクリアされ、正常に表示するかと思います。
以上、
久々のWordPress記事でした。