【WordPress】ローカル環境をコピーする(Local)

Local by flywheel に保存しておいた WordPress サイトを、PC の経年劣化を理由に、別の PC へと移さなければいけなくなったので、そのとき行った作業の覚書です。本番環境からローカル環境への移行や、ローカル環境から本番環境への移行の情報は多いですが、ローカル環境からローカル環境へコピーする情報は見当たらなかったので、誰かのお役に立てれば幸いです。
はじめに
WordPress はファイル(画像や PHP など)とデータベース(記事データなど)によって構成されています。そのため WordPress の引っ越しは、ローカル環境からローカル環境であっても、以下の2点が必要になります。
- public フォルダをまるっとコピーして、新環境の WordPress ファイルを差し替え
- データベースを Adminer で エクスポートして、新環境にインポートする
ローカル環境(Local)上でのコピーなので、ドメインは変更ありません。正確に言うと、新環境で新たに作る WordPress のドメインを旧環境にそろえておきます。なので、Search-Replace-DB-Master などを使用する必要はありません。
転出作業
ファイルの転出
旧環境の Local を開き、サイトを選択後、「Go to site Folder」をクリックします。すると、該当フォルダのエクスプローラーが立ち上がります。app フォルダの中に、public フォルダがあるので、こちらをまるっとコピーして、新環境に保存します(WordPress ファイル一式が入っています)。一時的な保管になるので、デスクトップなどで大丈夫です。

データベースの転出
Local から Adminer を開き、データベースをエクスポートします。
「Start site」をクリックしサイトを起動して、「Database」の「Open AdminerEvo」をクリックします。

ブラウザが立ち上がり、Adminer の管理画面が開きます。該当 WordPress のデータが入っているデータベースを選択し、「Export」をクリックします。

「Output」に「save」、「Format」に「SQL」を選択し、「Export」をクリックします。ファイル名は local.sql など適当につけてください。基本的には初期設定で大丈夫だと思いますが、設定は下図を参考にしてみてください。
出力された SQL ファイルを新環境のデスクトップなどに移しておきます。

転入作業
空の新サイトを作成
新環境に Local をダウンロードし、空の新サイトを作成します。Local を開くと、以下の画面が開くので、「Create a new site」をクリックします。

新規にサイトを作成するか、Blueprint (ひな形) を使って作成するか聞かれるので、「Create a new site」を選択し、「Continue」をクリックします。

サイト名を設定する画面が開きます。旧環境と同じサイト名に設定し、「Advanced options」を開いて、「Local site domain」も旧環境と同じドメイン(以下では dolphinhotelcom.local)に設定します(重要)。ここで旧環境と同じドメインにしておかないと、のちのちデータベースのドメインをすべて新環境のドメインに書き換える必要が出てきます。「Local site path」で保存フォルダを設定できますが、こちらも旧環境と同じフォルダ名にしておくと良いでしょう。

続いて環境を選択します。深い意図が無ければ、「Preferred」で問題ないかと思います。

WordPress のユーザー名とパスワードを設定します。旧環境の WordPress のユーザー名とパスワードにしておくことが望ましいですが、そうでなくてもあとから Adminer でデータベースを書き換えてしまったら問題ないです。私は SQL ファイルをテキストエディタで覗いて、ユーザー名だけ旧環境に合わせ、パスワードは適当なものを入力しました(その後、Adminer でデータベース上のパスワードを書き換えました)。

以上で空の新サイト作成は完了です。たまに Docker など他のアプリが干渉して Local が動作しないことがあるので「Open site」で新サイトが立ち上がるか確認しておくと良いと思います。
ファイルの転入
ファイルの転出のときと同じく Local を開き、サイトを選択後、「Go to site Folder」をクリックします。やはり app フォルダの中に、public フォルダがあるので、public フォルダ内の wp-config.php だけ別の場所に一時保存し(サーバー接続情報などが入っています)、public フォルダをまるごと削除します。その後、保存しておいた旧環境の public フォルダに差し替えて、のけておいた wp-config で上書きします。
データベースの転入
Adminer でデータベースをインポートします。
再び「Start site」をクリックしサイトを起動して、「Database」の「Open AdminerEvo」をクリックします。すると、ブラウザで Adminer の管理画面が開きます。
ここで、local という名前のデータベース(初期設定)を上書きしても良いのですが、念のため新規のデータベースを作ります。「DB:」の横のプルダウンメニューから、何も書かれていない行を選択します。

画面が遷移するので、「データベースを作成」をクリックします。

新規データベース名(以下の例では dolphinhotel)を入力し、「保存」をクリックします。

空の新規データベースができるので、「インポート」をクリックします。

「ファイルの選択」から、エクスポートしておいた SQL ファイル(ここでは local.sql )を選択し、「実行」を押します。旧環境の WordPress データベースがインポートされるので、終了したらブラウザを閉じます。
最後に、wp-config.php の中身を新規データベースに合わせます。 app/public の中に保存してある wp-config.php をテキストエディタで開き、define( ‘DB_NAME’, ‘local’ ); と書かれているところを、define( ‘DB_NAME’, ‘新規データベース名’ ); (ここでは dolphinhotel)に書き換えます。以上でローカル環境のコピー作業は終了です。
<?php
// ** Database settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'dolphinhotel' );
/** 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', '' );
?>
Local を開いて「Start site」からサイトを起動、「Open site」をクリックすると、新環境でもWordPress サイトが立ち上がるはずです。
余談
2020年に Local 環境に移したサイトを今回(2024年)新しい PC にコピーしてきたのですが、移行後に 404 エラーが全ページに出る問題が起こりました。「WP Admin」から WordPress の管理画面を開いて WordPress 自体のバージョンアップ(更新)すると解決したのですが、おそらく Local の PHP バージョンと WordPress のバージョンが対応していなかったのだと思います。
2024/10/14 追記
結局のところ、もう更新しないので、静的サイトに変換して保存することにしました。以下手順をまとめているので、参考にしてみてください。
少し宣伝
当サイトは WordPress 自作テーマを用いた海外旅ブログまとめサイトとなっています。トップページに地図がありますが、地名を押すと画像が開き、画像を押すと関連記事一覧(クリック数順)が開きます。記事数が多い国ほど赤く、地名もその国で記事が多い都市の文字が大きくなるようにしています。ぜひ覗いてみてください。
当サイトで海外旅ブログを執筆することも可能です(もちろん無料です)! また既にブログをお持ちの方も、当サイトからリンクを貼ることができるようになっています。パントレ開発部までお気軽にお問い合わせください。
このページが皆様のサイト管理の一助となりますことをお祈りいたします
パントレ開発部