第3回 Apacheの基本インストール

一志 達也<ichishi@pochi.tis.co.jp>
TIS株式会社
2001/3/9

Appendix

--quiet 画面上にメッセージを表示しない
--silent quietと同じ
--verbose 画面上に詳細なメッセージを表示
--shadow[=DIR] コンパイルに必要なファイルを指定したディレクトリ以下に作成
--help 画面上にヘルプを表示
--show-layout 画面上にApacheがインストールされるディレクトリを表示
--with-layout=[F:]ID 指定したファイルの内容のとおりにApacheのファイルを配置する
--target=TARGET 設定ファイルなどの名前を変更(httpd.conf→ichishi.confなど)
--prefix=PREFIX Apacheがインストールされるディレクトリを変更する
--exec-prefix=EPREFIX ファイルの種類別にディレクトリを指定する。変更後、どこにインストールされるかはshow-layoutで確認
--bindir=DIR
--sbindir=DIR
--libexecdir=DIR
--mandir=DIR
--sysconfdir=DIR
--datadir=DIR
--iconsdir=DIR
--htdocsdir=DIR
--cgidir=DIR
--includedir=DIR
--localstatedir=DIR
--runtimedir=DIR
--logfiledir=DIR
--proxycachedir=DIR
--add-module=FILE Apacheの標準以外のモジュールファイルを追加する
--activate-module=FILE
--permute-module=N1:N2 モジュールを組み込む順序を指定する
--enable-module=NAME 指定したApacheの標準付属モジュールを組み込む
--disable-module=NAME 指定したApacheの標準付属モジュールを組み込まない
--enable-shared=NAME 指定したApacheの標準付属モジュールをDSO(補足3)で組み込む
--disable-shared=NAME 指定したApacheの標準付属モジュールをDSOで組み込まない
表1 これらのオプションは、./configureに続いて指定する。これ以外にもオプションは存在するが、それらは使うことが考えにくいか、インストール後でも変更可能なものである。DSOについては補足3を参照

モジュール 機能 デフォルト
mod_access ホストに基づいたアクセス制御
Yes
mod_actions ファイル種別/メソッドに基づいたスクリプトの実行
Yes
mod_alias Aliases and redirects.
Yes
mod_asis .asis ファイルハンドラー
Yes
mod_auth テキストファイルを用いたユーザ認証
Yes
mod_auth_anon FTPスタイルの匿名(Anonymous)ユーザー認証
No
mod_auth_db バークレイDBファイルを用いたユーザー認証
No
mod_auth_dbm DBMファイルを用いたユーザー認証
No
mod_autoindex 自動ディレクトリリスト表示
Yes
mod_cern_meta HTTPハンドラメタファイルのサポート
No
mod_cgi CGIスクリプトの実行
Yes
mod_digest MD5ユーザー認証
No
mod_dir 基本的なディレクトリハンドリング
Yes
mod_env CGIスクリプトへの環境変数の継承
Yes
mod_example Apache APIの実証
No
mod_expires 割り当ての終了:リソースへのヘッダ
No
mod_headers リソースに任意のHTTPヘッダを加える
No
mod_imap イメージマップファイルのハンドラ
Yes
mod_include サーバで解析するドキュメント
Yes
mod_info サーバの設定情報
No
mod_log_agent ユーザーエージェントのログ蓄積
No
mod_log_config ユーザー定義ログ
Yes
mod_log_referer ドキュメントリファレンスのログ蓄積
No
mod_mime ファイル拡張子を使ったドキュメントタイプの決定
Yes
mod_mime-magic magic numbers を使ったドキュメントタイプの決定
No
mod_negotiation コンテンツのネゴシエーション
Yes
mod_proxy キャッシングプロキシ機能
No
mod_rewrite 通常表記を使った強力なURI-to-filenameマッピング
No
mod_setenvif クライアント情報を基にした環境変数の設定
Yes
mod_spelling URLでのminor typosの自動訂正
No
mod_status サーバステータスを表示
Yes
mod_unique-id あらゆるリクエストのためのユニークなリクエスト識別の生成
No
mod_userdir ユーザーのホーム・ディレクトリ
Yes
mod_usertrack cookieを用いたユーザー追跡(mod_cookies.cと置き換え)
No
表2 ここに挙げたモジュールはLinux用Apache 1.3.*のもの。Windows用や古いバージョンのApacheでは、ここに挙げていないモジュールが含まれていることがある。各モジュールの詳細などは、http://japache.infoscience.co.jp/japanese_1_3/manual/mod/index.htmlを参照

補足1 Apacheのインストールに必要なツール
 tarやgzipだけでなく、Apacheをインストールするためには以下のようなツールも必要となる。このほか、インストール要件を確認していただくため、そのための情報も掲載しておくので参考にしていただきたい。Linuxであれば、たいていの場合は問題ないと思うが、あえてツールをインストールしていないこともあるので注意していただきたい。

gcc
 Apacheをコンパイルするには「gcc」(GNU C Compiler)が必要になる。それ以外のCコンパイラではうまくいかない可能性が高い。また、バージョンが古すぎるのもよくない。Apacheのコンパイルに必要なのは、少なくともバージョン2.7.2以上とされているが、現時点での最新版は2.96である。gccがインストールされていれば、「gcc -v」と入力することでバージョンを確認できる。

make
 gccと同じく、makeもアプリケーションのコンパイルに欠かせない。「make -v」と入力すればバージョンに関する応答があるはずなので、応答がないようならインストールするようにしてほしい。

 現在の一般的なLinuxディストリビューションであれば、これらのツールはApacheのインストールに支障のないバージョンが収録されている。ただし、商用UNIXの場合は、makeもGNUのmakeを使わなければならない点に注意すること。ともかく、なんでもかんでもGNUから最新版を入手してしまえるなら、その方が近道かもしれない。

補足2 モジュールとは
 Apacheを利用するうえでモジュールは欠かせない。なぜなら、Apacheからすべてのモジュールを外したら、ごく単純な機能しか持たないWebサーバになってしまうからだ(CGIプログラムさえも実行できなくなってしまう!)。

図2 Apacheとモジュールのイメージ
 そのApacheにさまざまな機能を付け加え、高度なWebサーバに仕立て上げるのが、モジュールに課せられた役割である(図2)。ちょうど、宇宙ステーションのごとく、モジュールを追加することでApacheの機能はどんどん拡張されていくわけだ。こうした構造のおかげで、新しい技術や特殊なニーズが登場しても、モジュールさえ作成すれば容易にApacheの機能を拡張できるのである。

 本文中でも説明しているとおり、Apacheには初めから幾つかのモジュールが組み込まれている(表2)が、これら以外にも数多くのモジュールがインターネットなどで公開されている。その中には、暗号化されたHTTP(HTTPS)を利用するためのSSLモジュール(mod_ssl)や、PHPのようにプログラム言語を実行するエンジンも含まれる。こうしたポピュラーなモジュールから、マイナーなモジュールまで用意されているから、何か困ったことがあればモジュールで機能を拡張できないか調べてみるといいだろう。

補足3 DSOとapxs
 補足2で「モジュールを使えばApacheをどんどん拡張できる」と説明した。だとすれば、なぜ初めからすべてのモジュールを組み込んでおかないのだろうか? どうしてわざわざ組み込みを宣言しなくてはならないのだろうか? その答えは単純なもので、必要もないモジュールを組み込んでしまえば、バイナリが肥大化するし動作が遅くなるかもしれないからである。

 では、インストール時には何も組み込まなかったとして、後から必要になったらどうなるのだろうか。その場合、通常のモジュールとしてApacheに組み込むのならば、Apacheを再コンパイルしなければならない。しかし、それではサーバを停止しなくてはならないし、なにより面倒だと思われるだろう。

 そのような面倒と運用上の問題を回避するため、Apache 1.3から「DSO」(Dynamic Shared Object)と呼ばれる機能が組み込まれた。この機能を有効にしておくと、あらかじめApacheにモジュールを組み込まなくても、モジュールのファイルさえ用意すれば必要なときだけ組み込めるようになる。ただし、DSOを有効にするには、Apacheをインストールする際に「SOモジュール」(mod_so)を組み込んでおかなくてはならない。

 SOモジュールを組み込むには、configureを実行する際に「--enable-module=so」を指定すればいいのだが、場合によってはうまくいかないかもしれない。その場合は、さらに「--enable-rule=SHARED_CORE」も指定する。心配ならば、最初から2つとも指定しておけば、ほとんどの場合問題なくDSOを有効にできるはずだ。詳しく知りたい方はApacheのマニュアル(ソースディレクトリの中のhtdocs/manual/dso.html)などを参照してほしい。

 DSOを有効にすればモジュールの追加は容易になるが、モジュール側でもDSOへの対応が必要となるから注意しなくてはならない。

 その方法はモジュールごとに異なるから、各モジュールの解説を参考にしていただきたいのだが、たいていは「apxs」と呼ばれるApacheのツールを使って行われる。ただし、Apacheにあらかじめ添付されているモジュールは、configureを実行する際に「--enable-shared=NAME」(NAMEはモジュールの名前)と指定するだけでDSOに対応できる。

 いずれにしても、DSOは便利な機能だから有効に活用していただきたい。

5/5

Index
ApacheによるWebサーバ構築
  コンパイルとは?
 なぜコンパイルが必要なのか
  インストールの準備作業
 Apacheの入手
 ソースコードの解凍
 必ず見るべき2つのファイル
 コンパイル前設定を行うconfigure
  コンパイルとインストール
 makeでコンパイル
 総仕上げのインストールコマンド
  Apacheの起動と動作確認
Appendix

連載 ApacheによるWebサーバ構築


 Linux Squareフォーラム サーバ構築・運用関連記事
連載:Heartbeatでかんたんクラスタリング(連載中)
オープンソースソフトウェアの「Heartbeat」を使ってHAクラスタを実現し、サービスを「落とさない」仕組みを実現します
特集:Apache 2.2でWebサイトをパフォーマンスアップ!
最新安定版Apache 2.2は、何が変わったのか? 最新のApacheを新機能の使い方とともに解説する
連載:実用 Apache 2.0運用・管理術(全8回)
本連載では、Apache 2.0の運用や管理方法を解説する。まず必須設定と基本的なセキュリティ対策を行い今後の運用に備える
連載:実用 BIND 9で作るDNSサーバ(全15回)
本連載では、BIND 9の構築/運用方法を解説していく。実際に役立つことを目的に、セキュリティや大規模運用などのテーマを取り上げていく
連載:実用qmailサーバ運用・管理術(全14回)
本連載を通して、qmailによるメールサーバの高度な構築・運用・管理術を紹介。SPAM対策やML管理からサーバでのウイルスチェックなどまで
特集:Samba 3.0の全貌 改訂版
Samba 3.0リリースから8カ月。ここであらためて、Samba 3.0系列の新機能、インストール方法、国際化の現状を解説する

MONOist組み込み開発フォーラムの中から、Linux関連記事を紹介します

TechTargetジャパン

Linux Square フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

キャリアアップ



- PR -
@IT Sepcial

イベントカレンダー

PickUpイベント

- PR -
もっと見る
- PR -

お勧め求人情報

ホワイトペーパーTechTargetジャパン

@IT Sepcial
ソリューションFLASH