3回に渡ってお送りしてきた「unixuser.jpサーバー構築記」。今回は、Webサーバー用の領域確保とApache2の設定などについて紹介していこう。
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というシンボリックも残されている。
| 製品名 | ディレクトリ |
|---|---|
| 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 |
| 表1 HP-UX Web Server Suiteのコンポーネント | |
拡張されているHP Apacheだが、/opt/hpws/apache以下の構成はオリジナルとほぼ同じである。主要なディレクトリのデフォルト設定を整理すると、表2のようになる。
| ディレクトリ | 中身 |
|---|---|
| logs/ | アクセス/エラーログが置かれる場所 |
| conf/ | 設定ファイル |
| cgi-bin | CGIを置くディレクトリ |
| htdocs | ドキュメントルート |
| 表2 /opt/hpws/apache以下の構成 | |
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を参照している。
/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]ボタンを押すと、実際に作成される。
続いて確保したボリュームをマウントする。役割的には/varなどと同じなので、/etc/fstabの/varの項目をコピーして、ボリューム名とマウントポイントを書き換える。
/dev/vg00/lvol8 /var vxfs delaylog 0 2 ↓コピーして修正すると楽 /dev/vg00/lvol9 /var/chroot vxfs delaylog 0 2
設定できたらマウントし、chroot環境をコピーする。また、ログ用のディレクトリとファイルも作っておく(実行例1)。
以上でファイル領域の準備は完了である。
# 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マシンなのでこうしたが、ディスクが多数あり負荷が高い環境であれば、ログとドキュメントを分けてパフォーマンス向上をねらったほうが良いだろう。
Copyright(c)2010 SOFTBANK Creative Inc. All rights reserved.