WordPress のローカルの開発環境は XAMPP → MAMP → VCCW → MAMPと戻り、長年 MAMP を使ってきましたが、バージョンアップを繰り返して使っていくうちに MySQL 絡みのバグが発生し起動しなくなってしまったのをきっかけに、Local by Flywheel(現在は Local)を利用してみました。今の所とても使いやすく、もっと早く使っておけば……と思うほど。
Local by Flywheel の導入は全く難しくなく、公式サイトからダウンロードして進めていけばローカル開発環境が構築できます。また、色々なサイトでも解説しています。
今回は、WordPress を専用ディレクトリに設置している場合に同じ構成でローカル開発環境に複製したい場合に少し手間取ったので、構築方法を残しておきます。ちなみに、コマンドを入力する作業がいくつか含まれていることご了承ください。(コマンド使わなくても可)
目次
- 1 専用ディレクトリに配置した WordPress とは
- 2 Local by Flywheel は専用ディレクトリの場合ひと手間必要
- 3 Local by Flywheel で専用ディレクトリに WordPress を複製する方法
- 3.1 Local by flywheel で新規サイト設定
- 3.2 同様の構成にするため WordPress を下層ディレクトリに移動
- 3.3 移行元サイトのデータベースをエクスポート
- 3.4 移行元サイトの WordPress 配下のディレクトリごと圧縮
- 3.5 エクスポートしたデータベースと圧縮した WordPress ファイルをダウンロード
- 3.6 Local by Flywheel で移行先サイトに ssh 接続し、元々ある WordPress ディレクトリの名前を変更&tarファイルを解凍
- 3.7 解凍した wp-config.php の必要情報を元々の情報に書き換える
- 3.8 エクスポートしたデータベースを mysql コマンドにてインポート
- 3.9 WP CLI の wp search-replace コマンドを使い移行元の URL を移行先 URL へ一括置換
- 3.10 トップページにアクセス&管理画面にログインしてパーマリンクを更新する
- 3.11 エクスポートしたデータベースや圧縮したファイルを削除して完了
- 3.12 その他 git や別途ディレクトリなど
- 4 Local by Flywheel で簡単にローカル開発環境を構築
専用ディレクトリに配置した WordPress とは
WordPress は特に設定変更しない限り、ルートディレクトリに WordPress 関連のファイル・フォルダが並びます。初期状態でも30弱のファイル・フォルダがあります。
ルートドメインはすっきりさせたいと考えるケースも多いかと思います。他の関連ファイルを設置している場合などは特に。レンタルサーバーによってはサブドメインを作成するとルートドメイン直下に新しくサブドメイン用のディレクトリが作られるケースもあり、あまりファイルやフォルダがあるとわかりづらくなる懸念もあります。
WordPress を専用ディレクトリに設置することで、これらの問題を解決できます。
専用ディレクトリに設置したとしても、WordPress 関連のファイルを設置するディレクトリと、実際の URL は別に設定が可能です。例えば wp という専用のディレクトリを作成し、その配下に WordPress 関連のファイルを設置しトップページの URL はルートに設定したい場合、以下のようになります。
- WordPress が設置されている URL: https://highfivecreate.com/wp
- トップページの URL: https://highfivecreate.com
専用ディレクトリにWordPress を設置したい場合、構築時に設定しておくのが望ましいですが、公開後でも変更は可能です。詳細の設定方法は以下公式で紹介されています。
参考: WordPress を専用ディレクトリに配置する – サポートフォーラム
Local by Flywheel は専用ディレクトリの場合ひと手間必要
Local by Flywheel では数クリックでローカル環境が完成し、すぐにローカルで WordPress を動かし始めることができます。(超簡単)
さらに、本番環境で稼働中の WordPress を Local by Flywheel 上のローカル環境に複製することもとても簡単です。公式に方法が紹介されています。
How to Import a WordPress Site into Local – Local
ただ、この方法は WordPress をルートディレクトリに設置している構成であれば問題なく動くものの、wp
等の専用ディレクトリを作って、その配下に WordPress を設置してサイトトップページの URL とは異なるというケースにおいてはうまく動作しません。
Local by Flywheel で専用ディレクトリに設置した WordPress も同じように複製する場合、Local by Flywheel にて新規サイト設定後、専用ディレクトリを構築した上で、インポートする必要がありました。
Local by Flywheel で専用ディレクトリに WordPress を複製する方法
Local by Flywheel で新規サイト作成からの場合、失敗したりうまく行かなければ削除すればいいだけなので気が楽です。もしバックアップを取ったほうがよければ作成しておきましょう。バックアップ先の対象は Local by Flywheel で新規作成後のデータベースと WordPress ファイル一式です。
Local by flywheel で新規サイト設定
新しく WordPress を追加します。フローに沿って作っていけば自動的に WordPress が作成されます。
同様の構成にするため WordPress を下層ディレクトリに移動
Local by Flywheel で新規 WordPress が作られたら、WordPress を設置するための専用ディレクトリを作成します。移行元サイトは WordPress を下層ディレクトリに設置しているため、ローカル環境でも同様の名称・構成にて専用ディレクトリを作成します。
詳細の方法は先程の公式の設定方法をご参考ください。
参考: WordPress を専用ディレクトリに配置する – サポートフォーラム
移行元サイトのデータベースをエクスポート
エクスポートする方法は色々ありますが、今回は mysqldump
コマンドにてエクスポートしました。本番環境のサーバーにsshでアクセスして作業します。DB_NAME
, DB_USER
, DB_PASSWORD
, DB_HOST
等は wp-config.php
に設定している値が入ります。
mysqldump --add-drop-table -h DB_HOST -u DB_USER -p DB_NAME > エクスポートするsqlファイル名.sql
エンター後、DB_PASSWORDを入力
移行元サイトの WordPress 配下のディレクトリごと圧縮
今回は移行元サイトが数GBの容量があったため、gzip形式にtar圧縮しました。zip形式でも問題有りません。
tar -zcvf 任意の名前.tar.gz 移行元のWordPressディレクトリ
エクスポートしたデータベースと圧縮した WordPress ファイルをダウンロード
データベース(sql ファイル)と圧縮した WordPress ファイル(任意の名前.tar.gz ファイル)ができました。これらをダウンロードします。
ダウンロード方法はサーバーにFTPやscp等で接続したり、ローカル上から wget
等にてダウンロード、ブラウザから直接アクセスなど、ダウンロードできれば何でも構いません。
Local by Flywheel で移行先サイトに ssh 接続し、元々ある WordPress ディレクトリの名前を変更&tarファイルを解凍
Local by Flywheel には標準で ssh 接続機能があります。対象 WordPress 内の「Open site shell」をクリクすると Terminal が起動します。(この機能がめちゃくちゃ便利)
ssh 接続後、先程手動で作成した専用ディレクトリを一時的にリネームします(この時点でサイトはエラーになりますが気にせずでOK)。この時点では削除しないようにしましょう。
同じ場所に、本番環境からダウンロードした圧縮済みの WordPress ファイルを解凍して展開します。
tar -zxvf さっき圧縮したファイル.tar.gz
解凍した wp-config.php の必要情報を元々の情報に書き換える
展開した WordPress ディレクトリ内にある wp-config.php ファイルを開き、DB_NAME
, DB_USER
, DB_PASSWORD
, DB_HOST
を元々の情報に書き換えます。元々の情報は先程リネームした WordPress ディレクトリ内の wp-config.php
ファイル内にかかれているので参照します。書き換えたら保存します。
エクスポートしたデータベースを mysql コマンドにてインポート
エクスポートした本番環境のデータベースである sql ファイルをローカル側にインポートします。今回は Terminal から mysql
コマンドを使ってインポートしました。
mysql -h DB_HOST -u DB_USER -p DB_NAME < エクスポートしたsqlファイル名.sql
エンター後、DB_PASSWORDを入力
WP CLI の wp search-replace コマンドを使い移行元の URL を移行先 URL へ一括置換
インポートがうまく行ったあとは、URL の一括置換作業を行います。Local by Flywheel の素晴らしい機能の一つに、 WP CLI が標準実装されている点で、設定不要で使い始めることができます。
今回の URL 一括置換は WP CLI の wp search-replace
コマンドを使いました。
「WP CLI を使ったことがない、wp search-replace
ってなんだろう」という方は以下記事をご参考ください。コマンドを触ったことがあればきっと使いたくなると思います。それほど便利です。
WP CLI の敷居が高い場合は無償提供されている一括置換ツールである「Search-Replace DB」を使うのでも大丈夫です。方法は以下記事内に説明しています。
トップページにアクセス&管理画面にログインしてパーマリンクを更新する
URL 一括置換がうまくいったら一旦トップページにアクセスしてみましょう。正しくアクセスできればOKです。その後、WordPress ダッシュボードよりログインします。この際のログインは本番環境のログイン情報です。
ログイン後、「設定」→「パーマリンク」画面より何も設定変更せずに保存を押します。これにより .htaccess
が更新され、下層ページにアクセスできないといったエラーが発生しなくなります。
パーマリンクを使っている場合、管理画面 > 設定 > パーマリンク設定 画面を開き、.htaccessファイルのパーマリンク構造を更新ください。
WordPress の引越し – WordPress Codex 日本語版
エクスポートしたデータベースや圧縮したファイルを削除して完了
これでローカル環境に本番環境が複製されました。複製に利用したファイルやデータベースはもう不要なので削除してしまって構いません。
その他 git や別途ディレクトリなど
git 管理している場合はローカルリポジトリが正しく存在しているか、していなければ設定を行うなどしておきましょう。
その他、WordPress 以外に必要なディレクトリやファイルがある場合などは本番環境と同じように設定しておいた方が安心です。
Local by Flywheel で簡単にローカル開発環境を構築
以上、専用ディレクトリに WordPress をインストールしている場合における Local by Flywheel 上にローカル開発環境の複製する方法でした。
ルートディレクトリに WordPress をインストールしている場合は先程記載したように公式のドキュメントの通りに行えば非常に簡単にローカル開発環境が構築できます。その場合は今回のようなコマンドを使ってエクスポートする必要もなく、例えば BackWPup のような sql と WordPress 一式をエクスポートしてくれるプラグインを使えばより敷居が低く必要なデータを用意してくれます。
いずれにしても、より簡単にローカル開発環境を構築できるのは変わりないので、今後もしばらく Local by Flywheel を使っていこうと思います。https 対応も、ウェブサーバーの apache / nginx の切り替えも、PHP のバージョン切り替えも、ssh 接続も簡単にできすぎて驚きますね……。
Local by Flywheel おすすめです。ちなみに Local by Flywheel、2019年に WP Engine が買収していたとは知りませんでした。
コメントを残す