Apacheの基本インストール:ApacheによるWebサーバ構築(3)(5/5 ページ)
Apacheについて理解できたところで、今回から2回に分けてApacheのインストール方法を解説する。まずは標準モジュールとApacheのコンパイル/インストール方法をマスターしよう。
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プログラムさえも実行できなくなってしまう!)。
その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=NAMENAME」(NAMEはモジュールの名前)と指定するだけでDSOに対応できる。
いずれにしても、DSOは便利な機能だから有効に活用していただきたい。
- Apacheパフォーマンス・チューニングの実践
- Apacheパフォーマンス・チューニングのポイント
- ログローテーションとAnalogの導入
- Apacheのログを活用しよう
- SSLによる安全なWebサイト作り
- ユーザー認証によるアクセス制限(データベース認証編)
- ユーザー認証によるアクセス制限(ベーシック認証編)
- IP認証によるアクセス制限のテクニック
- バーチャルホストによる複数サイトの同時運用
- SSIの仕組みと有効化・制限の設定
- 仮想ディレクトリとマッピングの設定
- 絶対外せない基本設定とサーバの動作
- ApacheのSSL対応化と環境設定
- Apacheの基本インストール
- Webの仕組みとWebサーバの構造
- Apacheについて知ろう
Copyright © ITmedia, Inc. All Rights Reserved.