はじめに
ウェブ制作では本番環境であれこれイジるのではなくやはりローカル(マイPC内だけ)でイジりたいものだ。なのでサーバーとローカル間でのお引越しが頻繁に必要になってくる。手順はまあまあ面倒だが方法論は確立している。近頃ようやくすんなり引っ越しができるようになり、ここらへんで忘れないうちに手順をまとめておこうと思う。
引っ越しというのは下記のように2種類ある。行きと帰り。
- 本番サーバーのサイトをローカルに引越し
- ローカルサイトを本番サーバーへ引越し
ここでは1の引越し方法を解説している。2については別記事があるのでそちらをご参照ください。
前提条件
- 既存の本番サイトはさくらインターネット・スタンダードプラン
- ローカル環境はWordPressローカル環境構築ツール Local by flywheel(以降Local) インストール済のmac
- バックアップ系や移行支援などのWordPressのプラグインは使わない
- データベースの書換えにSearch-Replace-DB-masterを利用
段取りとしては、WordPressのファイル群とデータベースをそれぞれ本番サーバーからLocalにコピーする2段構えとなる。
本番サーバーのWordPressファイル群をダウンロード
FTPで本番サーバー上にあるWordPressのディレクトリごとローカルPCにダウンロード。
WordPressのディレクトリというのは、wp-content
、wp-admin
、wp-includes
というフォルダやらwp-config.php
とかのファイルが有る階層の1個上のフォルダの事ね。自分はそのフォルダ名をいつもwpと付けてるので以降 wp
と表記。
セキュリティ系プラグインは無効化
この際、WordPressの管理画面でキャッシュ系、バックアップ系、セキュリティ系のプラグインを無効化してからやってる。特にセキュリティ系。トラブルのもとになりそうなので。
あとそのサイトの普段のバックアップをWordPressのディレクトリ配下にとってる場合はダウンロードから除外しておくといいかも。
ファイル群をローカル環境にマージ
Localで新規サイトを作成する
サイト名や保存場所を決める。今回は本番サイトがsandy-jp.com
なのでsandy-jp.local
とする。
PHP Version WebServer Database (MySQLのバージョン)はできるだけ本番サーバーのものと合わせといたほうがいいだろう。
adminの設定を同じに
ミソとしてはこの際、WordPress UsernameとWordPress Passwordは、本番サーバーのWordPressにおけるadminのユーザー名とパスワードと同じにしておくとさらにいいと思う。
WordPressのインストール中…
インストールが終われば、SSL項のTRUSTをクリックしてSSL化しておく。
本番サーバーのファイル群をLocalにマージ
出来上がったLocal by Flywheelのサイトの/app/public/wp-config.php
をちょっとよけておく。これだけは上書きされたくないので。
そのLocal by Flywheelのサイトの該当ディレクトリ/app/public/
の中にさっきダウンロードしたディレクトリwp
の中身をマージというかコピーと言うか置き換えというか。全部をエイッと大胆に。
コピーが終われば先程のwp-config.php
を元の場所に戻しておく。これも上書きになる。
importは使わない
ちなみにLocal by Flywheelにはimportという機能があるのだが、うまく行った試しがないので(笑)これは使わない。
本番サーバーのデータベースをダウンロード
phpMyAdminを開いて該当のデータベースをまるっとダウンロードする。
phpMyAdminにログインして、複数のデータベースがある場合はダウンロードすべきデータベースを間違えないように選択して、メニューのエクスポート。
エクスポート方法:は詳細にして全部のテーブルにチェックが入ってることを確認、のこりのいっぱいあるオプションはとりあえずデフォルトで上手くいくと信じて一番下の実行ボタンをポチっと。
とまあいつもそうやってるのだが実はエクスポートは簡易のままで大丈夫だったりする。
今回は結局設定を一切触らず(簡易のまま)に実行した。
ダウンロード時のファイル名をhonban.sql
と付けたとする。
ローカルのデータベースにインポート
データベース管理ツールAdminerを開く
LocalのDATABESEからOPEN ADMINERを開く。ADMINERはLocalのphpMyAdmin。
LocalのWordPress用に新しいデータベースを作成する
DBを空白にする。
一番上の空白を選択。
データベースを作成をクリック。
左欄(データベース名)を決めて入力する。ここではsandy
としよう。
中欄(文字コードの設定)だが、utf8_general_ciが正解だと思うのだが、いつも何も指定しないままやっても問題なく使えているので今回もこのまま行く。
右の保存をクリック。
エクスポートしたデータベースをインポート
出来上がったDB sandy
にてインポートをクリック。
さきほど本番サーバーからダウンロードしたインポートすべきファイルhonban.sql
を選んで実行。
これでインポート完了。
wp-config.phpを書き換え
さきほどよけておいて上書きし直したwp-config.php
。こいつの中身のDB_NAMEをさっき作ったDB名「sandy
」に変更。wp-config.php
の場所はお忘れではないと思うが以下。
Localのインストールディレクトリ/app/public/wp-config.php
<?php
// ** Database settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'sandy' );
/** Database username */
define( 'DB_USER', 'root' );
/** Database password */
define( 'DB_PASSWORD', 'root' );
/** Database hostname */
define( 'DB_HOST', 'localhost' );
/** Database charset to use in creating database tables. */
define( 'DB_CHARSET', 'utf8' );
/** The database collate type. Don't change this if in doubt. */
define( 'DB_COLLATE', '' );
DB内に書き込まれている、サーバーのURL全部をローカルのURLに書き換える
このURL書き換えが大変な作業で人力では厳しいのだがSearch-Replace-DB-masterを使うと一気に書き換えることが出来るので安心されたし。あって良かった神ツール。
Search-Replace-DB-Masterの準備
まだSearch-Replace-DB-masterを持ってない場合はサイトにアクセスして名前とメアドを登録したらダウンロードできるのでダウンロードしてそのZIPを解凍しておく。
解凍してできたSearch-Replace-DB-master
というフォルダを/app/public
の中にコピー。
そのパスにブラウザからアクセスする。今回は、
https://sandy-jp.local/Search-Replace-DB-master
というURLになる。
メモ
URLのプロトコルがhttps:
なのは前段でLocalに新規WordPressサイトをインストールした後にSSL化をしたから。SSL化してない場合は今SSLすべし。本番サーバーが非SSLならこの限りにあらず。
Search-Replace-DB-masterの設定
SerchReplace項に本番サーバーのURLとローカル環境のURLを入力。
replace欄が本番サーバーのURL、with欄がローカルサイトのURL
重要
ここでURLの最後に/
を絶対に書かないこと。これを書くと肝心要なWordPress一般設定のアドレス欄2箇所をSearch-Replace-DB-masterが書き換えてくれなくて何度アクセスしても本番サーバーにリダイレクトされて永遠にローカル環境へログインできないという沼にハマる(怖)
DatabaseDetail項に下記それぞれ入力。
- Database name: さっきADMINERで新たに作ったDB名
sandy
- username:
root
- pass:
root
- host:
localhost
- port: 空白
Test Connection押してSuccess. You are connected. となればDBへの接続OK。
テストランと本番ラン
Do a safe test runでテストランしてみる。
環境によってはエラーメッセージが出まくることがあるが殆どの場合気にする必要なし。この例ではYoastプラグイン使ってたら出るエラーと書いてある。確かにこのサイトではYoast Duplicate Post使ってる。
下半分にテーブル毎のデータの書き換え数(これはドライランだから書き換えてないが)が表示される。いけてそうな気がしたら、Search and Replaceボタンをポチる。
書き換えが済んだらSearch-Replace-DB-masterはもう用無し。ここはローカル環境なので削除するなり放置するなり自由にしてOK。
出来上がり
お引越しはこれで完了。もうローカル環境のWordPressにログインできる筈。前段での設定通り本番サーバーのadminと同じユーザ名とパスワードでログイン。
最後にログイン後、設定 → パーマリンクのページで変更を保存ボタンをポチるというおまじないを念の為しておこう。
いかがだっただろうか。スムースに移行できたらおめでとう。
参考サイト
ちなみにこのWordPressデータ移行のHOW TOはググればいくつもヒットするのだが、、、大半はその通りやっても上手くいかなかったりする。環境が違うせいかバージョンが古いのか…正直往生した。
そんな中、最も参考になったサイトはこちら。
お世話になりありがとうございました。