たとえばexample.comで展開しているWordPressのサイトについて、開発用にもう一つ、dev.example.comあたりで作りたいとする。Webサーバーはnginxとする。
以下に、その手順のメモ。
やること
冒頭に書いたとおり、Webサーバーnginxで、example.comに展開しているサイトを、開発用にdev.example.comに複製して展開したいとする。さらに、サイトは以下のような環境であるとする。
- ドキュメントルートは/usr/share/nginx/html/example
- nginxの設定ファイルは/etc/nginx/conf.d/example.conf
開発用サイトについては、dev.example.comとする。また、環境を以下のようにする。
- サーバーは元のサイトと同一
- ドキュメントルートは /usr/share/nginx/html/dev
- nginxの設定ファイルは/etc/nginx/conf.d/dev.conf
手順
以下に、ざっくりと手順を書く。
- 開発用のドメインを取得し、DNSの設定を適切に行う
- /etc/nginx/conf.d/example.confをベースにして、/etc/nginx/conf.d/dev.example.confを作成し編集する
- server_nameを開発用ドメイン(ここではdev.example.com)にする
- rootを開発用ドキュメントルート(ここでは/usr/share/nginx/conf.d/dev.conf)にする
- 開発用サイトのため、DBを複製する。ここではdev_wpdataとする
- 複製したDB(dev_wpdata)のうち、wp_optionsのsiteurlとhomeを、開発用サイトのURL(ここではdev.example.com)にする
- 開発用サイトのwp-config.phpでデータベース名と認証用ユニークキーを書き換える
- nginxとphp-fpmの再起動
これで終わり。定期的に同期するとか考え出すと面倒臭いかも。やるとすれば、ドキュメントルートのwp-config.php以外をsyncして、DBもsyncすれば良いだろう。
さて、個々の手順のやり方については詳述はしないが、次節にざっと注意事項をメモする。
手順の諸注意
DBの複製はmysqldumpコマンドでもいいし、GUIのクライアントソフトなら全テーブルのSQLダンプ機能とかあると思うので、それを使って復元してもよい。
サイトURLの書き換えは、本来ならログインして管理画面から行うと良いのだけれど、ログインの時に元ドメインにぶっ飛ばされてしまうので、金庫の中の鍵状態。なので、直接DBを書き換える。UPDATE文でやってもよいし、GUIなクライアントソフトでお手軽に直接書き換えてしまってもよいだろう。
wp-config.phpの書き換えは忘れがち。
nginx、php-fpmの再起動は、CentOS 7とかsystemdなシステムならば以下。
sudo systemctl restart nginx.service
sudo systemctl restart php-fpm.service
以上。
コメント