公開中のWordPressをlocal by flywheel のローカル環境に移行する手順

2019/04/02[公開]

 公開中の本番WordPressサイトをローカル環境ツールlocal by flywheelに移行する方法のご紹介です。私が思うに、最も手早く簡単に本番サイトをローカル環境に再現できる手順となります。

スポンサー リンク

リアルサイトのデータを用意

 現在稼働中のWordPressのデータを2種類用意します。データベースとファイルデータの2つです。一般的なWordPressのバックアップデータのそれと同じです。

SQLデータベースのバックアップファイル

 WordPressのデータベースをバックアップした拡張子が.sql、もしくは圧縮されていれば.sql.gzのファイルです。phpMyAdminでエクスポートしたり、mysqldumpコマンドでダンプしてもよし、バックアップ用プラグインが生成したのを使っても、ホスティングサービスのバックアップデータのでも、たいてい使えます。

uploads,themes,pluginsフォルダーのバックアップ

 WordPress公開ディレクトリーのwp-content内にある下記3つのフォルダーをPCに持ってきます。FTPを使ってダウンロードしてもよし、プラグインやホスティングサービスのファイルバックアップを展開して取り出しても使えます。

  • uploads
  • themes
  • plugins

ダウンロードとインストール

  local by flywheel を公式サイトからダウンロードしてインストールします。インストールが終わったら新規WordPressサイトを作成しておきます。そこにデータをインポートしていきます。

 新規WordPressサイトは、ApacheでもNginxでもどちらでも大丈夫ですし、PHPとMySQLバージョンもお好みで選んで作成しておきます。

手順1.データベースをインポート

 データベースをインポートします。 local by flywheel の新規サイトのDATABESEタブ⇒ADMINERボタンを押します。ブラウザーが開きます。

DATABASEタブのADMINERをクリック

 既存のテーブルを全部削除したほうがわかりやすいと思うので削除します。Table一覧のチェックボックスにすべて チェックを入れたら、Dropボタンで削除します。

既存のテーブルを全部削除(Drop)します。

 次に、Importの文字をクリックします。

Importを選択

 参照ボタンを押して、リアルサイトから持ってきたデータベース.sqlファイルを指定して、Executeボタンを押して実行します。

データベース.sqlファイルを参照で選び、Executeでインポート実行

 データベースがインポートされたら、左のほうに出ているテーブル一覧をよく見てみます。wp_options や wp_posts など接頭辞(Prefix)が wp_ になっていたらデータベースのインポートはこれで完了です。

 接頭辞がwp_以外になっている場合は、ローカルサイトのwp-config.phpの接頭辞(Prefix)の記述をwp_からインポートされたテーブルの接頭辞に変更します。ローカルサイトの保存場所を開く方法は次の手順で紹介しています。

インポートされたテーブルの接頭辞に注意

 リアルサイトのデータベースが大きいサイズになっている場合、ADMINERでインポートエラーが出て失敗する場合があります。その場合はSSHでインポートします。(別記事にしています。)

手順2.ファイルを移行する

 uploads・themes・pluginsフォルダーをリアルサイトから持ってきたものに入れ替えます。

 ローカルサイト名を右クリックして、Show Folder をクリックします。

サイトを右クリック⇒Show Folderを選択

 開いたフォルダーを辿っていき、目的のwp-contentフォルダーを開いて、
uploads・themes・plugins フォルダーを入れ替えます。この辺はPCのファイル操作になるので詳しい説明はいらないでしょう。

サイト名フォルダー ⇒ app ⇒ public ⇒ wp-content

手順3.ドメインをローカルアドレスに一括変更

 リアルサイトのサイトアドレスになっている値を、ローカルサイトのアドレスに変更します。 local by flywheelはWP-CLIコマンドが使えるので、サイトアドレスのURL、画像などメディアファイルのリンク先などをコマンドで一括変換が可能です。

 まずは、ローカルサイトのOVERVIEWタブに出ているローカルサイトのドメイン名をメモしておきます。

ローカルのドメイン名を調べておきます。

 ローカルサイト名を右クリックして、Open Site SSH をクリックします。

サイト名を右クリックしてOpen Site SSHを選択

Windowsならコマンドプロンプトが起動するので、下記コマンドを実行します。ドメイン名はこのサイトの def-4.com を、ローカルの def-4.local に変換する例になっています。

wp search-replace "def-4.com" "def-4.local"

手順4.その他の注意点

 手順3までで、基本的な移行作業は終わっています。手順4はその他、細かい注意点をいくつか紹介します。

SSLサイトの場合

 リアルサイトが常時SSL通信サイトの場合、ローカルサイトのSSLタブでCertificateをTRUSTボタンを押して TRUSTEDにして証明書を有効にします。

 それでも自己署名証明書なので、Firefoxブラウザーでは警告がでるので詳細設定画面にいき例外としてローカルドメインを追加しないと開けません。

SSL証明書を有効にする

プラグインに注意

 セキュリティ系プラグインでログインURLを変更するプラグインや、キャッシュ系のプラグインなどは事前に削除しておいた方がトラブルが無いでしょう。

 pluginsフォルダーを移行しましたが、その中から該当プラグイン名のフォルダーを削除しておくことで事前に削除可能です。

 Jetpackプラグインは、削除しなくても初回管理画面を開いたときにセーフモードにするかどうか聞いてくるので削除不要です。セーフモードにすると、統計情報やパブリサイズ共有設定が無効になります。

Apacheでは.htaccess作成

 ローカルサイトをApacheで作成した場合、トップページは表示されますが、インポートした投稿ページや固定ページが開かない現象が発生します。Nginxで作成した場合は大丈夫なはずです。

 この場合は、ローカルサイトの公開フォルダー(public)直下に下記内容(WordPress初期ファイル)の.htaccessファイルを作成すると解決します。Windowsの場合は.htaccessファイルを扱えないので、一旦htaccess.txtなどのファイル名で保存しておいて最後に.htaccessに名前を変更することで設置できます。

# 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

サイトをリスタートする

 手順をすべて設定できたら、最後にサイトを再起動させます。

 サイト名を右クリックしてRestartを選ぶとサイトが再起動します。

サイト名を右クリックでRestart

 以上でローカルに移行は完了しました。ADMINボタンで管理画面を開くか、VIEW SITEボタンでサイトを開いて動作確認を行います。

 管理画面にログインするユーザー名とパスワードは、リアルサイトの方のものを入力してログインします。ローカルで新規作成時に設定したパスワードは使えません。

 管理画面が英語になっているのを日本語表示に設定するのは、設定⇒一般⇒サイトの言語で変更できますが、英語表示なのでわかりずらいです。

Settings ⇒ General ⇒ Site Language ⇒ 日本語 ⇒ Save Settings

 これで日本語表示になります。

スポンサー リンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)