連載
» 2005年08月02日 00時00分 UPDATE

実用 Apache 2.0運用・管理術(1):Apache 2.0の必須設定と基本セキュリティ対策 (2/3)

[鶴長鎮一,@IT]

Apache 2.0のインストール

 次回からApache 2.0の活用方法を掘り下げて解説するに当たり、第1回でインストールとWebサーバとして稼働するまでの設定を終わらせておきましょう。

RPMでインストールする場合

 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
Fedora Core4の場合

 インストールされていない場合は、各ディストリビューションが用意しているパッケージ管理ユーティリティを使って追加インストールを行います。

# rpm -ivh http-2.0.version.rpm
インストールCDやサイトからダウンロードしたファイルを使ってインストールする場合

 または、

# yum install httpd
Fedora Coreでyumコマンドを使用した場合

 GUIツールを使うこともできます。

# system-config-package
Fedora Core、Red Hatのパッケージ管理GUI
画面1 パッケージ管理でWebサーバを選択 画面1 パッケージ管理でWebサーバを選択
画面2 標準パッケージと必要なエクストラパッケージの選択 画面2 標準パッケージと必要なエクストラパッケージの選択

 通常のインストールでは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
(省略)
デフォルトのhttpdデーモンのビルド情報(Fedora Core4のhttpd-2.0.54-10の場合)
# /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デーモンのビルド情報(Fedora Core4のhttpd-2.0.54-10の場合)

 httpd.workerを使用するには、/etc/sysconfig/httpdファイルを編集します。

HTTPD=/usr/sbin/httpd.worker ←httpdかhttpd.workerを指定
/etc/sysconfig/httpd

 標準でworkerに対応したhttpdバイナリを使用したい場合は、「SRPMから独自のRPMファイルを作成」を参考に、独自のRPMファイルを作ります。

SRPMから独自のRPMファイルを作成

 SRPMファイルの使用方法はLinux Tips SRPMからプログラムをインストールするにはで紹介されていますが、アップデートされた情報もあるため、あらためて手順を紹介します。

 まず、SRPMファイルを各ディストリビューションのソースCDまたはサイトから入手します。SRPMファイルを入手したら、RPMファイルと同様の手順でインストールを行います。

# rpm -ivh httpd-2.0.version.src.rpm

 SRPMのインストール先はソースディレクトリになります。ソースディレクトリは、ディストリビューションによって異なります。

  • Fedora Core/Red Hat Linux:/usr/src/redhat/
  • SUSE LINUX:/usr/src/packages
  • Turbolinux:/var/src/rpm

 ディストリビューションによってパスは異なるものの、ソースディレクトリ配下の構成は同じで、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 \ ←追加
/ソースディレクトリ/SPECS/httpd.specの例

 RPMファイルの作成にはrpmbuildコマンドを使用し、引数にSPECファイルを指定します。

# rpmbuild -bb --clean httpd.spec
-bb:バイナリパッケージ(RPM)を作成します。RPMと同時にSRPMを再作成する場合は「-ba」を指定します。
--clean:ビルド後に、BUILDディレクトリに展開したソースファイルなどの作業ファイルを削除します。

 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© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。