xserver~自宅サーバー構築、Movable Typeのカスタマイズ、Linux、ブログなどについて解説していきます~

サイトロゴ
デル株式会社
HOME > Movable Type > カスタマイズ > 第33回:debootstrap ...
Movable Type
RSS Atom

Movable Type のカスタマイズ関連について扱っていきます。

第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 を、ここで作成したディレクトリ内に封じ込め、これより上位のディレクトリには、一切影響を及ぼさないようにします。

# mkdir /home/chroot

次に、debootstrap をインストールします。

# apt-get install debootstrap

インストールが完了したら、debootstrap コマンドで、chroot-debianをインストールします。ここでは、woody をインストールしていますが、sarge をインストールしたい場合は、woody の部分を sarge に変更してください。

# debootstrap woody /home/chroot/ http://ftp.arege.jp/debian/
・・・
・・・
I: Base system installed successfully.

インストールが完了したら、さっそく chroot-debian 環境内に入ります。

# chroot /home/chroot

現用サーバーと chroot-debian のシェルプロンプトを区別するため、chroot環境の .bashrc を開いて、以下のように編集しておきます。

(chroot) # vi .bashrc
export PS1='CR:\h:\W\$ '

( chroot) # source .bashrc

シェルプロンプトが以下のように、現用サーバーと区別できるように表示されていればOKです。

CR:ns1:root#

次に、/proc と /dev を mount しておきます。

CR:ns1:root# mount -t proc proc /proc
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# tzsetup
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.sh
#!/bin/sh


root=/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
◎ chroot-stop.sh
#!/bin/sh


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環境を作る

参考になりましたらポチっとお願いします♪

トラックバック

このエントリーのトラックバックURL:


コメントを投稿

ブログをやるなら
ブログランキング

スポンサードリンク
私が読んだ書籍
ブログ簡単パワーアップ Movable Type スーパーカスタマイズテクニック
カスタマイズ中心の書籍。すでにMTを触っている方にオススメ。どこからでも気軽に読めるのがGOODです。MT本の中でも特にお勧めの一冊。

Movable Type標準ハンドブック Movable Typeで今すぐできるウェブログ入門 改訂版
標準ハンドブックの名に相応しいMT入門本。インストールから基本設定、簡易なカスタマイズまで網羅。白黒ですが、デザインがすっきりしていて読み易いです。

Movable Typeでつくる!最強のブログサイト
入門編から基本設定、3カラムデザインへの変更、スタイルシートの説明、カスタマイズ応用編など広い範囲で網羅しています。370p とボリューム感も。

Movable Typeスタイル&コンテンツデザインガイド―コンテンツ管理システム(CMS)ツールとしてのMovable Type活用術&実践サイトデザイン術
MTをCMSツールとして活用するための仕組みや特徴を解説。前半のタグリファレンスは便利。後半のデザイン例は、オリジナルなデザインが作れる方なら不要です。初心者にはやや不向き。