2015年08月05日
同一サーバ内に作業環境を構築する
運用が継続されている中でリニューアルなど何らかの作業が必要になるケースがあると思います。 そのようなケースでは運用を継続しつつ作業を行うことが課題となり、今回はその対策の一例として同一サーバ内に環境を構築する方法を紹介いたします。
作業環境の構築について
同一サーバ内に、現行環境とは別のバーチャルホストを作成することで作業環境を構築する手順となります。 メリットとして、別のサーバを調達、セットアップするコストがありませんが、現行環境と同じ URL で作業することができないため、作業環境構築時およびリリース時に設定を変更する作業が必要です。
以下、トラブルを避けるため、以下の点に留意して構築を行ってください。
- データベースなど、現行環境に対応するものを作成する場合、文字コードなどの設定は揃えてください
- 各ディレクトリやファイルをコピーする場合、ユーザやパーミッション、タイムスタンプはできるだけ維持してください
作業環境の構築
1. バーチャルホストを作成する
ドキュメントルートとなるディレクトリの作成
- ドキュメントルート: /var/www2/html
- MT ディレクトリ: /var/www2/cgi-bin/mt
Web サーバの設定
- http://test.example.com/
- http://test.example.com/cgi-bin/mt/
2. ファイルのコピー
- 作成した作業環境のドキュメントルートへ、現行環境のドキュメントルートからファイルをコピーする
- 作成した作業環境の MT ディレクトリへ、現行環境の MT のディレクトリからファイルをコピーする
※ MT ディレクトリ直下の powercms_files の容量が大きい場合、この時点ではこれを除外してコピーし、あとから反映することも可能です
3. データベースのコピー
- 現行環境のデータベースをエクスポートする (mysqldump コマンド等)
- 作業環境で使う新しいデータベースを作成する
- エクスポートしたデータベースのダンプファイルを、作業環境のデータベースへインポートする
作業環境の mt-config.cgi 内のデータベースへの接続情報を書き換え、作業環境のデータベースへ接続できるようにする
4. 管理画面へのログイン確認
- 現行環境へログインし、そのままログアウトする (ログイン/ログアウトしたログが残る)
- 作業環境へログインしてシステムログを確認する。現行環境のログイン/ログアウトに関するメッセージが残っていないことを確認する。
5. Copy2Public プラグインの無効化
- Copy2Public プラグインが導入されており、ステージ環境- 公開環境への同期の運用がなされていた環境の場合は、同期をする必要が発生するまで Copy2Public プラグインを無効化する
これは作業環境から意図しない同期が行われるのを防ぐことが目的です
6. 公開 URL とパス設定
- 各ウェブサイトの全般設定画面(メニューから [設定] - [全般] を選択)へアクセスし、「ウェブサイト URL 」「ウェブサイトパス」のドキュメントルートまでの内容を変更して保存する
ウェブサイト URL | ウェブサイトパス | |
---|---|---|
変更前 | http://www.example.com/****/ | /var/www/html/**** |
変更後 | http://test.exmaple.com/****/ | /var/www2/html/**** |
7. 確認方法
- 各ウェブサイトで、アイテムのアップロード機能からテスト用のファイルをアップロードして、現行環境にファイルがアップロードされていないことを確認する
- 確認ができたらテスト用ファイルを削除する
※ 注意点
- ウェブサイト URL とウェブサイトパスを変更するまでの間に、再構築を行うと現行環境のコンテンツファイルを上書きしてしまうため、設定の変更までは管理画面を操作しないように周知する必要があります
- データベースのダンプファイルをインポートする前に、ダンプファイルに対してエディタで置換を行っておくのも有効です
8. 再構築
各ウェブサイトを再構築し、問題なく再構築ができることを確認します (Web サーバからの書き込み権限がないなどのエラーが出ないか確認します)。
9. 残り作業
- 作業環境について、現行環境と同様に cron の設定を行う
- MT ディレクトリのコピーの際に powercms_files を除外していた場合、現行環境から作業環境へコピーする
リリースの手順
リリースは現行環境と作業環境を入れ替えることで行います。 リリース前の現行環境は、リリース後にも確認が行えるよう別環境として残します。
※ 別環境を残すのはリリース作業後の短期間にしてください。別環境を長期間残す場合にはライセンスが必要ですのでご相談ください
1. リリース作業
- 作業環境の各ウェブサイトの公開 URL を変更する
ウェブサイトURL | |
---|---|
変更前 | http://test.example.com/****/ |
変更後 | http://www.exmaple.com/****/ |
- 全体の再構築を行い、URL 設定の変更を反映する
- 公開して問題ないか、コンテンツの最終確認を行う
- 現行環境と作業環境の Web サーバの設定を差し替える(以降、作業環境 => 本番環境、現行環境 => 旧環境とします)
2. Copy2Public プラグインが導入されている場合
作業環境の構築の中で Copy2Public プラグインを無効化した場合はプラグインを有効化します。
- プラグインを有効化します
- 各ウェブサイト/ブログの Copy2Public プラグイン設定「ステージ環境のパス」「公開環境のパス」を変更します
- システムレベルの Copy2Public プラグイン設定(リモートサーバ転送に関連する設定)が変更になる場合は変更してください
- ステージ環境と本番環境へ同期を行います
※ 注意点
- 作業環境で構築したコンテンツが現行環境と大量に異なる場合、同期に大量の時間がかかる場合があります
- ステージ環境と公開環境についても差し換え用のバーチャルホストを用意しておき、作業環境と同様の差し替えを行う方法が有効です
- 差し換え用に用意するバーチャルホストのドキュメントルートには作業環境で構築したコンテンツを予めコピーしておきます
3. 切り戻しについて
差し替えた Web サーバの設定を元に戻してください。
3-1. Copy2Public プラグインが導入されている場合
- 切り戻した本番環境から同期の操作を行う
ステージ環境と本番環境についてもバーチャルホストの設定を差し替えを行った場合は、差し替えた設定を元に戻してください。
4. 旧環境を残しておくための設定
リリース完了後に行います。 旧環境を利用するため、作業環境の構築で行ったいくつかの操作と同様の操作を行います。
- Copy2Public プラグインの無効化
- 公開 URL の設定
ウェブサイトURL | |
---|---|
変更前 | http://www.example.com/****/ |
変更後 | http://test.exmaple.com/****/ |
※ 「ウェブサイトパス」を変更する必要はありません
コメントを投稿する