第15章 Web サーバー

HTTP (Hypertext Transfer Protocol ハイパーテキスト転送プロトコル) サーバー、または Web サーバー は、Web 上でクライアントにコンテンツを提供するネットワークサービスです。通常これは Web ページを意味しますが、他のドキュメントも同様に提供されます。

15.1. Apache HTTP サーバー

このセクションでは、Apache Software Foundation によって開発された堅牢な全機能付きオープンソースウェブサーバーであり、Red Hat Enterprise Linux 6 に収納されている Apache HTTP サーバー 2.2 に焦点を置いています。ここでは、httpd サービスの基本的な設定を説明すると共に、サーバーモジュールの追加、仮想ホストのセットアップ、及びセキュアなHTTP サーバーの設定を取り扱っています。
Apache HTTP サーバー 2.2 とバージョン 2.0 との間には重要な相違が存在します。そのため Red Hat Enterprise Linux の以前のバージョンからアップグレードする際には、httpd サービスの設定も同様に更新する必要があります。このセクションは、いくつかの新しい機能の追加を再確認して、重要な変更を概要し、旧来のファイルの更新についてガイドして行きます。

15.1.1. 新しい機能

Apache HTTP サーバーバージョン 2.2 は以下のような強化機能を導入しています:
  • キャッシュモジュールの向上 mod_cache および mod_disk_cache
  • プロキシロードバランシングのサポート mod_proxy_balancer モジュール。
  • 32-bit アーキテクチャ内での大容量ファイルのサポートにより、ウェブサーバーが 2GB 以上のファイルを処理できるようになります。
  • 認証と権限付与サポートでの新構造が、以前のバージョンで提供されていた認証モジュールの入れ替えになります。

15.1.2. 注目すべき変更

バージョン 2.0 以降に、デフォルトの httpd サービス設定に変更が加えられています:
  • 以下のモジュールは、デフォルトではもはやロードされません: mod_cern_meta および mod_asis
  • 以下のモジュールはデフォルトで新規にロードされます: mod_ext_filter

15.1.3. 設定の更新

Apache HTTP サーバーバージョン 2.0 の設定ファイルを更新するには、以下の手順に従います:
  1. モジュールは変更されている可能性があるため、すべてのモジュール名が正しいことを確認して下さい。改名されたモジュールそれぞれについて LoadModule 指示文を調節します。
  2. サードパーティのモジュールはロードを試行する前にすべて再コンパイルをします。これは一般的に認証と権限付与のモジュールに該当します。
  3. mod_userdir モジュールを使用する場合は、 ディレクトリ名 (通常 public_html) を示す UserDir ディレクティブが備わっていることを確認します。
  4. Apache HTTP セキュアサーバーを使用する場合は、/etc/httpd/conf.d/ssl.conf を編集して Secure Sockets Layer (SSL) プロトコルを有効にします。
以下のコマンドを使用すると、設定のエラーの可能性をチェックすることができます:
~]# service httpd configtest
Syntax OK
Apache HTTP サーバーの設定をバージョン 2.0 から 2.2 に更新する方法の詳細については、http://httpd.apache.org/docs/2.2/upgrading.htmlを参照して下さい。

15.1.4. httpd サービスの実行

このセクションでは、Apache HTTP サーバーの開始、停止、再開始、及び現在のステータスのチェックの方法を説明しています。httpd サービスの使用を有効にするには、まず httpd がインスト-ルされていることを確認します。これは以下のコマンドを実行することで達成できます:
~]# yum install httpd
ランレベルの概念と Red Hat Enterprise Linux 内のシステムサービスの管理法全般についての詳細には 10章サービスとデーモン を参照して下さい。

15.1.4.1. サービスの開始

httpd サービスを実行するには、シェルプロンプトで以下を入力します:
~]# service httpd start
Starting httpd:                                            [  OK  ]
ブート時にサービスを自動的に起動させたい場合には、以下のコマンドを入力します:
~]# chkconfig httpd on
これにより、ランレベル 2、3、4、5 でサービスが有効になります。別の方法では 「サービスの有効化と無効化」 の説明にある通り、サービスの設定ユーティリティを使用することもできます。

セキュアサーバーの使用

Apache HTTP サーバーをセキュアサーバーとして実行している場合に、暗号化したプライベート SSL キーを使用するならば、マシンが起動した後にパスワードを要求される可能性があります。 

15.1.4.2. サービスの停止

実行中の httpd サービスを停止するには、シェルプロンプトで以下を入力します:
~]# service httpd stop
Stopping httpd:                                            [  OK  ]
ブート時にサービスの自動開始を阻止したい場合には、以下を入力します:
~]# chkconfig httpd off
これにより、すべてのランレベルでサービスを無効にします。別の方法としては 「サービスの有効化と無効化」 の説明にあるように、サービスの設定 ユーティリティを使用することもできます。

15.1.4.3. サービスの再開始

実行中の httpd サービスを再開始するには異なる3つの方法があります:
  1. サービスを全面的に再開始するには、以下を入力します:
    ~]# service httpd restart
    Stopping httpd:                                            [  OK  ]
    Starting httpd:                                            [  OK  ]
    このコマンドは先ず、実行中の httpd サービスを停止して、それからそれを再開始します。PHP などの動的にロードしたモジュールのインスト-ル後や削除後にこのコマンドを使用します。
  2. 設定を再ロードするだけの場合は、以下を入力します:
    ~]# service httpd reload
    このコマンドは実行中の httpd サービスが設定ファイルを再ロードするようにします。注意すべき点は、現在プロセス中の要求はいずれも割り込みされることになり、クライアントのブラウザーがエラーメッセージを表示したり、ページの一部のみを描写する可能性があることです。
  3. アクティブな要求に影響なく、設定ファイルを再ロードするには、以下を入力します:
    ~]# service httpd graceful
    これにより、実行中の httpd サービスは設定ファイルを再ロードするようになります。この場合は、現在プロセス中の要求はいずれも古い設定を使用することになります。
別の方法では 「サービスの開始、再起動と停止」 の説明にあるように、サービスの設定 ユーティリティを使用する方法もあります。

15.1.4.4. サービスステータスの確認

サービスが実行中であることを確認するには、シェルプロンプトで次のコマンドを入力します:
~]# service httpd status
httpd (pid 19014) is running...
他の方法として、「サービス設定ユーティリティの使用」で説明してあるように、Service Configuration ユーティリティを使用することもできます。

15.1.5. 設定ファイルの編集

httpd サービスは開始後にデフォルトで、表15.1「httpd サービスの設定ファイル」 に一覧表示してある場所から設定を読み込みます。

表15.1 httpd サービスの設定ファイル

パス 詳細
/etc/httpd/conf/httpd.conf 主要設定ファイル
/etc/httpd/conf.d/ 主要設定ファイル内に含まれている設定ファイル用の補助ディレクトリ

デフォルトの設定がほとんどの状況に適合ますが、更に重要な設定オプションをいくつか知っておくと役に立ちます。どの変更でもその効果が反映されるには、まずサーバーを再開始する必要があることに注意して下さい。httpd サービスの再開始方法の詳細については 「サービスの再開始」 を参照して下さい。
起こり得るエラーの検知の為に設定をチェックするには、シェルプロンプトで以下を入力します:
~]# service httpd configtest
Syntax OK
失敗からの復旧をより簡単にするために、編集する前にオリジナルファイルのコピーを作成しておくことをお勧めします。

15.1.5.1. 一般的な httpd.conf の指示文

以下のような指示文が一般的に /etc/httpd/conf/httpd.conf 設定ファイルで使用されています:
<;Directory>
<;Directory> 指示文により、特定のディレクトリのみに特定の指示文を適用できるようになります。以下の形式を取ります:
<Directory ディレクトリ>
  指示文
  …
</Directory>
ディレクトリ はローカルファイルシステムの既存ディレクトリまでの完全パスか、またはワイルドカード表現になります。
この指示文は、ScriptAlias で指定されているディレクトリの外部にあるサーバー側の為の追加の cgi-bin ディレクトリを設定するのに使用されます。このケースでは、ExecCGIAddHandler の指示文を供給する必要があり、そして目的地のディレクトリは正しくセットされていなければなりません (即ち、 0755)。

例15.1 <Directory> 指示文の使用

<Directory /var/www/html>
  Options Indexes FollowSymLinks
  AllowOverride None
  Order allow,deny
  Allow from all
</Directory>

<IfDefine>
IfDefine 指示文により、特定のパラメータがコマンドラインで示された時にのみ一定の指示文を使用できるようになります。以下の形式を取ります:
<IfDefine [!]パラメータ>
  指示文
  …
</IfDefine>
パラメータ は、-Dparameter コマンドラインオプションを使用して、シェルプロンプトで表示できます (例えば、 httpd -DEnableHome)。オプションの感嘆符 (即ち、 !) が存在するならば、囲まれた指示文は、パラメータが指定されていない時にのみ使用されます。

例15.2 <IfDefine> 指示文の使用

<IfDefine EnableHome>
  UserDir public_html
</IfDefine>

<IfModule>
<IfModule> 指示文により、特定のモジュールがロードされた時にのみ一定の指示文を使えるようになります。以下の形式を取ります:
<IfModule [!]モジュール>
  指示文
  …
</IfModule>
モジュール は、その名前、あるいはファイル名のどちらかで特定できます。オプションの感嘆符 (即ち、 !) が存在する場合は、囲まれた指示文はモジュールがロードされていない 時にのみ使用されます。

例15.3 <IfModule> 指示文の使用

<IfModule mod_disk_cache.c>
  CacheEnable disk /
  CacheRoot /var/cache/mod_proxy
</IfModule>

<Location>
<Location> 指示文により、特定の URL にのみ一定の指示文を適用できるようになります。以下の形式を取ります:
<Location url>
  指示文
  …
</Location>
url は、DocumentRoot 指示文で指定されているディレクトリへの相対パス (例えば、/server-info) か、あるいは http://example.com/server-info などの外部の URL のどちらかです。

例15.4 <Location> 指示文の使用

<Location /server-info>
  SetHandler server-info
  Order deny,allow
  Deny from all
  Allow from .example.com
</Location>

<Proxy>
<Proxy> 指示文により、プロキシサーバーにのみ一定の指示文を適用できるようになります。以下の形式を取ります
<Proxy パターン>
  指示文
  …
</Proxy>
パターン は外部の URL か、あるいは、ワイルドカード表現 (例えば、http://example.com/*) になります

例15.5 <Proxy> 指示文の使用

<Proxy *>
  Order deny,allow
  Deny from all
  Allow from .example.com
</Proxy>

<VirtualHost>
<VirtualHost> 指示文により、特定の仮想ホストのみに一定の指示文を適用できるようになります。以下の形式を取ります:
<VirtualHost アドレス[:ポート]…>
  指示文
  …
</VirtualHost>
アドレス は IP アドレス、完全修飾型ドメイン名、あるいは 表15.2「利用可能な <VirtualHost> オプション」 に説明してある特殊な形式のいずれかになります。

表15.2 利用可能な <VirtualHost> オプション

オプション 詳細
* すべての IP アドレスを示します。
_default_ 合致していない IP アドレスを示します。

例15.6 <VirtualHost> 指示文の使用

<VirtualHost *:80>
  ServerAdmin webmaster@penguin.example.com
  DocumentRoot /www/docs/penguin.example.com
  ServerName penguin.example.com
  ErrorLog logs/penguin.example.com-error_log
  CustomLog logs/penguin.example.com-access_log common
</VirtualHost>

AccessFileName
AccessFileName 指示文により、各ディレクトリ用のアクセス制御情報をカスタマイズするのに使用するファイルを指定できるようになります。以下の形式を取ります:
AccessFileName ファイル名
ファイル名 は要求されたディレクトリ内で探すファイルの名前です。デフォルトでは、サーバーは .htaccess を探します。
セキュリティ目的で、指示文は標準的には Files タグを後に付けており、.ht で始まるファイルがウェブクライアントからアクセスされるのを阻止します。これには、.htaccess.htpasswd のファイルが含まれます。

例15.7 AccessFileName 指示文の使用

AccessFileName .htaccess

<Files ~ "^\.ht">
  Order allow,deny
  Deny from all
  Satisfy All
</Files>

Action
Action 指示文により、一定のメディアタイプが要求された時に CGI スクリプトを実行するように指定できるようになります。以下の形式を取ります:
Action コンテンツタイプ パス
コンテンツタイプ は、text/htmlimage/png、または application/pdf のような有効な MIME タイプでなければなりません。パス は既存の CGI スクリプトを指していて、そしてDocumentRoot 指示文で指定されたディレクトリに相対的でなければなりません (例えば、 /cgi-bin/process-image.cgi)。

例15.8 Action 指示文の使用

Action image/png /cgi-bin/process-image.cgi

AddDescription
AddDescription 指示文により、該当するファイル用のサーバー生成されたディレクトリ一覧内に短い説明表示を指定できるようになります。以下の形式を取ります:
AddDescription "説明" ファイル名
説明 は二重引用符 (即ち ") に囲まれた短いテキストでなければなりません。ファイル名 はファイルの全長名、ファイル拡張子、またはワイルドカード表現のいずれかにします。

例15.9 AddDescription 指示文の使用

AddDescription "GZIP compressed tar archive" .tgz

AddEncoding
AddEncoding 指示文の使用により、特定のファイル拡張子用のエンコーディングタイプを指定できるようになります。以下の形式を取ります:
AddEncoding エンコーディング 拡張子
エンコーディング は、x-compressx-gzip のような有効な MIME エンコーディングでなければなりません。拡張子 は大文字/小文字を区別したファイル拡張子で、慣習的にドットが先に付きます (例えば、 .gz)。
この指示文は標準的にウェブブラウザーに対して、一定のファイルがダウンロードされる際にそれを展開するように指示します。

例15.10 AddEncoding 指示文の使用

AddEncoding x-gzip .gz .tgz

AddHandler
AddHandler 指示文の使用により、一定のファイル拡張子を選択したハンドラーにマップできるようになります。以下の形式を取ります:
AddHandler ハンドラー 拡張子
ハンドラー は、以前に定義してあるハンドラーの名前にする必要があります。拡張子 は大文字/小文字の区別があるファイル拡張子で、慣習的に先頭にドットが付きます (例えば、.cgi)。
この指示文は標準的に、ファイルのあるディレクトリに関係なく、.cgi 拡張子の付いたファイルを CGI スクリプトとして扱うのに使用されます。更には、この指示文は一般的にサーバー解析した HTML ファイルとイメージマップファイルのプロセスにも使用されます。

例15.11 AddHandler オプションの使用

AddHandler cgi-script .cgi

AddIcon
AddIcon 指示文の使用により、サーバー生成のディレクトリ一覧で特定ファイル用にアイコンを表示する指定ができるようになります。以下の形式を取ります:
AddIcon パス パターン
パス は既存のアイコンファイルを指しており、そしてDocumentRoot 指示文 (例えば、/icons/folder.png) で指定してあるティレクトリに相対的でなければなりません。パターン は、ファイル名、ファイル拡張子、ワイルドカード表現、または以下の表に説明してある特殊な形式のいずれかになります:

表15.3 利用可能な AddIcon オプション

オプション 詳細
^^DIRECTORY^^ ディレクトリを示します。
^^BLANKICON^^ 空白の行を示します。

例15.12 AddIcon 指示文の使用

AddIcon /icons/text.png .txt README

AddIconByEncoding
AddIconByEncoding 指示文の使用により、サーバー生成のディレクトリ一覧で特定エンコーディングタイプ用にアイコンの表示を指定できるようになります。以下の形式を取ります
AddIconByEncoding パス エンコーディング
パス は既存のアイコンファイルを指しており、DocumentRoot 指示文 (例えば、/icons/compressed.png) で指定してあるディレクトリに相対的でなければなりません。エンコーディング は、x-compress や、x-gzip などの有効な MIME でなれればなりません。

例15.13 AddIconByEncoding 指示文の使用

AddIconByEncoding /icons/compressed.png x-compress x-gzip

AddIconByType
AddIconByType 指示文の使用により、サーバー生成のティレクトリ一覧で特定のメディア用にアイコンを表示する指定ができるようになります。以下の形式を取ります:
AddIconByType パス コンテンツタイプ
パス は既存のアイコンファイルを指しており、DocumentRoot 指示文 (例えば、/icons/text.png) で指定してあるディレクトリに相対的でなければなりません。コンテンツタイプ は有効な MIME タイプ (例えば、text/htmlimage/png) であるか、または text/*image/* のようなワイルドカード表現のどちらかになります。

例15.14 AddIconByType 指示文の使用

AddIconByType /icons/video.png video/*

AddLanguage
AddLanguage 指示文の使用で、ファイル拡張子を特定の言語に関連付けすることができます。以下の形式を取ります:
AddLanguage 言語 拡張子
言語cs や、en や、fr などの有効な MIME 言語でなければなりません。拡張子 は大文字/小文字の区別のあるファイル拡張子であり、慣習的に先頭にドットが付きます (例えば、.cs)。
この指示文は、クライアントの言語設定に基づいて複数の言語でコンテンツを提供するようなウェブサーバーに特に役に立ちます。

例15.15 AddLanguage 指示文の使用

AddLanguage cs .cs .cz

AddType
AddType 指示文の使用により、特定のファイル拡張子用にメディアタイプを定義、または上書きできるようになります。以下の形式を取ります:
AddType コンテンツタイプ 拡張子
コンテンツタイプtext/html や、image/png などのような有効な MIME タイプでなければなりません。拡張子 は大文字/小文字の区別のあるファイル拡張子であり、慣習的に先頭にドットが付きます (例えば、.cs)。

例15.16 AddType 指示文の使用

AddType application/x-gzip .gz .tgz

Alias
Alias 指示文の使用により、DocumentRoot 指示文で指定されているデフォルトのディレクトリ外のファイルやディレクトリを参照できるようになります。以下の形式を取ります:
Alias url-パス real-パス
url-パス は、DocumentRoot 指示文で指定されているディレクトリに相対的でなければなりません (例えば、/images/)。real-パス は、ローカルファイルシステム内のファイルかディレクトリまでの全長のパスです。
この指示文は標準的に末尾に Directory タグを持ち、ターゲットディレクトリにアクセスするための追加の権限を付帯しています。デフォルトでは、/icons/ エイリアスが作成されるため、/var/www/icons/ のアイコンはサーバー生成のディレクトリ一覧内に表示されます。

例15.17 Alias 指示文の使用

Alias /icons/ /var/www/icons/

<Directory "/var/www/icons">
  Options Indexes MultiViews FollowSymLinks
  AllowOverride None
  Order allow,deny
  Allow from all
<Directory>

Allow
Allow 指示文を使用すると、任意のディレクトリにアクセス権限を持つクライアントを指定できるようになります。以下の形式を取ります:
Allow from クライアント
クライアント は、ドメイン名、IP アドレス (全長と部文の両方)、及びネットワーク/ネットマスク ペアか、またはすべてのクライアント用の all となります。

例15.18 Allow 指示文の使用

Allow from 192.168.1.0/255.255.255.0

AllowOverride
AllowOverride 指示文の使用により、デフォルト設定を上書きできる.htaccess ファイル内の指示文を指定できるようになります。以下の形式をとります:
AllowOverride タイプ
タイプ は、表15.4「利用可能な AllowOverride オプション」 で説明してあるように利用可能なグループオプションの1つでなければなりません。

表15.4 利用可能な AllowOverride オプション

オプション 詳細
All .htaccess 内の指示文はすべて以前の設定構成を上書きする権限を持ちます。
None .htaccess 内の指示文はどれも以前の設定構成を上書きする権限を持ちません。
AuthConfig AuthNameAuthTypeRequire など権限付与の指示文の使用を可能にします。
FileInfo DefaultTypeRequestHeaderRewriteEngine などや、更には Action 指示文など、ファイルタイプとメタデータ、及びmod_rewrite 指示文の使用が可能になります。
Indexes AddDescriptionAddIcon。あるいはFancyIndexing など、ディレクトリ指標指示文の使用が可能になります。
Limit AllowDeny、及び Order などホストアクセス指示文の使用が可能になります。
Options [=オプション,…] Options 指示文の使用を可能にします。更には、この指示文を使用してセットするオプションをカスタマイズするためにカンマで隔離したオプションの一覧を作成することもできます。

例15.19 AllowOverride 指示文の使用

AllowOverride FileInfo AuthConfig Limit

BrowserMatch
BrowserMatch 指示文の使用により、クライアントのウェブブラウザーを基にしてサーバーの動作を修正することができるようになります。以下の形式を取ります。
BrowserMatch パターン 変数
パターン は、User-Agent HTTP ヘッダーフィールドにマッチするための正規表現です。変数 はヘッダーフィールドがパターンにマッチした時にセットされる環境変数です。
デフォルトでは、この指示文は既知の問題を持つ特定のブラウザーへの接続を拒否して、keepalive と HTTP header flush で問題を持つと思われるブラウザーでそれらのアクションを無効にするために使用されます。

例15.20 BrowserMatch 指示文の使用

BrowserMatch "Mozilla/2" nokeepalive

CacheDefaultExpire
CacheDefaultExpireオプションの使用で、失効日がないか、または最後の修正日の指定がないドキュメントをキャッシュ化する期間をセットできるようになります。以下の形式を取ります:
CacheDefaultExpire 時間
時間 は、秒で指定します。デフォルトのオプションは、3600 (即ち1時間) です。

例15.21 CacheDefaultExpire 指示文の使用

CacheDefaultExpire 3600

CacheDisable
CacheDisable 指示文の使用により、一定の URL のキャッシュ化を無効にできるようになります。以下の形式を取ります:
CacheDisable パス
パスDocumentRoot 指示文で指定してあるディレクトリに相対的でなければなりません (例えば、/files/)。

例15.22 CacheDisable 指示文の使用

CacheDisable /temporary

CacheEnable
CacheEnable 指示文の使用により、一定の URL に使用するキャッシュタイプを指定できるようになります。以下の形式を取ります:
CacheEnable タイプ url
タイプ表15.5「利用可能なキャッシュタイプ」 で説明してあるように、有効なキャッシュタイプでなければなりません。urlDocumentRoot 指示文で指定されたディレクトリに相対的なパス (例えば、/images/) か、プロトコル (例えば、ftp://) か、http://example.com/ のような外部の URL になります。

表15.5 利用可能なキャッシュタイプ

タイプ 詳細
mem メモリーベースのストレージマネージャです。
disk ディスクベースのストレージマネージャです。
fd ファイルディスクリプタキャッシュ

例15.23 CacheEnable 指示文の使用

CacheEnable disk /

CacheLastModifiedFactor
CacheLastModifiedFactor 指示文の使用により、失効日が指定されていないものの、最後の修正日に関する情報を提供するドキュメントのキャッシュ化期間をカスタマイズできるようになります。以下の形式を取ります
CacheLastModifiedFactor 数値
数値 はドキュメントの最後の修正日から経過した時間を倍増する為の指数です。デフォルトオプションでは 0.1 (即ち、10分の1) です。

例15.24 CacheLastModifiedFactor 指示文の使用

CacheLastModifiedFactor 0.1

CacheMaxExpire
CacheMaxExpire 指示文の使用で、ドキュメントのキャッシュ化の期間の最大値を指定できるようになります。以下の形式を使用します:
CacheMaxExpire 時間
時間 は秒で指定します。デフォルトのオプションは 86400 (即ち1日) です。

例15.25 CacheMaxExpire 指示文の使用

CacheMaxExpire 86400

CacheNegotiatedDocs
CacheNegotiatedDocs 指示文の使用により、コンテンツに基づいたネゴシエートをしたドキュメントのキャッシュ化を有効にできるようになります。以下の形式を取ります:
CacheNegotiatedDocs オプション
オプション は、表15.6「利用可能な CacheNegotiatedDocs オプション」 で説明してあるように、有効なキーワードでなければなりません。コンテンツに関してネゴシエートしたドキュメントは時間経過で、または要求者からの入力で変化するため、デフォルトのオプションは Off です。

表15.6 利用可能な CacheNegotiatedDocs オプション

オプション 詳細
On コンテンツネゴシエート済みドキュメントのキャッシュ化を有効にします。
Off コンテンツネゴシエート済みドキュメントのキャッシュ化を無効にします。

例15.26 CacheNegotiatedDocs 指示文の使用

CacheNegotiatedDocs On

CacheRoot
CacheRoot 指示文の使用により、キャッシュファイルを格納するディレクトリを指定できるようになります。以下の形式を取ります:
CacheRoot ディレクトリ
ディレクトリ は、ローカルシステムにある既存ディレクトリの全長パスでなければなりません。デフォルトのオプションは /var/cache/mod_proxy/ です。

例15.27 CacheRoot 指示文の使用

CacheRoot /var/cache/mod_proxy

CustomLog
CustomLog 指示文の使用により、ログファイル名とログファイル形式を指定できるようになります。以下の形式を取ります:
CustomLog パス 形式
パス はログファイルを指しており、ServerRoot 指示文で指定されたディレクトリ (即ち、デフォルトでは /etc/httpd/) に相対的でなければなりません。形式 は、明示的な形式の文字列か、または LogFormat 指示文の使用で以前に定義されている形式名になります。

例15.28 CustomLog 指示文の使用

CustomLog logs/access_log combined

DefaultIcon
DefaultIcon 指示文の使用により、他に関連したアイコンがない場合にサーバー生成のディレクトリ一覧で、ファイルにアイコンが表示されるように指定することができるようになります。以下の形式を取ります:
DefaultIcon パス
パス は既存のアイコンファイルを指しており、DocumentRoot 指示文で指定されたディレクトリ (例えば、/icons/unknown.png) に相対的でなければなりません。

例15.29 DefaultIcon 指示文の使用

DefaultIcon /icons/unknown.png

DefaultType
DefaultType 指示文の使用で、サーバーが適格な MIME タイプを決定できない場合に使用するメディアタイプを指定できるようになります。以下の形式を取ります:
DefaultType コンテンツタイプ
コンテンツタイプ は、text/htmlimage/pngapplication/pdf などの有効な MIME タイプでなければなりません。

例15.30 DefaultType 指示文の使用

DefaultType text/plain

Deny
Deny 指示文の使用により、任意のディレクトリにアクセスを拒否されるクライアントを指定できるようになります。以下の形式を取ります:
Deny from クライアント
クライアント は、ドメイン名、IP アドレス (全長と部文の両方)、及びネットワーク/ネットマスク ペアか、またはすべてのクライアント用の all となります。

例15.31 Deny 指示文の使用

Deny from 192.168.1.1

DirectoryIndex
DirectoryIndex 指示文の使用で、ディレクトリが要求された時 (即ち、URL が / 文字で終了する時) にクライアントに対して提供するドキュメントを指定できるようになります。以下の形式を取ります:
DirectoryIndex ファイル名
ファイル名 は、要求されたディレクトリ内で見つけるファイルの名前です。デフォルトでは、サーバーは index.htmlindex.html.var を探します。

例15.32 DirectoryIndex 指示文の使用

DirectoryIndex index.html index.html.var

DocumentRoot
DocumentRoot 指示文の使用により、コンテンツの提供元となる主要ディレクトリを指定できるようになります。以下の形式を取ります:
DocumentRoot ディレクトリ
ディレクトリ は、ローカルファイルシステム内にある既存ディレクトリへの全長パスでなければなりません。デフォルトのオプションは /var/www/html/ です。

例15.33 DocumentRoot 指示文の使用

DocumentRoot /var/www/html

ErrorDocument
ErrorDocument 指示文の使用により、特定のエラーへの反応として表示されるドキュメントまたはメッセージを指定できるようになります。以下の形式を取ります:
ErrorDocument エラーコード アクション
エラーコード403 (禁止)、404 (発見不可)、500 (内部サーバーエラー) などの有効なコードでなければなりません。アクション は URL (ローカルと外部の両方) か、あるいは二重引用符 (即ち、") で囲まれたメッセージ文字列のどちらかです。

例15.34 ErrorDocument 指示文の使用

ErrorDocument 403 "Access Denied"
ErrorDocument 404 /404-not_found.html

ErrorLog
ErrorLog 指示文の使用により、サーバーエラーのログ先となるファイルを指定できるようになります。以下の形式を取ります:
ErrorLog パス
パス は、ログファイルを指しており、ServerRoot 指示文で指定されたディレクトリ (即ちデフォルトでは、/etc/httpd/) に対して絶対的、または相対的となるパスです。デフォルトのオプションは logs/error_log です。

例15.35 ErrorLog 指示文の使用

ErrorLog logs/error_log

ExtendedStatus
ExtendedStatus 指示文の使用で、サーバーステータスの詳細情報を有効にできるようになります。以下の形式を取ります:
ExtendedStatus オプション
オプション表15.7「利用可能な ExtendedStatus オプション」 に説明してあるように、有効なキーワードでなければなりません。デフォルトのオプションは Off です。

表15.7 利用可能な ExtendedStatus オプション

オプション 詳細
On サーバーステータス詳細の生成を有効にします。
Off サーバーステータス詳細の生成を無効にします。

例15.36 ExtendedStatus 指示文の使用

ExtendedStatus On

Group
Group 指示文の使用により、httpd サービスの実行元となるグループを指定できるようになります。以下の形式を取ります:
Group グループ
グループ は、既存の UNIX グループでなければなりません。デフォルトのオプションは apache です。
Group はもう <VirtualHost> 内ではサポートがないこと、及びそれが SuexecUserGroup 指示文に入れ替わっていることに注意して下さい。

例15.37 Group 指示文の使用

Group apache

HeaderName
HeaderName 指示文の使用により、サーバー生成のディレクトリ一覧の先頭に前置きするファイルを指定できるようになります。以下の形式を取ります:
HeaderName ファイル名
ファイル名 は、要求されたディレクトリ内で探すファイルの名前です。デフォルトでは、サーバーは HEADER.html を探します。

例15.38 HeaderName 指示文の使用

HeaderName HEADER.html

HostnameLookups
HostnameLookups 指示文の使用により、IP アドレスの自動解決を有効にできるようになります。以下の形式を取ります:
HostnameLookups オプション
オプション は、表15.8「利用可能な HostnameLookups オプション」 で説明してあるように、有効なキーワードでなければなりません。サーバー上にリソースを保存するために、デフォルトのオプションは Off になっています。

表15.8 利用可能な HostnameLookups オプション

オプション 詳細
On ホスト名がログできるように、各接続の IP アドレス解決を有効にします。しかし、これはプロセスの負担をかなり増加します。
Double 二重の逆引き DNS ルックアップの実施を可能にします。上記のオプションと比較すると、これはプロセスの負担を更に増大します。
Off 各接続の IP アドレス解決を無効にします。

サーバーのログファイル内にホスト名が必要になる際には、多くの場合、DNS ルックアップをより効率的に実行する様々なログアナライザーの1つを使用することができます。

例15.39 HostnameLookups 指示文の使用

HostnameLookups Off

Include
Include 指示文の使用により、他の設定ファイルを含むことができるようになります。以下の形式を取ります:
Include ファイル名
ファイル名 は、絶対パスでも、ServerRoot 指示文で指定されたディレクトリへの相対的パスでも、またはワイルドカード表現でも可能です。/etc/httpd/conf.d/ ディレクトリの設定ファイルはすべて、デフォルトでロードされます。

例15.40 Include 指示文の使用

Include conf.d/*.conf

IndexIgnore
IndexIgnore 指示文の使用で、サーバー生成のディレクトリ一覧から排除するファイル名の一覧を指定できるようになります。以下の形式を取ります:
IndexIgnore ファイル名
ファイル名オプションは全長のファイル名か、またはワイルドカード表現になります。

例15.41 IndexIgnore 指示文の使用

IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t

IndexOptions
IndexOptions 指示文の使用により、サーバー生成のディレクトリ一覧の動作をカスタマイズできるようになります。以下の形式を取ります:
IndexOptions オプション
オプション は、表15.9「利用可能なディレクトリ一覧のオプション」 で説明してあるような有効なキーワードでなければなりません。デフォルトのオプションには、Charset=UTF-8FancyIndexingHTMLTableNameWidth=*、及び VersionSort があります。

表15.9 利用可能なディレクトリ一覧のオプション

オプション 詳細
Charset=エンコーディング 生成されたウェブページの文字セットを指定します。エンコーディング は、UTF-8ISO-8859-2 などの有効な文字セットでなければなりません。
Type=コンテンツタイプ 生成されたウェブページのメディアタイプを指定します。コンテンツタイプtext/htmltext/plain などの有効な MIME タイプでなければなりません。
DescriptionWidth= 説明カラムの幅を指定します。 は、文字数であるか、あるいは自動的に幅を調節するためのアスタリスク (即ち、*) となります。
FancyIndexing 一定のファイル用の異なるアイコンや、あるいはカラムヘッダーのクリックでディレクトリ一覧の配列変更の可能性など高度な機能を有効にします。
FolderFirst ディレクトリ一覧の先頭配置を有効にして、常にそれをファイルの上部に配置します。
HTMLTable ディレクトリ一覧に HTML 表の使用を有効にします。
IconsAreLinks リンクとしてのアイコン使用を有効にします。
IconHeight= アイコンの高さを指定します。 はピクセルの数になります。
IconWidth= アイコンの幅を指定します。 はピクセルの数です。
IgnoreCase 大文字/小文字の区別を持ったファイルとディレクトリの配列を有効にします。
IgnoreClient クライアントからのクエリ変数の受理を無効にします。
NameWidth= ファイル名カラムの幅を指定します。 は文字数か、または幅を自動的に調節するためのアスタリスク (即ち、*) となります。
ScanHTMLTitles AddDescription 指示文で提供されていない場合に、説明 (即ち、title 要素) 用にファイルの構文解析を有効にします。
ShowForbidden 他の手段ではアクセス禁止のファイル一覧を有効にします。
SuppressColumnSorting カラムヘッダーのクリックによるティレクトリ一覧の再配列を無効にします。
SuppressDescription ファイル説明用のスペース予約を無効にします。
SuppressHTMLPreamble HeaderName 指示文で指定されているファイルが存在する時には、標準の HTML 前置きの使用を無効にします。
SuppressIcon ディレクトリ一覧内のアイコンの使用を無効にします。
SuppressLastModified ディレクトリ一覧の最後の修正欄の日付表示を無効にします。
SuppressRules ディレクトリ一覧の水平線の使用を無効にします。
SuppressSize ディレクトリ一覧のファイルサイズフィールドの表示を無効にします。
TrackModified HTTP ヘッダー内で Last-ModifiedETag の値の戻りを有効にします。
VersionSort バージョン番号が期待された手法で含まれているファイルの配列を有効にします。
XHTML デフォルトの HTML 3.2 ではなく、XHTML 1.0 の使用を有効にします。

例15.42 IndexOptions 指示文の使用

IndexOptions FancyIndexing VersionSort NameWidth=* HTMLTable Charset=UTF-8

KeepAlive
KeepAlive 指示文の使用で、永続的な接続を有効にできるようになります。以下の形式を取ります:
KeepAlive オプション
オプション表15.10「利用可能な KeepAlive オプション」 で説明してあるような有効なキーワードでなければなりません。デフォルトのオプションは Off です。

表15.10 利用可能な KeepAlive オプション

オプション 詳細
On 永続的接続を有効にします。このケースでは、サーバーは接続毎に1つ以上の要求を受理します。
Off keep-alive 接続を無効にします。

永続的接続が有効になった際に、多忙なサーバー上では子プロセスの数量が急激に増加して最終的には最大限度に到達し、サーバーを大幅に鈍化させます。このリスクを低減するために KeepAliveTimeout を少なめにセットして /var/log/httpd/logs/error_log のログファイルを注意して監視することをお勧めします。

例15.43 KeepAlive 指示文の使用

KeepAlive Off

KeepAliveTimeout
KeepAliveTimeout 指示文の使用により、接続を閉じるまで別の要求を待つ時間の長さを指定できるようになります。以下の形式を取ります:
KeepAliveTimeout 時間
時間 は秒で指定します。デフォルトのオプションは 15 です。

例15.44 KeepAliveTimeout 指示文の使用

KeepAliveTimeout 15

LanguagePriority
LanguagePriority 指示文の使用により、言語の優先度をカスタマイズできるようになります。以下の形式を取ります:
LanguagePriority 言語
言語 は、csenfr などの有効な MIME 言語でなければなりません。
この指示文は、クライアントの言語設定に基づいて複数の言語でコンテンツを提供するようなウェブサーバーに特に役に立ちます。

例15.45 LanguagePriority 指示文の使用

LanguagePriority sk cs en

Listen
Listen 指示文の使用で、リッスンする IP アドレス、またはポートを指定できるようになります。以下の形式を取ります:
Listen [ip-アドレス:]ポート [プロトコル]
ip-アドレス はオプションであり、供給されていないとサーバーはすべての IP アドレスからの任意の ポート 上で到来要求を受理します。プロトコル はポート番号から自動的に決定されるため、通常これは無視されます。デフォルトのオプションはポート 80 でリッスンすることになっています。
サーバーが 1024 以下のポートでリッスンするように設定されている場合は、スーパーユーザーのみが httpd サービスを開始できることに注意して下さい。

例15.46 Listen 指示文の使用

Listen 80

LoadModule
LoadModule 指示文の使用により、Dynamic Shared Object (DSO:動的共有オブジェクト) モジュールをロードできるようになります。以下の形式を取ります:
LoadModule 名前 パス
名前 は要求されたモジュールの有効な識別子でなければなりません。パス は、既存のモジュールファイルを指しており、ライブラリが配置してあるディレクトリへ相対的でなければなりません (即ち、デフォルトで 32-bit では、/usr/lib/httpd/、そして 64-bit では /usr/lib64/httpd/)。
Apache HTTP サーバーの DSO サポートの詳細については、「モジュールでの作業」 を参照して下さい。

例15.47 LoadModule 指示文の使用

LoadModule php5_module modules/libphp5.so

LogFormat
LogFormat 指示文の使用により、ログファイルの形式を指定できるようになります。以下の形式を取ります:
LogFormat 形式 名前
形式 は、表15.11「一般的な LogFormat オプション」 で説明してあるようにオプションで構成された文字列です。名前CustomLog 指示文内の形式文字列の代わりに使用することができます。

表15.11 一般的な LogFormat オプション

オプション 詳細
%b 応答のサイズをバイトで示します。
%h リモートクライアントの IP アドレス、またはホスト名を示します。
%l 供給されている場合は、リモートのログ名を示します。供給されていない場合は、代わりにハイフン (-) が使用れます。
%r ブラウザー、またはクライアントから来た状態の要求文字列の最初の行を示します。
%s ステータスコードを示します。
%t 要求の日付と時刻を示します。
%u 認証が必要な場合には、これはリモートユーザーを示します。認証無用なら、代わりにハイフン (-) が使用されます。
%{フィールド} HTTP ヘッダー フィールド のコンテンツを示します。一般的なオプションには %{Referer} (クライアントをサーバーに照会したウェブページの URL) と %{User-Agent} (要求を出しているウェブブラウザーのタイプ) が含まれています。

例15.48 LogFormat 指示文の使用

LogFormat "%h %l %u %t \"%r\" %>s %b" common

LogLevel
LogLevel 指示文を使用すると、エラーログの詳細レベルをカスタマイズできるようになります。以下の形式を取ります:
LogLevel オプション
オプション表15.12「利用可能な LogLevel オプション」 で説明してあるような有効なキーワードでなければなりません。デフォルトのオプションは warn (警告) です。

表15.12 利用可能な LogLevel オプション

オプション 詳細
emerg サーバーがその機能を実行できない緊急事態にのみログされます。
alert すぐにアクションを要求される状況すべてがログされます。
crit すべての重大な状況がログされます。
error すべてのエラーメッセージがログされます。
warn すべての警告メッセージがログされます。
notice 正常であっても、深刻な状態はログされます。
info 様々な情報的なメッセージがログされます。
debug 様々なデバッグメッセージがログされます。

例15.49 LogLevel 指示文の使用

LogLevel warn

MaxKeepAliveRequests
MaxKeepAliveRequests 指示文の使用により、永続的接続に対して最大要求数を指定できるようになります。以下の形式を取ります:
MaxKeepAliveRequests 数字
高い 数字 は、サーバーのパフォーマンスを向上できます。0 を使用すると、無制限数の要求を認可することに注意して下さい。デフォルトのオプションは 100 です。

例15.50 MaxKeepAliveRequests オプションの使用

MaxKeepAliveRequests 100

NameVirtualHost
NameVirtualHost 指示文の使用により、名前ベースの仮想ホスト用に IP アドレスとポート番号を指定できるようになります。以下の形式を取ります:
NameVirtualHost ip-アドレス[:ポート]
ip-アドレス は全長の IP アドレスか、またはすべてのインターフェイスを表示するアスタリスク (*) のいずれかとなります。IPv6 のアドレスは角カッコ ( []) で囲む必要があります。ポート はオプションです。
名前ベースの仮想ホスト設定により、複数の IP アドレスを使用せずに単体の Apache HTTP サーバーが異なるドメイン群に対応できるようになります。

セキュアな HTTP 接続の使用

名前ベースの仮想ホストは、セキュアな HTTP 接続以外でのみ機能します。セキュアなサーバーで仮想ホストを使用する場合は、その代わりとして IP アドレスベースの仮想ホストを使用して下さい。

例15.51 NameVirtualHost 指示文の使用

NameVirtualHost *:80

Options
Options 指示文の使用により、特定のディレクトリ内で利用可能になるサーバー機能を指定できるようになります。以下の形式を取ります:
Options オプション
オプション表15.13「利用可能なサーバー機能」 に説明してあるような有効なキーワードでなければなりません。

表15.13 利用可能なサーバー機能

オプション 詳細
ExecCGI CGI スクリプトの実行を有効にします。
FollowSymLinks ディレクトリ内の次のシンボリックリンクを有効にします。
Includes サーバー側の include を有効にします。
IncludesNOEXEC サーバー側の include を有効にしますが、コマンドの実行を許可しません。
Indexes サーバー生成のディレクトリ一覧を有効にします。
MultiViews コンテンツ交渉済みの MultiViews を有効にします。
SymLinksIfOwnerMatch リンクと目的ファイルの両方が同一所有者を持つ場合にディレクトリ内の次のシンボリックリンクを有効にします。
All MultiViews 以外の上記の機能すべてを有効にします。
None 上記の機能すべてを無効にします。

例15.52 Options 指示文の使用

Options Indexes FollowSymLinks

Order
Order 指示文の使用により、AllowDeny の指示文が評価される順序を指定できるようになります。以下の形式を取ります:
Order オプション
オプション は、表15.14「利用可能な Order オプション」 で説明してあるように有効なキーワードでなければなりません。デフォルトのオプションは allow,deny です。

表15.14 利用可能な Order オプション

オプション 詳細
allow,deny Allow 指示文が最初に評価されます。
deny,allow Deny 指示文が最初に評価されます。

例15.53 Order 指示文の使用

Order allow,deny

PidFile
PidFile 指示文の使用により、サーバーの プロセス ID (PID) の保存先となるファイルを指定できるようになります。以下の形式を取ります:
PidFile パス
パス は、pid のファイルを指しており、絶対的パスか、または ServerRoot 指示文で指定されているディレクトリ (即ち、デフォルトで /etc/httpd/ ) へ相対的なパスのいずれかです。デフォルトのオプションは run/httpd.pid です。

例15.54 PidFile 指示文の使用

PidFile run/httpd.pid

ProxyRequests
ProxyRequests 指示文の使用により、フォワードプロキシの要求を有効にできるようになります。以下の形式を取ります:
ProxyRequests オプション
オプション は、表15.15「利用可能な ProxyRequests オプション」 で説明してあるような有効なキーワードでなければなりません。デフォルトのオプションは、Off です。

表15.15 利用可能な ProxyRequests オプション

オプション 詳細
On フォワードプロキシの要求を有効にします。
Off フォワードプロキシの要求を無効にします。

例15.55 ProxyRequests 指示文の使用

ProxyRequests On

ReadmeName
ReadmeName 指示文の使用により、サーバー生成のディレクトリ一覧の末尾に追加するファイルを指定できるようになります。以下の形式を取ります:
ReadmeName ファイル名
ファイル名 は、要求されたディレクトリ内で探すファイルの名前です。デフォルトでは、サーバーは README.html を探します。

例15.56 ReadmeName 指示文の使用

ReadmeName README.html

Redirect
Redirect 指示文の使用により、別の URL へクライアントを転送できるようになります。以下の形式を取ります:
Redirect [ステータス] パス url
ステータス は、オプションですが提供される場合は、表15.16「利用可能な status オプション」 で説明してあるような有効なキーワードでなければなりません。パス は古い場所を指しており、DocumentRoot 指示文で指定してあるディレクトリ (f例えば、/docs) に相対的でなければなりません。url は、コンテンツの現在の場所を指します (例えば、http://docs.example.com)。

表15.16 利用可能な status オプション

Status 詳細
permanent 要求されたリソースが永久に移動されたことを示します。301 (永久に移動済み) のステータスコードがクライアントに返されます。
temp 要求されたリソースが一時的にのみ移動されたことを示します。302 (発見済み) ステータスコードがクライアントに返されます。
seeother 要求されたリソースが入れ替えられていることを示します。303 (他を確認) ステータスコードがクライアントに返されます。
gone 要求されたリソースが永久に排除されたことを示します。410 (消失) ステータスコードがクライアントに返されます。

より高度な転送技術を確認するには、Apache HTTP サーバーインスト-ルの一部である mod_rewrite モジュールを使用して下さい。

例15.57 Redirect 指示文の使用

Redirect permanent /docs http://docs.example.com

ScriptAlias
ScriptAlias 指示文を使用すると、CGI スクリプトの場所を指定できるようになります。以下の形式を取ります
ScriptAlias url-パス 実際のパス
url-パスDocumentRoot 指示文で指定されたディレクトリ (例えば、/cgi-bin/) へ相対的でなれけばなりません。実際のパス はローカルファイルシステム内のファイル、またはディレクトリへの全長パスです。
この指示文には、標準的に目的ディレクトリへのアクセス権を持つ Directory タグが続きます。デフォルトでは、/cgi-bin/ エイリアスが作成されるため、/var/www/cgi-bin/ 内にあるスクリプトはアクセス可能になります。
ScriptAlias 指示文は、CGI スクリプトが平文のドキュメントとして閲覧されることを阻止するためにセキュリティ目的で使用されます。

例15.58 ScriptAlias 指示文の使用

ScriptAlias /cgi-bin/ /var/www/cgi-bin/

<Directory "/var/www/cgi-bin">
  AllowOverride None
  Options None
  Order allow,deny
  Allow from all
</Directory>

ServerAdmin
ServerAdmin 指示文を使用すると、サーバー管理者の電子メールアドレスがサーバー生成のウェブページ内に表示されるように指定できるようになります。以下の形式を取ります:
ServerAdmin 電子メールアドレス
デフォルトのオプションは root@localhost です。
この指示文は一般的に webmaster@hostname にセットされるものです。ここで hostname はサーバーのアドレスを示します。セットされると、webmaster/etc/aliases 内のウェブサーバーの責任者にエイリアス化して、スーパーユーザーとなって newaliases コマンドを実行します。

例15.59 ServerAdmin 指示文の使用

ServerAdmin webmaster@penguin.example.com

ServerName
ServerName 指示文の使用により、ウェブサーバーのホスト名とポート番号を指定できるようになります。以下の形式を取ります:
ServerName ホスト名[:ポート]
ホスト名 は、サーバーの完全修飾型ドメイン名 (FQDN) でなければなりません。ポート はオプションですが、供給されている場合は、Listen 指示文に指定された番号と一致する必要があります。
この指示文を使用する際には、IP アドレスとサーバー名のペアが /etc/hosts ファイル内に含まれていることを確認して下さい。

例15.60 ServerName 指示文の使用

ServerName penguin.example.com:80

ServerRoot
ServerRoot 指示文の使用により、サーバーが運用できるディレクトリを指定できるようになります。以下の形式を取ります:
ServerRoot ディレクトリ
ディレクトリ は、ローカルファイルシステム内の既存のディレクトリへの全長パスでなければなりません。デフォルトのオプションは、/etc/httpd/ です。

例15.61 ServerRoot 指示文の使用

ServerRoot /etc/httpd

ServerSignature
ServerSignature 指示文の使用により、サーバー生成ドキュメント上でサーバーに関する情報の表示を有効にできるようになります。以下の形式を取ります:
ServerSignature オプション
オプション は、表15.17「利用可能な ServerSignature オプション」 で説明してあるような有効なキーワードでなければなりません。デフォルトのオプションは、On です。

表15.17 利用可能な ServerSignature オプション

オプション 詳細
On サーバー生成ページへのサーバー名とバージョンの追記を有効にします。
Off サーバー生成ページへのサーバー名とバージョンの追記を無効にします。
EMail サーバー生成ページにへのサーバー名、バージョン、及び ServerAdmin 指示文で指定されているシステム管理者の電子メールアドレスの追記を有効にします。

例15.62 ServerSignature 指示文の使用

ServerSignature On

ServerTokens
ServerTokens 指示文の使用により、サーバーの応答ヘッダー内に含める情報をカスタマイズできるようになります。以下の形式を取ります:
ServerTokens オプション
オプション は、表15.18「利用可能な ServerTokens オプション」 で説明してあるような有効なキーワードでなければなりません。デフォルトのオプションは OS です。

表15.18 利用可能な ServerTokens オプション

オプション 詳細
Prod 製品名 (即ち、Apache) のみを含みます。
Major 製品名とサーバーのメジャーバージョン (例えば、2) を含みます。
Minor 製品名とサーバーのマイナーバージョン (例えば、2.2) を含みます。
Min 製品名とサーバーの最小バージョン (例えば、2.2.15) を含みます。
OS 製品名、サーバーの最小バージョン、及びシステムが実行しているオペレーティングシステムのタイプ (例えば、Red Hat) を含みます。
Full 上述の情報すべてと更にロード済みモジュールの一覧を含みます。

セキュリティの目的で、サーバーについては極力最低限の情報を表明することが推奨されます。

例15.63 ServerTokens 指示文の使用

ServerTokens Prod

SuexecUserGroup
SuexecUserGroup 指示文の使用により、CGI スクリプトの実行元となるユーザーとグループを指定できるようになります。以下の形式を取ります:
SuexecUserGroup ユーザー グループ
ユーザー は既存のユーザーであり、グループ は有効な UNIX グループでなければなりません。
セキュリティの目的で、CGI スクリプトは root 権限で実行すべきではありません。<VirtualHost> 内では、SuexecUserGroupUserGroup の指示文の入れ替わりになることに注意して下さい。

例15.64 SuexecUserGroup 指示文の使用

SuexecUserGroup apache apache

Timeout
Timeout 指示文を使用すると、接続を閉じるまでにイベントを待つ時間を指定できるようになります。以下の形式を取ります:
Timeout 時間
時間 は秒で指定します。デフォルトのオプションは 60 です。

例15.65 Timeout 指示文の使用

Timeout 60

TypesConfig
TypesConfig の使用で、MIME タイプ設定の場所を指定できるようになります。以下の形式を取ります:
TypesConfig パス
パス は、既存の MIME タイプの設定ファイルを指しており、絶対的パスであるか、または ServerRoot 指示文で指定されているディレクトリ (即ち、デフォルトでは、/etc/httpd/) に対して相対的パスのいずれかです。デフォルトのオプションは /etc/mime.types です。
/etc/mime.types の編集の代わりに、MIME タイプマッピングを Apache HTTP サーバーに追加する最善の推奨方法は、AddType 指示文の使用であることに注意して下さい。

例15.66 TypesConfig 指示文の使用

TypesConfig /etc/mime.types

UseCanonicalName
UseCanonicalName の使用により、サーバーがそれ自身を呼称する方法を指定できるようになります。以下の形式を取ります:
UseCanonicalName オプション
オプション は、表15.19「利用可能な UseCanonicalName オプション」 で説明してあるような有効なキーワードでなければなりません。デフォルトのオプションは Off です。

表15.19 利用可能な UseCanonicalName オプション

オプション 詳細
On ServerName 指示文で指定された名前の使用を有効にします。
Off ServerName 指示文で指定された名前の使用を無効にします。代わりに、要求元のクライアントで提供されたホスト名とポート番号が使用されます。
DNS ServerName 指示文で指定された名前の使用を無効にします。代わりに、逆引き DNS ルックアップで決定したホスト名が使用されます。

例15.67 UseCanonicalName 指示文の使用

UseCanonicalName Off

User
User 指示文の使用により、httpd サービスの実行元となるユーザーを指定できるようになります。以下の形式を取ります:
User ユーザー
ユーザー は、既存の UNIX ユーザーでなければなりません。デフォルトのオプションは apache です。
セキュリティ目的で、httpd サービスは root 権限で実行すべきではありません。User はもう <VirtualHost> 内ではサポートされておらず、SuexecUserGroup 指示文に入れ替わっていることに注意して下さい。

例15.68 User 指示文の使用

User apache

UserDir
UserDir 指示文の使用により、ユーザーのホームディレクトリからのコンテンツ作業を有効にできるようになります。以下の形式を取ります:
UserDir オプション
オプション は、ユーザーのホームディレクトリ内で見つけるディレクトリの名前 (標準的に public_html) であるか、または 表15.20「利用可能な UserDir オプション」 で説明してあるような有効なキーワードのいずれかです。デフォルトのオプションは disabled です。

表15.20 利用可能な UserDir オプション

オプション 詳細
enabled ユーザー 該当する ユーザー のホームディレクトリからのコンテンツ作業を有効にします。
disabled [ユーザー] すべてのユーザーに対して、または空白で隔離した ユーザー の一覧が供給されている場合は該当するユーザーのみに対して、ホームディレクトリからのコンテンツ作業を無効にします。

正しい権限の設定

ウェブサーバーがコンテンツにアクセスするためには、関連したディレクトリとファイルでの権限を正しく設定する必要があります。すべてのユーザーがホームディレクトリにアクセスできること、そして彼らがUserDir 指示文で指定されたディレクトリのコンテンツにアクセスして読み込みができることを確実にします。例えば:
~]# chmod a+x /home/username/
~]# chmod a+rx /home/username/public_html/
このディレクトリ内のファイルはすべてそのようにセットする必要があります。

例15.69 UserDir 指示文の使用

UserDir public_html

15.1.5.2. 一般的な ssl.conf 指示文

Secure Sockets Layer (セキュアソケットレイヤー) (SSL) 指示文の使用により、Apache HTTP セキュアサーバーの動作をカスタマイズできるようになります。多くの場合、サーバーはインスト-ル中に適切に設定されます。しかし、間違えた設定はセキュリティ脆弱性の原因となりますので、設定の変更時には注意が必要です。
以下の指示文は通常、/etc/httpd/conf.d/ssl.conf 内で使用されます:
SetEnvIf
SetEnvIf 指示文を使用すると、受信接続のヘッダーに基づいて環境変数の設定ができるようになります。以下の形式を取ります:
SetEnvIf オプション パターン [!]変数[=]…
オプション は、HTTP ヘッダーフィールドか、以前に定義してある環境変数の名前か、あるいは 表15.21「利用可能な SetEnvIf オプション」 内に説明してあるような有効なキーワードのいずれかになります。パターン は、正式表現です。変数 は、オプションがパターンにマッチした時にセットされる環境変数です。オプションの感嘆符 (!) が存在していると、変数は設定ではなく、削除されます。

表15.21 利用可能な SetEnvIf オプション

オプション 詳細
Remote_Host クライアントのホスト名を指しています。
Remote_Addr クライアントの IP アドレスを指しています。
Server_Addr サーバーの IP アドレスを指しています。
Request_Method 要求の方法を指しています (例えば、GET)。
Request_Protocol プロトコル名とバージョンを指しています (例えば、HTTP/1.1)。
Request_URI 要求されたリソースを指しています。

SetEnvIf 指示文は、HTTP keepalives を無効にするためと、クライアントブラウザーからの通知を封じることなく、SSL が接続を切断できるようするために使用します。SSL 接続の切断に信頼できない一部のウェブブラウザーには、これが必要です。

例15.70 SetEnvIf 指示文の使用

SetEnvIf User-Agent ".*MSIE.*" \
         nokeepalive ssl-unclean-shutdown \
         downgrade-1.0 force-response-1.0

/etc/httpd/conf.d/ssl.conf ファイルが存在するためには、mod_ssl をインスト-ルしておく必要があることに注意して下さい。SSL サーバーのインスト-ルと設定の方法に関する詳細については、「SSL サーバーのセットアップ」 を参照して下さい。

15.1.5.3. 一般的な Multi-Processing Module 指示文

Multi-Processing Module (マルチプロセッシングモジュール) (MPM) 指示文の使用により、特定の MPM の特定のサーバープールの動作をカスタマイズできるようになります。その性質は使用する MPM によって変化するため、指示文は IfModule に組み込まれています。デフォルトでは、サーバープールは preforkworker の両方の MPM 用に定義してあります。
以下の MPM 指示文は一般的に /etc/httpd/conf/httpd.conf 内で使用されます:
MaxClients
MaxClients 指示文の使用により、一度にプロセスできる同時接続のクライアントの最大数を指定できるようになります。以下の形式を取ります:
MaxClients 数字
高い 数字 はサーバーのパフォーマンスを向上しますが、prefork MPM を使用している場合には、256 を超過することは推奨できません。

例15.71 MaxClients 指示文の使用

MaxClients 256

MaxRequestsPerChild
MaxRequestsPerChild 指示文の使用により、子プロセスが終了するまでに対応できる最大要求数を指定できるようになります。以下の形式を取ります:
MaxRequestsPerChild 数字
数字0 にセットすると、無制限の要求を受け付けることになります。
MaxRequestsPerChild 指示文は長期生存しているプロセスのメモリーリークを防止するために使用されます。

例15.72 MaxRequestsPerChild 指示文の使用

MaxRequestsPerChild 4000

MaxSpareServers
MaxSpareServers 指示文の使用で、予備子プロセスの最大数を指定できるようになります。以下の形式を取ります:
MaxSpareServers 数字
この指示文は prefork MPM によってのみ使用されます。

例15.73 MaxSpareServers 指示文の使用

MaxSpareServers 20

MaxSpareThreads
MaxSpareThreads 指示文の使用で、予備のサーバースレッドの最大数を指定できるようになります。以下の形式を取ります:
MaxSpareThreads 数字
数字 は、MinSpareThreadsThreadsPerChild の合計に等しいか、それ以上でなければなりません。この指示文は、worker MPM によってのみ使用されます。

例15.74 MaxSpareThreads 指示文の使用

MaxSpareThreads 75

MinSpareServers
MinSpareServers 指示文の使用で、予備子プロセスの最小数を指定できるようになります。以下の形式を取ります:
MinSpareServers 数字
高い 数字 は、サーバーに対して高負荷のプロセス処理を与えることに注意して下さい。この指示文は prefork MPM によってのみ使用されます。

例15.75 MinSpareServers 指示文の使用

MinSpareServers 5

MinSpareThreads
MinSpareThreads 指示文の使用により、予備のサーバースレッドの最低数を指定できるようになります。以下の形式を取ります:
MinSpareThreads 数字
この指示文は、worker MPM によってのみ使用されます。

例15.76 MinSpareThreads 指示文の使用

MinSpareThreads 75

StartServers
StartServers 指示文の使用により、サービスが開始した時点で作成する子プロセスの数を指定できるようになります。以下の形式を取ります:
StartServers 数字
子プロセスは、現在のトラフィック状況に応じて動的に作成及び終結されるため、通常はこの値を変更する必要はありません。

例15.77 StartServers 指示文の使用

StartServers 8

ThreadsPerChild
ThreadsPerChild 指示文の使用で、子プロセスが作成できるスレッドの数を指定できるようになります。以下の形式を取ります:
ThreadsPerChild 数字
この指示文は、worker MPM によってのみ使用されます。

例15.78 ThreadsPerChild 指示文の使用

ThreadsPerChild 25

15.1.6. モジュールでの作業

モジュラーアプリケーションである httpd サービスは、必要に応じてランタイムに動的にロード、またはアンロードできる多数の Dynamic Shared Objects (動的共有オブジェクト) (DSOs) と一緒に配布されています。デフォルトではこれらのモジュールは 32-bit システムでは、/usr/lib/httpd/modules/ 内に、64-bit システムでは、/usr/lib64/httpd/modules/ 内に配置されています。

15.1.6.1. モジュールのロード

特定の DSO モジュールをロードするには、「一般的な httpd.conf の指示文」 で説明してあるように、LoadModule 指示文を使用します。個別のパッケージで提供されるモジュールでは多くの場合、それ自身の設定ファイルが /etc/httpd/conf.d/ ディレクトリに配置してあることに注意して下さい。

例15.79 mod_ssl DSO のロード

LoadModule ssl_module modules/mod_ssl.so

操作が終了したら、ウェブサーバーを再開始して設定を再ロードします。httpd サービスの再開始の方法については 「サービスの再開始」 を参照して下さい。

15.1.6.2. モジュールの書き込み

新規の DSO モジュールを作成する予定がある場合は、httpd-devel パッケージを最初にインスト-ルしていることを確認して下さい。インスト-ルするには、シェルプロンプトで以下を入力します:
~]# yum install httpd-devel
このパッケージには、モジュールをコンパイルするために必要なファイル、ヘッダーファイル、及び APache eXtenSion (apxs) ユーティリティが含まれています。
書き込みが終了したら、以下のコマンドでモジュールをビルドできます:
~]# apxs -i -a -c module_name.c
ビルドが成功すると、Apache HTTP サーバーで配布されている他のモジュールと同様にこのモジュールをロードできるはずです。

15.1.7. 仮想ホストのセットアップ

Apache HTTP サーバーに組み込まれている仮想ホスト設定は、要求されている IP アドレス、ホスト名、あるいはポートに基づいてサーバーが異なる情報を提供できるようにします。
名前ベースの仮想ホストを作成するには、まず /etc/httpd/conf/httpd.conf 内に提供してある仮想ホストコンテナを例として見つけます。そしてハッシュマーク (#) を各行の先頭から削除して、例15.80「仮想ホスト設定のサンプル」 に示してあるような方法で必要に応じてオプションをカスタマイズします。

例15.80 仮想ホスト設定のサンプル

NameVirtualHost penguin.example.com:80

<VirtualHost penguin.example.com:80>
    ServerAdmin webmaster@penguin.example.com
    DocumentRoot /www/docs/penguin.example.com
    ServerName penguin.example.com:80
    ErrorLog logs/penguin.example.com-error_log
    CustomLog logs/penguin.example.com-access_log common
</VirtualHost>

ServerName はマシンに割り当てられている有効な DNS 名でなければならないことに注意して下さい。<VirtualHost> コンテナは高度にカスタマイズ可能で、主なサーバー設定内で利用できるほとんどの指示文を受け付けます。このコンテナ内でサポートされていない指示文の中に、UserGroup があり、これらは SuexecUserGroup に入れ替わっています。

ポート番号の変更

仮想ホストがデフォルト以外のポートでリッスンするように設定する場合は、/etc/httpd/conf/httpd.conf ファイルのグローバル設定で Listen 指示文を適切に更新することを忘れないで下さい。
新規に作成された仮想ホストをアクティベートするには、ウェブサーバーを再開始する必要があります。httpd サービスを再開始する方法の説明については「サービスの再開始」 を参照して下さい。

15.1.8. SSL サーバーのセットアップ

Secure Sockets Layer (SSL) (セキュアソケットレイヤー) は暗号化のプロトコルであり、サーバーとクライアントが安全に通信できるようにします。その拡張及び改善バージョンである Transport Layer Security (TLS) (トランスポートレイヤーセキュリティ) と共に、SSL はプライバシーとデータの整合性を保証します。Apache HTTP サーバーは、SSL/TLS サポートを提供するために OpenSSL ツールキットを使用するモジュールである mod_ssl と一緒に組み合わせて、一般的に SSL サーバーと呼ばれます。
傍受できる人は誰でも読み取りと修正が可能な普通の HTTP 接続とは異なり、mod_ssl を使用すると、発信されたコンテンツの検査や修正を阻止できます。このセクションでは、Apache HTTP サーバー設定内でこのモジュールを有効にする方法について基本情報を提供し、プライベートキーと自己署名の証明書の生成プロセスをガイドしていきます。

15.1.8.1. 証明書とセキュリティの概要

安全な通信はキーの使用に基づいています。常習的な、即ち symmetric cryptography (対称型暗号化) では、トランザクションの両端でお互いの通信を解読するのに同じキーを使用します。それに対し、パブリック、即ち asymmetric cryptography (非対称型暗号化) では、2つのキーが共存します。プライベートキー は秘密として守られて、パブリックキー は通常、公共と共有されます。パブリックキーでエンコードされたデータはプライベートキーでのみデコードされるのに対し、プライベートキーでエンコードされたデータは逆にパブリックキーでのみデコードできます。
SSL を使用して安全な通信を提供するためには、SSL サーバーは Certificate Authority (CA) (認証局) で署名された電子証明書を使用しなければなりません。証明書はサーバーの様々な属性 (サーバーのホスト名、企業の名前、その住所など) と CA のプライベートキーで生成した署名を一覧表示します。この証明書は特定の認証局が証明書を発行したこと、及び証明書がいかなる方法でも修正されていないことを保証するものです。
ウェブブラウザーは新規の SSL 接続を確立する際に、ウェブサーバーから提供される証明書をチェックします。証明書が信頼できる CA からの署名を持たない場合や、または証明書に表記してあるホスト名が接続の確立で使用されたホスト名と一致しない場合は、ウェブブラウザーはそのサーバーとの交信を拒否して、通常はユーザーに適切なエラーメッセージを表示します。
デフォルトでは、ほとんどのウェブブラウザーが広域で使用されている認証局のグループを信用するように設定されています。そのため、セキュアサーバーをセットアップする時には適切な CA (認証局) を選択すべきです。そうすることで、対象ユーザーは接続を信頼できますが、そうでない場合はエラーメッセージが表示されて、手動で証明書を受理する必要があります。証明書のエラーメッセージを無視するようにユーザーに推奨することは攻撃者の侵略を許すことになりますので、できる限り信頼できる CA を使用しなければなりません。この件の詳細については、表15.22「最も一般的なウェブブラウザー用の CA 一覧」 をご覧下さい。

表15.22 最も一般的なウェブブラウザー用の CA 一覧

ウェブブラウザー リンク
Mozilla Firefox Mozilla root CA 一覧.
Opera The Opera Rootstore.
Internet Explorer Windows ルート証明書プログラムのメンバー.

SSL サーバーをセットアップする際には、証明書要求とプライベートキーを生成してから、証明書要求と企業の識別証明と支払いを認証局に送ります。認証局は証明書要求と識別を確証すると、サーバーで使用できる署名付きの証明書を送ってきます。その他の方法として、CA 署名のない自己署名の証明書を作成することができますが、これはテスト目的のみに使用すべきものです。

15.1.8.2. mod_ssl モジュールを有効にする

SSL サーバーをセットアップする予定の場合は、mod_ssl (mod_ssl モジュール) とopenssl ( OpenSSL ツールキット) のパッケージがインスト-ルされていることを確認して下さい。インスト-ルするには、シェルプロンプトで以下を入力します:
~]# yum install mod_ssl openssl
これにより、中心となる Apache HTTP サーバー設定ファイルにデフォルトで含まれている /etc/httpd/conf.d/ssl.confmod_ssl 設定ファイルが作成されます。このモジュールをロードするには、「サービスの再開始」 で説明してあるように、httpd サービスを再開始します。

15.1.8.3. 既存のキーと証明書の使用

以前にキーと証明書を作成している場合は、新規で作成するのではなく、既存のファイルを使用するように SSL サーバーを設定することができます。但しこれが実行できないケースが2つだけ存在します。
  1. IP アドレス、またはドメイン名を変更しようとしているケース。
    証明書は特定の IP アドレスとドメイン名のペアに発行されるものです。これらの値の1つが変更になると証明書は無効になります。
  2. VeriSign からの証明書があって、サーバーソフトウェアを変更しようとしているケース。
    広範囲に使用されている認証局である VeriSign は、特定のソフトウェア製品、IP アドレス、及びドメイン名に証明書を発行します。ソフトウェア製品を変更すると証明書を無効にします。
上記ケースのいずれの場合も、新しい証明書を取得する必要があります。この件に関する情報については、「新しいキーと証明書の生成」 を参照して下さい。
既存のキーと証明書を使用する場合は、その関連ファイルを /etc/pki/tls/private/ ディレクトリと /etc/pki/tls/certs/ ディレクトリにそれぞれ移動します。それを達成するには以下のコマンドを入力します:
~]# mv key_file.key /etc/pki/tls/private/hostname.key
~]# mv certificate.crt /etc/pki/tls/certs/hostname.crt
それから、以下の行を /etc/httpd/conf.d/ssl.conf 設定ファイルに追加します:
SSLCertificateFile /etc/pki/tls/certs/hostname.crt
SSLCertificateKeyFile /etc/pki/tls/private/hostname.key
更新済みの設定をロードするには、「サービスの再開始」 で説明してあるように、httpd サービスを再開始します。

例15.81 Red Hat セキュアウェブサーバーからのキーと証明書の使用

~]# mv /etc/httpd/conf/httpsd.key /etc/pki/tls/private/penguin.example.com.key
~]# mv /etc/httpd/conf/httpsd.crt /etc/pki/tls/certs/penguin.example.com.crt

15.1.8.4. 新しいキーと証明書の生成

新しいキーと証明書のペアを生成するには、システムに crypto-utils パッケージをインスト-ルしておく必要があります。これは、シェルプロンプトで以下を入力するとインスト-ルできます:
~]# yum install crypto-utils
このパッケージは SSL 証明書とプライベートキーを生成して管理するツールセットを提供すると共に、キー生成のプロセスをガイドしてくれる Red Hat Keypair Generation ユーティリティである genkey を収納しています。

既存証明書の入れ替え

有効な証明書を既に所有していて、それを新規のものと入れ替える予定の場合は、異なるシリアル番号を指定します。これにより、クライアントのブラウザーがこの変更の通知を受けて予定どおりに新規の証明書に更新して、このページへのアクセスに失敗しないようにします。カスタムのシリアル番号で新規の証明書を作成するには、genkey の代わりに、以下のコマンドを使用します:
~]# openssl req -x509 -new -set_serial number -key hostname.key -out hostname.crt

以前に作成したキーの削除

使用システム内に特定のホスト名用のキーファイルが既に存在する場合は、genkey は開始を拒否します。その場合は、以下のコマンドを使用して既存のキーを削除します:
~]# rm /etc/pki/tls/private/hostname.key
ユーティリティを実行するには、genkey コマンドの後に該当するホスト名 (例えば、penguin.example.com) を付けて使用します:
~]# genkey hostname
キーと証明書の生成を完了するには、以下の手順に従います:
  1. キーと証明書の保存先となる目的地を確認する。
    genkey ユーティリティの実行

    図15.1 genkey ユーティリティの実行


    Tab キーを使用して Next (次へ) ボタンを選択してから、Enter キーを押すと次の画面を進みます。
  2. Updown の矢印キーを使用して、適切なキーサイズを選択します。大きなキーはセキュリティを増強しますが、サーバーの反応時間も増加することに注意して下さい。このため、推奨できるオプションは、1024 bits です。
    キーサイズの選択

    図15.2 キーサイズの選択


    終了したら、Tab キーを使用して Next (次へ) ボタンを選択して Enter キーを押すと、ランダムなビットの生成プロセスが開始します。選択したキーサイズに応じてこれには少々時間がかかります。
  3. 証明書要求を認証局に送信するかどうかを決定します。
    証明書要求の生成

    図15.3 証明書要求の生成


    Tab キーを使用して Yes (はい) を選択し、証明書要求を組み立てるか、または No (いいえ) を選択して、自己署名の証明書を生成します。その後に、Enter を押して選択を確定します。
  4. Spacebar (スペースバー) キーを使用すると、プライベートキーの暗号化を有効にする ([*]) か、無効にする ([ ]) 選択ができます。
    プライベートキーの暗号化

    図15.4 プライベートキーの暗号化


    Tab キーを使用して Next (次へ) ボタンを選択してから、Enter キーを押すと次の画面を進みます。
  5. プライベートキーの暗号化を有効にしている場合は、適切なパスフレーズを入力します。セキュリティの理由で、入力時には文字が表示されませんが、最低でも5文字の長さが必要です。
    パスフレーズの入力

    図15.5 パスフレーズの入力


    Tab キーを使用して Next (次へ) ボタンを選択してから、Enter キーを押すと次の画面を進みます。

    パスフレーズは忘れないで下さい

    サーバーを開始するには正しいパスフレーズの入力が必要です。それを紛失したり忘れたりした場合は、新しいキーと証明書を生成しなければなりません。
  6. 証明書詳細のカスタマイズ
    証明書情報の指定

    図15.6 証明書情報の指定


    Tab キーを使用して Next ボタンを選択します。それから Enter を押すとキー生成ができます。
  7. 以前に証明書要求の生成を有効にしていた場合は、それを認証局に送信するように催促されます。
    証明書要求を送信する方法の案内

    図15.7 証明書要求を送信する方法の案内


    Enter を押してシェルプロンプトに戻ります。
生成が終了したら、キーと証明書の場所を /etc/httpd/conf.d/ssl.conf 設定ファイルに追加します:
SSLCertificateFile /etc/pki/tls/certs/hostname.crt
SSLCertificateKeyFile /etc/pki/tls/private/hostname.key
最後に、「サービスの再開始」 で説明してあるとおりに httpd サービスを再開始します。そうすると更新した設定がロードされます。

15.1.9. その他のリソース

Apache HTTP サーバーに関する詳細については、以下のリソースを参照してください。

15.1.9.1. インストールされているドキュメント

http://localhost/manual/
指示文と利用可能なモジュールの全説明を含んでいる、Apache HTTP サーバーの公式ドキュメントです。このドキュメントにアクセスするには、httpd-manual パッケージがインスト-ルしてあり、ウェブサーバーが稼働している必要があります。
man httpd
コマンドラインオプションの全一覧が収納されている httpd サービス用の man ページです。
man genkey
genkey の man ページにはその使用法についての全ドキュメントが含まれています。

15.1.9.2. 役立つ Web サイト

http://httpd.apache.org/
すべての指示文とデフォルトのモジュールに関するドキュメントが収納された、Apache HTTP サーバーの公式ウェブサイトです。
http://www.modssl.org/
mod_ssl モジュールに関する公式の Web サイトです。
http://www.openssl.org/
さらに詳しいドキュメントや FAQ、メーリングリストへのリンク、その他役立つリソースを掲載した OpenSSL のホームページです。