MAMPでWordPress本番環境をローカルにコピーする

こんにちは、気づけば今もう春が終わりそう。
こちらは暑い夏から雨が降ってしんどい夏へ移行しようとしています。

WordPressカスタムできるローカル環境を作成したくて、本番からGitHubのリポジトリを引っ張って来て、MAMPで環境を作成するなどしたのでそのメモです。
みんなが引っかかるだろうなーというのはすべからく引っかかったので、今から本番環境からローカル環境を作成するよって人は参考にしてください。
私が詰まった場所を全部、解決方法も一緒にまとめてあります。

目次

1. MAMPのダウンロード、作業用ディレクトリ作成
2. ポート被りをKillする
3. データベースのインポート、URLを置換
4. 本番のファイルを全てhtdocs/wp1_local(仮)へ移動
5. wp-config.phpを書き換え <-大事
6. .htaccessを書き換え

1.MAMPをダウンロード、作業用ディレクトリ作成

https://www.mamp.info/en/
上記の公式サイトより、MAMPをダウンロードできます。
私が使用したのは最新版のMAMP5.3です。
インストールはなんら難しいことはないので割愛します。MAMP PROはインストーラーの画面の最後くらいで左下に「Customize」というボタンが出るので、そこでチェックを外せばインストールされないので、無駄に容量を使いたくない人は外しておきましょう。

インストールしたら、Application>MAMP>htdocs下にwordpressのファイルを置くためのディレクトリを作成します。

mkdir wp_local(仮)

2. Port被りを解消する

実は最新バージョンを入れる前に、ふるいMAMPが入っていたのですが、いろんな開発でいろんなPortを使っていたせいか、ポートが使用されているためApacheを起動できません、というメッセージが出ました。
被っているPortが何に使われているのかを調べます。コンソールを開き、下記コマンドを打ち込むと何に使われているか確認できます。(処理には少し時間がかかるかも…)

lsof -i -P | grep 8888

こんな感じで出ます。これは、今8888ポートをMAMPで使っている状態です。他のプロセスで使っている場合は、別の表記になるのでいるか要らないか判断してください。

Portを使っているプロセスをKillする

要らないなーと思ったらプロセスをKillします。コマンドは下記。

Kill プロセス番号 プロセス番号 ...
Kill 1456 1507 1575

上記で、上の画像の上から3つのプロセスがKillできます。
参考サイト: https://qiita.com/narikei/items/cd39cb9f64424d95f329

3. データベースのインポート、URLを置換

MAMPにて、データベースのインポートを行います。
MAMPを開いて、”Start Sever” > “TOOL” > “PHPMYADMIN”を開きます。

ここからの手順は、下記サイトを参考に行うと良いと思います。
大まかにいうと、sqlファイルのインポート→本番のURLをローカル用に置換。


MAMPで本番環境のWordPressサイトをデータベースごとローカルに構築する
https://theorthodoxworks.com/wordpress/local-mamp-wp-site-all-data/

ローカル環境wordpressから本番環境へデーター移行する方法 ~既存サイトのテーマ変更をする手順~
https://kyraneko.com/archives/4135

この時、httpとhttpsが混ざっていたり、www有無が混ざっているような場合は注意してください。フルパスで検索かけると全ては引っかからなかったりするので。例えばURLがhttps://hogehoge.comの場合は、「hogehoge」を検索し、「localhost:8888/フォルダ名」にします。1の手順にてwp_localでディレクトリを作成していた場合は、「localhost:8888/wp_local」でURLを置換してください。

4. 本番のファイルを全てhtdocs/wp1_local(仮)へ移動

データベースの置換が終わったら、本番にあるwordpressファイルを全てローカルへ持ってきます。基本的にはFTPでもGitHubでも、作業用ディレクトリ下に全てのファイルを展開すればOKです。

5. wp-config.phpを書き換え

展開したら、DBの設定をローカル用にするためにwp-config.phpを書き換えます。下記の部分を、ローカル用に変えてください。DBの情報は、MAMPのスタートページにあるものとPHPADMINで作成したデータベース名が必要です。

define('DB_NAME', 'local_db');
define('DB_USER', 'root');
define('DB_PASSWORD', 'root');
define('DB_HOST', 'localhost');
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', '');

もし、サイトURLの定義があったらそちらも変更してください。

define('WP_HOME','http://localhost:8888/wp_local'); define('WP_SITEURL','http://localhost:8888/wp_local');

ここで定義されているのに変えるのを忘れると、リンク押したら本番環境に飛んでしまったり、リダイレクトされたりしてしまいます。私はローカルの管理画面からログインしようとすると本番に飛んでしまう、という現象で詰まりましたが、ここの定義をローカル用に変えることで解決しました!

多分、ここまでできたら、トップページと管理画面トップは表示できるようになっていると思います。MAMPのサーバーが起動できることを確認して、http://localhost:8888/wp_localへアクセスしてみてください。

6. .htaccessを書き換え

URLを生成するときもローカル用に生成してあげないといけません。
.htaccessを書き換える必要があります。直接変える場合は、下記のようにコードを変更します。

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wp_local(作業フォルダ名)
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wp_local/index.php [L]
</IfModule>

# END WordPress

または、管理画面から変更することもできます。管理画面へログインして、設定>パーマリンク設定へ飛んでください。特に何もせずに、一番下のボタンから設定を保存することで自動的に.htaccessが書き換えられます。

6-1. トップページ以下の下層ページが表示されない

この問題は、大抵この.htaccessの設定が間違っています。もしくはURL置換ミス。私は、カテゴリページとタグページが表示できず困っていましたが、設定>パーマリンク設定の「オプション」の設定が足りなかったためでした。

赤のボックスのところは、作業フォルダ名が入ります。今回の場合はwp_localを入れ、下のボタンから設定を保存することでカテゴリページやタグページも表示されるようになりました。

これでおそらく、全てのページが正常に動くようになったはずです!お疲れ様でした。他に詰まったところがあって困っている人は、コメントください。

この記事の内容が役に立ったと思ったら、SNSで記事を共有してもらえると幸いです。

コメントを残す

メールアドレスが公開されることはありません。

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