第33回:debootstrap でMovable Typeのテスト環境を構築する
第32回では、.htaccess によるURL転送について説明しました。今回は、Movable Typeのカスタマイズとは関係ありませんが、LinuxOS(Debian)にMovable Typeのテスト環境を構築する方法について説明していきます。
Movable Typeをバージョンアップしたり、テンプレートを差し替えたり、カテゴリーを新規に追加したり、UTF-8化したり、PHP化したりなどなど、ブログ全体に影響が及ぶような設定変更を行う場合、考えなしに現用サーバーに直接手を加えてしまうと、後で不具合が発生した場合などに、取り返しのつかない事態が発生する可能性がなきにしもあらずです。勿論、大幅な変更を行う場合には、事前にバックアップをとっておくのは当然ですが、それでも現用サーバーを直接いじるのは危険を伴うので、通常は、テスト環境で試してから本番に移行するケースがほとんどでしょう。
テスト環境を構築する場合、データベースを新規に作成したり、テスト用マシンを用意したりなど、いくつかの方法が考えられますが、ここでは現用サーバー内に chroot環境を構築し、限定された領域内にテスト用環境を構築していく方法について説明していきます。
chroot とは、わかりやすくFTPで例えるならば、通常、ホームディレクトリより上位のディレクトリへアクセスできないのと同じように、ホームディレクトリより上位の領域に影響が及ばないよう限定された領域内に封じ込める(閉じ込める)ことを言います。chroot環境内の Apache2やMySQLが動作するポート番号を、現用サーバーが動作するポート番号と異なる番号で動作させる事で、同一マシン上で、Apache2 や MySQLを複数起動させる事が可能となります。
さっそく説明に入ります。以下では、LinuxOSにDebianを使用していることを前提に話を進めていきます。これから新規にインストールするOSを、現用サーバーと区別して「chroot-debian」 と明記していきます。まず、chroot-debian の生活の場となるホームディレクトリを作成します。chroot-debian を、ここで作成したディレクトリ内に封じ込め、これより上位のディレクトリには、一切影響を及ぼさないようにします。
次に、debootstrap をインストールします。
インストールが完了したら、debootstrap コマンドで、chroot-debianをインストールします。ここでは、woody をインストールしていますが、sarge をインストールしたい場合は、woody の部分を sarge に変更してください。
・・・
・・・
I: Base system installed successfully.
インストールが完了したら、さっそく chroot-debian 環境内に入ります。
現用サーバーと chroot-debian のシェルプロンプトを区別するため、chroot環境の .bashrc を開いて、以下のように編集しておきます。
export PS1='CR:\h:\W\$ '
( chroot) # source .bashrc
シェルプロンプトが以下のように、現用サーバーと区別できるように表示されていればOKです。
次に、/proc と /dev を mount しておきます。
CR:ns1:root# mount -t devfs devfs /dev/
あとは、必要なものを自由にインストールしていくだけです。Movable Typeが動かせる状態にするだけならば、apache2 と php と mysql をインストールすればOKです。
但し、現用サーバーで動作しているapache2 と MySQL のポート番号と重複しないように、apache2 が動作するポート番号を ( chroot )/etc/apache2/ports.conf で80番以外に設定し、MySQL が動作するポート番号を ( chroot )/etc/mysql/my.cnf で 3306番以外に設定するようにしましょう。
タイムゾーンと apt-line の設定は、以下コマンドを打ち込んで、各自の環境に合わせて設定をしておいてください。apt-get update、apt-get upgrade も忘れずに。
CR:ns1:root# apt-setup
現用サーバーと同じ環境を作るならば、基本的には、現用サーバーで使用している config ファイルを、/home/chroot 以下にそのままコピーして流用すればいいだけなので、新規にテスト用マシンを用意するより、はるかに簡単にテスト環境を構築する事ができます。
さらに、構築した chroot-debian 環境をベースとして保存しておけば、次回、異なる環境下でテストが必要になった時に、そのchroot-debian ディレクトリをまるごと複製するだけで、新たなテスト環境を作成する事ができます。chroot環境を作成するために、何度も apt-get してインストールしなくて済むように、ベースとなる chroot-debian 環境を保存しておくことをオススメします。
■自動化スクリプトの作成
/proc や /dev は、システムを再起動させる度に mount させる必要があります。また、chroot環境内のapache2やMySQLもその都度、起動させなければならないので、この一連の作業を自動化するスクリプトを作成しておきます。chroot に入るスクリプトを chroot-start.sh、chroot から抜けるスクリプトを chroot-stop.sh として作成しています。
◎chroot-start.shroot=/home/chroot
PATH=/usr/sbin:/bin:/usr/bin
export PATH
chroot $root mount -t proc proc /proc
chroot $root mount -t devfs devfs /dev
chroot $root /etc/init.d/apache2 start
chroot $root /etc/init.d/mysql start
chroot $root
exit 0
PATH=/usr/sbin:/bin:/usr/bin
export PATH
/etc/init.d/apache2 stop
/etc/init.d/mysql stop
umount /proc
umount /dev
以上、簡単に説明してきましたが、これで第33回は終了です。
■参考にさせていただいたサイト
nemuiDoc: Debianでchroot環境を作る 参考になりましたらポチっとお願いします♪