いつも忘れるwp-envで本番環境をローカルで再現するまで
目的
久しぶりに使うと忘れているのでメモします。
インストール・アップデート
※ npmを普段使っていないMacユーザーです
- Node.js をLTS最新に
-
$ npm update -g
でアップデート -
$ npm -g i @wordpress/env
で wp-env のインストール - Docker Macをインストール
始めたい
環境ファイル
.wp-envファイルを準備。
実行
Dockerを起動したあとで
$ cd /path/to/環境ファイルのあるディレクトリ
$ wp-env start
を実行。最初時間かかる。
http://localhost:8888/wp-admin に user: admin, password: password でログイン。
本番環境からローカルへコピー
All in One MigrationでDBとかプラグインとかをコピー
プラグインもコピーすると楽。
本番環境でエクスポート
高度な設定を開いて、いらないものはどんどんチェックする。メディアをインポートすると重くなるのでなし。
ローカルへインポート
ローカルになければAll in One Migrationを有効にしてインポートする。
終わったら再読み込みして、本番と同じusername/passwordで管理画面にログインする。
インポートの上限が2MBで足りないとき
以下のコマンドで.htaccess を開いて
php_value upload_max_filesize 128M
php_value post_max_size 128M
php_value memory_limit 256M
php_value max_execution_time 300
php_value max_input_time 300
を追記
$ wp-env run cli vi .htaccess
編集後
$ wp-env start
パーマリンクの保存ボタンを押す
設定>パーマリンク で「変更を保存する」ボタンを押す。パーマリンクを更新しておかないと変更しているパーマリンクやカスタム投稿などのリンクが反映されないので忘れずに押す。
その他
DBに接続したい時
ローカルホストのポート番号はDockerアプリを見ると載っている。起動した時にポート番号が変わるのでチェック。
user: root, password: password でした。パスワードは空欄だと思ってたら違ってハマりました。
DBをリセットしたい時
$ wp-env clear development
でDBをクリア。
私の環境でよく起こるトラブルの対応
Google Cloud Storage plugin を使っているせいなのかもですが、All in One Migrationのインポートが途中で進まなくなり、エラーになってしまいがちです。毎回忘れています。
そんな時の復旧方法。
無効化してエクスポートし直す
問題となっているプラグイン Google Cloud Storage plugin を無効化してエクスポートしたものをインポートする。
Discussion