次回からApache 2.0の活用方法を掘り下げて解説するに当たり、第1回でインストールとWebサーバとして稼働するまでの設定を終わらせておきましょう。
Apacheを収録してないディストリビューションはありません。そして、Red Hat、Fedora Core、SUSE LINUXなど、ほとんどのディストリビューションがApache 2.0を採用しています。ただし、「Apache」でパッケージを探しても見つけることはできません。「httpd」がパッケージ名に使用されています。
まずは、以下のようにしてApacheがインストールされているか否かを確認します。
# rpm -qa | grep httpd httpd-manual-2.0.54-10 system-config-httpd-1.3.2-2 httpd-devel-2.0.54-10 httpd-2.0.54-10
インストールされていない場合は、各ディストリビューションが用意しているパッケージ管理ユーティリティを使って追加インストールを行います。
# rpm -ivh http-2.0.version.rpm
または、
# yum install httpd
GUIツールを使うこともできます。
# system-config-package
通常のインストールではpreforkがデフォルトで使用され、マルチスレッド機能は組み込まれません。RPMでインストールした場合もpreforkがデフォルトです。とはいえ、マルチスレッドに対応させるために、わざわざソースからインストールし直す必要はありません。RPMでインストールした場合、workerに対応した実行ファイル「httpd.worker」も用意されるため、使用するファイルを切り替えるだけでマルチスレッド機能を有効化できます。
# /usr/sbin/httpd -V ←「-V」でコンパイルオプションを確認 Server version: Apache/2.0.54 Server built: May 23 2005 08:12:24 Server's Module Magic Number: 20020903:9 Architecture: 32-bit Server compiled with.... -D APACHE_MPM_DIR="server/mpm/prefork" ←preforkになっている -D APR_HAS_SENDFILE -D APR_HAS_MMAP (省略)
# /usr/sbin/httpd.worker -V Server version: Apache/2.0.54 Server built: May 23 2005 08:13:27 Server's Module Magic Number: 20020903:9 Architecture: 32-bit Server compiled with.... -D APACHE_MPM_DIR="server/mpm/worker" ←workerになっている -D APR_HAS_SENDFILE -D APR_HAS_MMAP (省略)
httpd.workerを使用するには、/etc/sysconfig/httpdファイルを編集します。
HTTPD=/usr/sbin/httpd.worker ←httpdかhttpd.workerを指定
標準でworkerに対応したhttpdバイナリを使用したい場合は、「SRPMから独自のRPMファイルを作成」を参考に、独自のRPMファイルを作ります。
SRPMファイルの使用方法はLinux Tips SRPMからプログラムをインストールするにはで紹介されていますが、アップデートされた情報もあるため、あらためて手順を紹介します。
まず、SRPMファイルを各ディストリビューションのソースCDまたはサイトから入手します。SRPMファイルを入手したら、RPMファイルと同様の手順でインストールを行います。
# rpm -ivh httpd-2.0.version.src.rpm
SRPMのインストール先はソースディレクトリになります。ソースディレクトリは、ディストリビューションによって異なります。
ディストリビューションによってパスは異なるものの、ソースディレクトリ配下の構成は同じで、SRPMインストールで以下のように各ファイルが配置されます。
/ | ソースディレクトリ | ||||
├ | ─ | BUILD | 作業ディレクトリ | ||
├ | ┬ | RPMS | RPMファイルの生成先 | ||
│ | │ | (Intel CPUの場合、i386ディレクトリがデフォルト) | |||
│ | ├ | athlon | |||
│ | ├ | i386 | |||
│ | ├ | i486 | |||
│ | ├ | i586 | |||
│ | ├ | i686 | |||
│ | └ | noarch | |||
├ | ─ | SOURCES | tarファイル、patchファイルの展開先 | ||
├ | ─ | SPECS | スペックファイル | ||
└ | ─ | SRPMS | rpmbuildによるSRPMファイルの生成先 |
独自のRPMファイルを作成するには、SPECファイルと呼ばれる定義ファイルを修正します。例えばconfigure時のオプションを追加したい場合は、「%build」セクションでconfigureを実行している個所を見つけて修正します。下の例では、WebDAVを有効にするためのオプションを追加しています。
../configure -C \ --prefix=%{_sysconfdir}/httpd \ (省略) --enable-dav=yes \ ←追加
RPMファイルの作成にはrpmbuildコマンドを使用し、引数にSPECファイルを指定します。
# rpmbuild -bb --clean httpd.spec
rpmbuildコマンドを実行すると、/ソースディレクトリ/RPMS/i386にRPMファイルが作成されます。Intel CPUはi386がデフォルトですが、i686アーキテクチャに最適化されたバイナリファイルを作成する場合は「--target」オプションを使用します。
# rpmbuild -bb --clean --target=i686 httpd.spec
/ソースディレクトリ/RPMS/i386や/ソースディレクトリ/RPMS/i686に作成された独自RPMファイルは、通常のRPMファイルと同じようにインストールできます。
# ls /usr/src/redhat/RPMS/i386/ httpd-2.0.54-10.i386.rpm httpd-manual-2.0.54-10.i386.rpm httpd-debuginfo-2.0.54-10.i386.rpm mod_ssl-2.0.54-10.i386.rpm httpd-devel-2.0.54-10.i386.rpm # rpm -ivh /usr/src/redhat/RPMS/i386/*rpm
あえてパッケージ管理ツールを使用せず、ソースからインストールすることもできます。ソースファイルの入手やインストール方法については、前出のApache 2.0の新機能とその実力やApacheによるWebサーバ構築で紹介されているため、ここでは簡単な紹介にとどめます。
まず最新のソースをApache Software Foundationからダウンロードして展開します。その後configureを実行し、make、make installを行います。
Downloading the Apache HTTP Server
http://httpd.apache.org/download.cgi
# tar xvfz httpd-2.0.version.tar.gz # cd httpd-2.0.version # ./configure # make # make install
Apacheのインストールにより、どこに何が作られたかを把握しておくことが今後重要になります。ソースからインストールした場合は、デフォルトで/usr/local/apache2配下にすべて収まっていますが、RPMインストールでは各所に分散配置されます。
/etc/httpd/conf/ | httpd.confなど設定ファイル | |||
/usr/lib/httpd/build/ | 拡張モジュール作成時に使用 | |||
/usr/lib/httpd/modules/ | 拡張モジュール | |||
/usr/sbin/ | apachectl、httpdなどの実行ファイル | |||
/usr/share/man/ | マニュアル(man形式) | |||
/var/log/httpd/ | ログファイル | |||
/var/www/ | ||||
├─ cgi-bin/ | CGIスクリプト | |||
├─ error/ | エラーメッセージファイル | |||
├─ html/ | Webサイトのドキュメントルート | |||
├─ icons/ | アイコンファイル | |||
└─ manual/ | マニュアル(HTML形式) | |||
RPMでインストールした場合 |
ただし、CGIスクリプトやWebサイトのドキュメントルートなどは、インストール後に設定ファイルを編集することで任意の場所に移動できます。
以降、本連載ではRPMでインストールした場合のディレクトリ構成を基に解説していきます。そのほかのインストール方法を使用した場合は、上のディレクトリ構成を参考に適宜読み替えてください。
Copyright © ITmedia, Inc. All Rights Reserved.