HP Apache-based Web Server――第3回 ボリューム管理とApache2の設定(その1)UNIX USER10月号「unixuser.jpサーバー構築記」より転載(1/2 ページ)

3回に渡ってお送りしてきた「unixuser.jpサーバー構築記」。今回は、Webサーバー用の領域確保とApache2の設定などについて紹介していこう。

» 2004年09月22日 17時00分 公開
[渡辺真次,UNIX USER]
HP Apache-based Web Server

 HP-UXのWebサーバー「HP Apache-based Web Server」(以下HP Apache)は、Apache Software Foundationのオリジナルをベースに、ほかのオープンソースプロジェクトのモジュールやHP独自の拡張を組み合わせたものとなっている。HP Apacheは、HP-UX Web Server Suiteの1コンポーネントと位置付けられ、インストールされているディレクトリも、製品構成と同じようになっている(表1)。

 なお、以前との互換性から、/opt/hpapache2→/opt/hpws/apacheというシンボリックも残されている。

表1 HP-UX Web Server Suiteのコンポーネント
製品名 ディレクトリ
HP Apache-based Web Server /opt/hpws/apache
HP-UX Webmin-based Admin /opt/hpws/webmin
HP-UX Tomcat-based Servlet Engine /opt/hpws/tomcat
HP-UX XML Web Server Tools /opt/hpws/xmltools

主要なファイルのディレクトリ

 拡張されているHP Apacheだが、/opt/hpws/apache以下の構成はオリジナルとほぼ同じである。主要なディレクトリのデフォルト設定を整理すると、表2のようになる。

表2 /opt/hpws/apache以下の構成
ディレクトリ 中身
logs/ アクセス/エラーログが置かれる場所
conf/ 設定ファイル
cgi-bin CGIを置くディレクトリ
htdocs ドキュメントルート

HP Apacheのchroot拡張

 HP Apacheでは、設定ファイルのhttpd.confに「Chroot」ディレクティブ*を記述することによって、Webサーバーをchroot環境的に動作させることが可能だ。前回紹介したBastilleで設定していると、httpd.confにChrootディレクティブが自動的に書き込まれている。

Chroot /var/jail/apache2

 この記述によって/var/jail/apache2が仮想的なルートディレクトリになる。このディレクトリ下には、Bastilleで設定した際に、最低限の稼働環境が/opt/hpws/apache/util/chroot_os_cp.shによってコピーされている。たとえば、/var/jail/apache2以下のbinディレクトリはusr/binへのリンクとなっていて、その中には10コマンドだけしか用意されていない。

bin -> ./usr/bin
awk       date      grep      printenv  sh
cat       echo      ls        sed       whoami

 chroot環境とはいっても/var/jail/apache2ディレクトリ下にはHP Apache本体の起動環境はなく、起動順序もリスト1のような手順となっている。一般的な利用形態の、まずchroot環境に移り、その環境でサービスを起動させるものとは異なる。デフォルト設定だとchroot環境外の/opt/hpws/apache/logs以下にログファイルが出力され、設定ファイルも/opt/hpws/apache/conf/httpd.confを参照している。

リスト1 HP Apacheの起動順序
/sbin/init.d/hpws_apache start

/opt/hpws/apache/bin/apachectl start

root:/opt/hpws/apache/bin/httpd
↓ httpd.confを読み、chrootへ移行
www:/opt/hpws/apache/bin/httpd

ボリュームの作成

 以上から、デフォルト設定だと、/opt下にログ、/var下にHTMLドキュメント群が書き込まれていくことになる。Webサーバーのログはけっこう膨大なものになるし、HTMLドキュメントも増え続ける。そこで管理を楽にするために、新しいボリューム/var/chrootを作り、Webサーバー関連で変化する部分は1つのボリュームにまとめて管理*していく。

ボリュームの追加

 ボリュームの追加は、万能設定ツールのSAMから行える。SAMを起動したら「Disks and File System」−「Logical Volumes」とクリックしていくと、現在のボリューム(パーティション)状況が表示される(図1)。ここでメニューの[Actions]−[Create]で表示されるウィンドウで[Select Volume Group]ボタンから作成対象となるボリュームグループを選択する。現在利用しているディスクの空き領域から割り当てるだけなので、インストール時に用意されたvg00を選択する。ボリュームグループを選択すると、その下にある[Define Now Logical Volume(s)]ボタンがアクティブになるので、これをクリックして、新しいボリュームの設定を行う(図2)。ここでは次のように、LV Nameは既存のボリュームからの昇順の名前に、容量は10GB確保した。

LV Name:            lvol9
LV Size:            10240
Mount Directory:    /var/chroot

 中ほどに並ぶ2つのボタンは詳細設定を行うもので、[Modify LV Defaults]ボタンがミラー/ストライピングの設定、[Modify LV Defaults]ボタンがファイルシステムの設定である。利用中のマシンにはディスクが2台あるので既存のボリューム同様ミラー設定にし、ファイルシステム関連はデフォルトのままにした。

 以上で[add]ボタンを押すと設定内容がトップのペインに表示される。内容を確認し、問題があれば、[Modify]や[Remove]ボタンを押してやり直せば良い。問題なければ、[OK]ボタンを押し、前のウィンドウに戻って再度[OK]ボタンを押すと、実際に作成される。

図1 図1 現在のボリューム状況(クリックで拡大します)
図2 図2 新しいボリュームの設定(クリックで拡大します)

新しいボリュームへの引っ越し

 続いて確保したボリュームをマウントする。役割的には/varなどと同じなので、/etc/fstabの/varの項目をコピーして、ボリューム名とマウントポイントを書き換える。

/dev/vg00/lvol8 /var vxfs delaylog 0 2
↓コピーして修正すると楽
/dev/vg00/lvol9 /var/chroot vxfs delaylog 0 2

 設定できたらマウントし、chroot環境をコピーする。また、ログ用のディレクトリとファイルも作っておく(実行例1)。

 以上でファイル領域の準備は完了である。

実行例1 chroot環境のコピーとログの準備
# mount /var/chroot
# cd /var/jail
# tar cf - apache2 |(cd /var/chroot; tar xf -)
# mkdir /var/chroot/logs
# cd /var/chroot/logs
# touch access_log error_log

このページで出てきた専門用語
ディレクティブ
プログラム中に埋め込むコンパイラへの命令。Apache設定ファイルhttpd.confにおいては設定項目のようなもの。

1つのボリュームにまとめて管理
ディスク2台、ミラー構成で実質1台の1Uマシンなのでこうしたが、ディスクが多数あり負荷が高い環境であれば、ログとドキュメントを分けてパフォーマンス向上をねらったほうが良いだろう。
       1|2 次のページへ

Copyright(c)2010 SOFTBANK Creative Inc. All rights reserved.

注目のテーマ