WordPressを本番環境からローカル環境に移行する方法

WordPressを本番環境からローカル環境に移行する方法

はじめに

WordPressを既に本番環境で稼働している場合、テーマの変更やプラグインの追加などを行ってしまうと思わぬ不具合が起こり、サイトが止まってしまう可能性があります。
サイトの改修を行う時はローカル環境に本番環境をバックアップしてカスタマイズした後、再度本番環境に移行するのが安全です。
今回は本番環境からローカル環境にWordPressを移行する手順についてご説明します。

本番環境からローカル環境に移行するために必要なものをリストアップしてみました。

  1. FTPのログイン情報
  2. FTPのソフトウェア
  3. phpMyAdminのログイン情報
  4. パソコン内のローカル環境
  5. ローカル環境に設定するホスト名
  6. 本番環境のサーバーの情報
  7. 本番環境のWordPress本体
  8. 本番環境のsqlのデータ
  9. sqlデータを書き換えるためのエディタ
  10. WordPressのログイン情報

上記の中で各種ログイン情報、FTPのソフトウェア、パソコン内のローカル環境については事前に用意しておいてください。

ローカル環境については「WordPressをローカル環境で構築する方法(Local編)」の記事を参照してみてください。
簡単すぎる!WordPressをローカル環境で構築する方法(Local編) 簡単すぎる!WordPressをローカル環境で構築する方法(Local編)

上記の中にある「LOCAL by flywheel」を利用したローカル環境で説明します。
本番環境のWordPress本体やsqlデータについては記事内で説明しますのでご安心ください。

ファイルのダウンロード

wordpress画面
今回はテーマをOnePressに設定し、下記のテスト用のデータを使っています。

GitHub – jawordpressorg/theme-test-data-ja
https://github.com/jawordpressorg/theme-test-data-ja

  • TinyMCE Advanced
  • Classic Editor
  • WordPress インポートツール

その他に上記3つのプラグインを導入している状態です。

まずは本番環境からWordPress本体をダウンロードします。
FTPに接続するユーザー情報はレンタルサーバー、またはお手元のサーバーで環境が違いますので、予め調べておきましょう。
本番環境側のディレクトリは任意かドメイン名になっているパターンが多いです。

また、説明する中で「 wp-test.com 」というドメインを表記していますが、仮のドメイン名となります。
「 wp-test.com 」の部分を適宜それぞれの本番環境のドメインに置き換えて読み進めてください。

今回はFTPソフトのFFFTPを利用してダウンロードしました。
FFFTPダウンロードページ:https://ja.osdn.net/projects/ffftp/

ffftp画面
FTPのログイン情報を入力してサーバーに接続します。
スクリーンショットでは左側が手元のパソコン、右側がサーバーです。

WordPressのあるディレクトリを指定したら、すべて選択して、作業しやすいフォルダにダウンロードしてください。
ダウンロードが終わったら、バックアップを残しておきましょう。

この後に作業する中で元のデータがないという状況を避けることができます。

sqlデータのエクスポート

次にsqlのデータをエクスポートします。

本番環境のphpMyAdminにログインしてデータベースを開きます。

phpMyAdmin
ローカル環境に移行するWordPressのデータベースをクリックして開いたら、次にエクスポートをクリックします。

sqlエクスポート
エクスポートの画面に移動したら、そのまま実行をクリックするとsqlファイルがダウンロードされます。

本番環境での作業はこれで終了です。

Localに移行先のWordPressを作成する

次にLOCALを起動して移行先のWordPressを作成しましょう。

local画面
LOCALでWordPressを作成する最初の項目で「ADVANCED OPTIONS」をクリックして詳細メニューを開きます。

サイト名は本番環境と同じもので大丈夫です。次にLocal site domainの部分に任意のドメイン名(ホスト名)を入力したら、CONTINUEをクリックします。

この部分は説明のためにサイト名に「wordpress」、Local site domain「wp-test.com.local」と入力しました。

環境設定
次にサーバーの環境を設定する項目が表示されます。ここで本番環境と同じ環境を選びましょう。

レンタルサーバーや手元のサーバーによってバージョンに違いがある可能性もありますので必ずチェックしてください。

wordpressセットアップ
次の画面でユーザー名とパスワード、メールアドレスを入力して「ADD SITE」をクリックしてください。

local-wordpress画面・wordpressディレクト
Localの左側のメニューに作成したサイト名が表示されたらOKです。

次にWordPressの上書きを行うために右上の「STOP SITE」をクリックして、一度WordPressを停止します。
「START SITE」に表示が切り替わたらサイト名の下あるフォルダ名の右の矢印をクリックしてください。

Localで作成したWordPressが格納されるフォルダが開かれます。サイト名に合わせて作られたフォルダを開いてください。
「app」をクリックして、次に「public」をクリックすればローカル環境のWordPressの本体があるフォルダが開かれます。

C:\Users\user\Local Sites\wordpress\app\public

LocalをCドライブにインストールし、サイト名に合わせて作成されたフォルダがwordpressなら上記の位置にWordPressの本体があります。適宜読み替えてフォルダを開いてください。

ここに本番環境からFTPでダウンロードしたWordPressの本体を移動して上書き保存しましょう。
これで本番環境のWordPressの本体がローカル環境に移行できました。

しかし、まだこのままではWordPressは正常に稼働しませんので注意してください。
次にwp-config.phpを編集します。

wp-config.phpの修正

C:\Users\user\Local Sites\wordpress\app\public\wp-config.php

上記のような形でエクスプローラーでローカル環境のWordPress本体にある「wp-config.php」を開きます。wordpressの部分を設定されたフォルダ名に読み替えてください。

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

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

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

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

wp-config.phpを開いたら上記の箇所をローカル環境に合わせて編集します。

データベース名は本番環境と同じデータベース名にしておくと後でひと手間省けます。データベースについて詳しければ任意の文字列で大丈夫です。

ローカル環境がLOCAL by flywheelの場合はユーザ名とパスワードは「root」、ホスト名は「localhost」になります。

XAMPPやMAMPなど、他のソフトでローカル環境を作成している場合は、それぞれのデータベースにアクセスして新規でユーザー名を作成するか、既存の権限を持つユーザーのユーザー名とパスワードをメモして、wp-config.phpの内容に反映させてください。

次は本番環境からエクスポートしたsqlファイルの修正を行います。

sqlデータの修正

まずはエクスポートしたファイルを編集するためのエディタを開いてください。

任意のエディタで問題ありません。

エディタを起動したら開くからエクスポートしたsqlデータを選びます。

置換機能を使用して、検索する文字列に本番環境のURLを入力し、置換後の文字列にローカル環境のホスト名を入力します。

例えば置換前の文字列に「 http://wp-test.com 」と入力し、置換後の文字列に「 http://wp-test.com.local 」と入力します。

入力したらすべて置換をして、置換が終わったら保存してエディタを閉じましょう。

次にローカル環境のphpMyAdminを開いてデータベースを作成します。

ローカル環境にデータベースを用意

ローカル環境にデータベースを用意

Localを起動し、WordPressを稼働している状態でDATABASEのタブをクリックし、ADMINERをクリックするとMySQLの管理画面にログインできます。

MAMPやXAMPPであればphpMyAdminなので表示画面が少々違いますが、手順についてはほぼ同じです。

mysql

データベースにログインしたら、まずはサーバをクリックしてください。

mysql-データベースの作成

次にデータベースの作成をクリックしましょう。

mysql-utf8

データベースを作成の画面に移動したら左側の空白にデータベース名、右側は「 utf8_general_ci」を選択して、保存をクリックします。

mysql-インポート

データベースが作成されたら、左側にある「インポート」をクリックしてください。

sqlデータのインポート

mysql-ファイルの選択

画面が移動したらファイルをアップロードの方にある「ファイルを選択」をクリックして、本番環境からエクスポートして、テキストエディタで置換したsqlデータを選んでください。

mysql-インポート 終了

sqlデータを選んだら実行をクリックすればインポートは終了です。

データベース周りで上手くいかない時の注意点

LOCAL by flywheelの場合、ローカル環境に移行するために最初にWordPressを構築する必要があります。

その際、初期状態のデータベースとして「local」があり、その中にWordPressを初めてインストールした状態のデータが存在しています。

環境による部分もありますが、このlocalのデータベースにそのままインポートした場合、エラーが発生しWordPressが起動できない現象が起こる可能性があります。

本番環境のデータベースがlocalになっており、そのままでも大丈夫かと思って作業してしまうとエラーによって思わぬ手間が増えることになるので、その時はlocalのデータベースを一度削除して、新しくlocalというデータベース名で作成しましょう。

また、localのデータベースにある既存のデータをすべて削除して、本番環境のsqlデータをインポートした場合、エラーは表示されなくてもWordPressが起動しないパターンもありました。

この記事も含めて、パソコン内にあるソフトウェアやOS、パソコン自体のスペックなどによって同じ作業をしても同じ結果が出ないことがあります。

上手くいかない場合は、まったく同じ環境だと考えずに、適宜置き換えて文字列の入力や設定を行うことや、自分が作業した手順に間違いがないかチェックしながら作業するようにしてみてください。

httpd-vhosts.confの設定

ローカル環境がLOCAL by flywheelであればhttpd-vhosts.confの設定する必要はありませんが、他のローカル環境の方のために設定方法を記載しておきます。

CドライブにインストールしたXAMPPを例にして設定してみます。

C:\xampp\apache\conf\extra

上記の位置フォルダにhttpd-vhosts.confがあります。

例えば今回のローカル環境で使用したホスト名を設定する場合は下記をhttpd-vhosts.confの末尾に記載します。

NameVirtualHost *:80

DocumentRoot “C:\xampp\htdocs\wp-test.com.local”
ServerName wp-test.com.local

C:\xampp\apache\conf

次に上記のフォルダにあるhttpd.confを開きます。

「# Virtual hosts」で検索して下記の部分を探します。

# Virtual hosts
Include conf/extra/httpd-vhosts.conf
上記のように「Include conf/extra/httpd-vhosts.conf」の先頭に#がなければOKです。

もし「# Include conf/extra/httpd-vhosts.conf」といった形で#がある場合は先頭の#を削除して保存しましょう。

また、LOCAL by flywheelであればhostsの設定も不要ですが、他のローカル環境の場合はhostsの設定も変更する必要があります。

まずはhostsの場所を知っておきましょう。

PS C:\WINDOWS\system32\drivers\etc> notepad hosts

Windows PowerShellで作業する場合、上記の位置にhostsが存在しています。

  1. Windowsのスタートボタンを「右クリック」
  2. Windows PowerShell(管理者)をクリック
  3. PowerShellが開いたら「 cd .¥drivers¥etc¥ 」と入力してエンターキーを押す
  4. 「notepad hosts」と入力してエンターキーを押す
  5. hostsが開いたら末尾に127.0.0.1を入力しタブを2回押す
  6. ローカル環境で設定したホスト名を入力して保存
  7. メモ帳を閉じる
  8. PowerShellで「exit」と入力してエンターキーを押す

上記がWindowsでhostsを編集する手順です。

ポイントとしてはWindowsでhostsを編集する時は管理者権限でWindows PowerShellを起動する必要があること、コマンドプロンプトに慣れていないと戸惑ってしまう点です。

もし、意味がわからなかったり、理解できない部分がある時はひとつひとつの基本を調べながら作業するようにしてみてください。

なんとなく同じように作業しているつもりになっていると、思わぬところで間違っていることに気が付かず、上手くいかないことがあるからです。

また、参考とするサイトや記事の作成された日付によっては過去の情報だと気付かずに作業してしまうことで古い手順を繰り返し続けてしまい、結果として上手くいかないこともあるので注意しましょう。

.htaccessの修正

C:\Users\user\Local Sites\wordpress\app\public

LocalをCドライブにインストールして作業していた場合、.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

上記がWordPressに必要な個所であり、赤文字の部分がそれぞれ「RewriteBase /」と「RewriteRule . /index.php [L]」になっていれば変更する必要はありません。
レンタルサーバーや自前のサーバーの環境によって他にも記述されていることがありますが、誤って削除したり編集しないように注意してください。

また、作業前にバックアップを取ることも忘れないようにしましょう。

本番環境でドメイン直下のディレクトリにインストールされている場合は特に変更する必要はありませんが、例えば下記のように記載されている場合、ディレクトリ名を削除する必要があります。

# BEGIN WordPress

RewriteEngine On
RewriteBase /〇〇〇〇〇〇/
RewriteRule ^index\.php$ – [L] RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /〇〇〇〇〇〇/index.php [L]

# END WordPress

〇〇〇〇〇〇/の部分を削除して保存します。逆にローカル環境から本番環境に移行する場合は削除したディレクトリ名を元に戻して、本番環境に合わせることを忘れないようにしましょう。

ローカル環境に移行したWordPressの表示・確認

表示確認

LocalのADMINボタンをクリックするとログイン画面が表示され、無事にログインできました。

プラグインやテーマ、記事や固定ページについてもすべて移行できていることがわかります。

これで本番環境をローカル環境に移行し、カスタマイズや再構築がいつでも可能になりました。

定期的にバックアップを取ることで、WordPressが動かなかったり、不具合が起こった時にも元に戻せるようになります。

同時にカスタマイズした箇所や作業した手順を残しておくことで、何が原因で不具合やデザインが崩れたりしたのかわかりやすくなります。

ポイントとしては本番環境のWordPress本体のダウンロードと、sqlデータのエクスポートしておくことです。

例えば1ヶ月、2週間など定期的に保存しておいて、古いものから順に削除する体制などにしておけば非常に安心です。

まとめ

本番環境からローカル環境に移行する手順を作業する時、何度も同じ手順を繰り返したり、間違いやミス、エラーなどで悩むことがあるでしょう。

上手くいかない原因は「参考とする手順が間違っている」か、「自分の作業している手順が間違っているか」ことが考えられます。

また、参考とするサイトや記事の情報の鮮度、作業環境の違いによっても上手くいかないことがあります。

同時に、記事を作成する人の「当たり前の知識や経験」は人それぞれですので記載されていない部分がわからないことも多々あるでしょう。

WordPressの作業に限らないことですが、自分がどんな手順で作業したか残しておくこと、あくまでも参考とする記事やコンテンツについては「参考」程度に考えるようにすることが大切です。

ローカル環境と本番環境の移行が双方向で行えるようになれば、サイトやサービスの運営や維持が簡単になります。

わからないことをわかるように知識と経験を増やしながら、柔軟に学んでいく姿勢を忘れないようにしてみてくださいね。