前提としてこのサイトの運用を前提としています。
はじめに
local環境で対応することと本番環境で対応することを分けます。
環境
local環境と本番環境のみです。
今回は開発環境は用意しません。
自分のサイトなので、バグが起きてしまっても、すぐに元の状態に戻せれば良いからです。
本番環境でやること
修正したことによって大きなレイアウト崩れやバグが起きる可能性の少ない作業
- 記事の更新
- プラグインのアップデート
- wordpressのアップデート
- テーマの編集
- プラグインの設定変更
- プラグインの追加
など管理画面で行えること全てです。
関係ないけど、テーマのコードは管理画面で編集できなくなったんですかね。
もしできるようであれば、コードの編集は本番環境では行わないようにします。
プラグインやwordpressのアップデートは結構高頻度で行われるため、アップデートがあるたびにローカル環境でvagrantを立てアップデートしてして本番環境にデプロイするというのはリスクではあるが、手間だと思いました。
そこでアップデートなどは全て本番環境でやってしまおうと思いました。
アップデートしてバグが起きるなどの可能性はあるのですが、今までアップデートしてバグが出たことが一度もないのと、もしバグが起きた場合は、ローカル環境からpushすればある程度までは元に戻せるからです。(ただし小まめにローカル環境にpullしておく必要があります。)
ローカル環境でやること
修正したことによってレイアウト崩れやバグが起きる可能性のある作業
- テーマの編集
- プラグインの追加
などwordpressのカスタマイズに必要な事柄全て。
テーマの編集は、修正箇所をブラウザで確認しながら作業したいのでローカル環境で作業する必要があります。
そのため、wordpressをカスタマイズするにあたり、テーマのコードを編集する以外にもpluginの設定値を変えるなどの作業も。テーマの編集も含めた全てのこととしました。
gitの管理について
wordpressでどこまでをgitで管理すべきが悩みます。
これがベストプラクティスだとは思わないのですが、今回はテーマだけにしようと考えています。
もしくはgitで管理する必要もないかと思います。
wordpressはカスタマイズするとDBやプラグインやテーマなどが依存関係にある場合が多いです。
なのでテーマだけgitで管理しても、サーバーのデータが飛んだ場合、元に戻すことができません。
であれば本番環境のデータをローカルの環境にデプロイすることをバックアップとすればよいのかと思いました。
wordpressをgitで管理する時のベストプラクティスについては別で記事を書こうと思います。
ローカル環境でカスタマイズする時の手順
本番環境とローカル環境をあわせるために、本番環境からローカル環境にデプロイします。
wordmove pull -all
ローカル環境でカスタマイズを終えたらローカル環境から本番環境にデプロイします。
wordmove push -all
wordmoveを使ったマルチサイトのデプロイ方法
マルチサイトをwordmoveでデプロイする場合、毎回DBのドメインを変更しないといけません。
デプロイする前に以下の作業を追加しなければなりません。
本番環境からローカル環境にデプロイする場合
wordmove pull --all
wp search-replace --network 'example.com' 'example.test'
本番環境からローカル環境にデプロイする場合
wp search-replace --network 'example.test' 'example.com'
wordmove push --all
wp search-replace --network 'example.com' 'example.test'
毎回実行実行するのがめんどくさいのでshellスクリプトに書いて実行するようにすると便利です。