10.5. httpd.confの設定ディレクティブ

Apache HTTP サーバーの設定ファイルは、/etc/httpd/conf/httpd.confです。 httpd.confファイルには充分なコメントがあり、殆ど自然に理解 出来る内容です。デフォルトの設定で殆どの状態に対応します。但し、他の重要な 設定オプションに馴染んでおくことも大切です。

警告警告
 

Apache HTTP サーバー 2.0のリリースで、多くの設定オプションが変更されました。バージョン 1.3の 設定ファイルから2.0形式へ移行する場合は、 項10.2を 参照して下さい。

10.5.1. 一般的な設定のヒント

Apache HTTP サーバーを設定している場合、/etc/httpd/conf/httpd.confを編集して それから、リロードするか、又は再開始するか、又は項10.4で 示してあるようにhttpdのプロセスを停止して開始し直します。

httpd.confを編集する前に、最初にオリジナルファイルの コピーを作成します。バックアップを作成しておくと、設定ファイルを編集している 時にミスをしても簡単に復元できます。

ミスがあり、Webサーバーが正常に動作しない場合、先ずhttpd.confの 中で最近の編集した場所を見てそれがミスタイプでないかどうか確認します。

次に、Webサーバーのエラーログ、/var/log/httpd/error_logを見ます。 エラーログはユーザーの経験次第では、簡単に解釈できないかも知れません。但し、経験者には エラーログの最後のエントリーが、何が起こったかについて役に立つ情報を提供してくれるはずです。

次は、httpd.confの中に含まれている多くのディレクティブの 短い説明のリストです。これらの説明は、全てを表現するものではありません。この 詳細については、次のサイトでHTML形式で提供されているApacheのドキュメントを 御覧下さい。URL: http://httpd.apache.org/docs-2.0/.

また、mod_sslディレクティブについては、次のサイトでHTML形式で 提供されているドキュメントを御覧下さい。 URL: http://httpd.apache.org/docs-2.0/mod/mod_ssl.html.

10.5.2. ServerRoot

ServerRootは、webサイトの内容を含んでいるトップレベルの ディレクトリです。デフォルトで、ServerRootは セキュアサーバー用も非セキュアサーバー用も両方とも"/etc/httpd"へ 設定されています。

10.5.3. ScoreBoardFile

ScoreBoardFileは、内部のサーバープロセス情報を保存して、 その情報は親サーバープロセスと子プロセスの間で使用されます。Red Hat Linuxは ScoreBoardFileを保存するために共有メモリを使用しており デフォルトの/etc/httpd/logs/apache_runtime_statusは 単にフォールバック(予備)として使用されるだけです。

10.5.4. PidFile

PidFileは、サーバーがそのプロセスID (PID)を 記録するファイルの名前を示します。デフォルトでは、PIDは /var/run/httpd.pid内にリストされています。

10.5.5. Timeout

Timeoutは、通信中に送信と受信を待つ時間の長さ秒単位で 示します。特にTimeoutは、GET要求を受信するのにサーバーが 待つ長さ、POST 又は PUT要求でTCPパケットを受信するまでの待つ長さ、 また、ACKがTCPパケットに反応するまでの長さなどを示します。デフォルトでは Timeout300秒にセットしてあり、 ほとんどの状況には適切です。

10.5.6. KeepAlive

KeepAliveは、サーバーが接続 1つに対して複数の要求を許可するか どうかセットし、1人のクライアントがサーバーリソースを過度に使用することを防止 します。

デフォルトで、Keepaliveoffにセットしてあります。 それがonにセットしてある場合に、サーバーが混雑してくると、サーバーは すばやく最大数の子プロセスを分配します。この状態では、サーバーは顕著に遅くなります。 もしKeepaliveを有効にしておく場合はKeepAliveTimeoutを 「低」(KeepAliveTimeoutディレクティブの詳細については、項10.5.8を参照して下さい。)にセットしサーバー上の /var/log/httpd/error_logログファイルをモニタしておくと良いでしょう。 このログはサーバーが子プロセスが無くなる時に報告してきます。

10.5.7. MaxKeepAliveRequests

このディレクティブは、固定接続1つに対して許可される要求の最大数をセットします。 Apache Projectは、サーバーのパフォーマンスが向上する高い設定を推奨します。 MaxKeepAliveRequestsは、デフォルトで100に セットしてありますが、これでほとんどの状況には適切なはずです。

10.5.8. KeepAliveTimeout

KeepAliveTimeoutは 要求が対応された後、接続を閉じるまでの サーバーが待つ時間を秒数で設定します。サーバーが要求を受信すると、Timeout ディレクティブが代わりに適用されます。KeepAliveTimeoutはデフォルトで 15 秒に設定されています。

10.5.9. MinSpareServers 及び MaxSpareServers

Apache HTTP サーバーは、トラフィックをベースにして適切な数のスペアサーバープロセスを 管理することにより、動的に認識されるロードを受け入れます。サーバーは 要求待ちのサーバーの数をチェックし、もしMaxSpareServers 以上にある場合は幾つかをキルして、もしその数がMaxSpareServersよりも 少ない場合は、幾つか作成します。

デフォルトのMinSpareServers値は 5で、デフォルトのMaxSpareServers値は 20です。これらのデフォルト設定は、状況に合わせて適切に する必要があります。MinSpareServersをあまり大きな数字に しない様に気を付ける必要があります。大きくし過ぎると、トラフィックが 軽い状態の時でもサーバー上に大きなプロセッシング負荷をかけてしまいます。

10.5.10. StartServers

StartServersセットアップの時点で、作成されるサーバープロセスの 数を設定します。Webサーバーは、トラフィックロードをベースにしてサーバープロセスを 動的にキルしたり、作成したりしますので、このパラメータを変更する必要があります。 Webサーバーは、開始時点で8つのサーバープロセスを始動するようにセットしてあります。

10.5.11. MaxClients

MaxClientsは、同時に動作できるサーバープロセスの合計数、又は 同時に接続できるクライアントの合計数の限度を設定します。このディレクティブの主な理由は 暴走するApache HTTP サーバーがオペレーティングシステムをクラッシュさせる可能性を避けるためです。 忙しいサーバーにとっては、この値は高めに設定すべきです。サーバーのデフォルトは 150です。この値がMaxClients用の設定で256を 越えないようにすることが推奨されます。

10.5.12. MaxRequestsPerChild

MaxRequestsPerChildは、各子サーバープロセスが消滅する前に 対応する要求の最大数合計を設定します。MaxRequestsPerChildを 設定する主な理由は、長く残存するプロセスにより誘導されたメモリリークを避けるためです。 サーバー用のデフォルトMaxRequestsPerChild1000に なっています。

10.5.13. Listen

Listenコマンドは、Webサーバーが要求の来信を受け付ける ポートを識別します。デフォルトで Apache HTTP サーバー は、非セキュアなWeb 通信をポート80で、 そして(セキュアサーバーを定義する/etc/httpd/conf.d/ssl.conf内の) セキュアなWeb 通信をポート443でリッスン(監視)します。

Apache HTTP サーバー が1024以下のポートでリッスンするように設定されている場合は、 ルートユーザーが開始することになります。1024及びそれ以上のポートでは 通常のユーザーがhttpdを開始することが出来ます。

Listenディレクティブは、サーバーが受理する接続の為の 特定のIP アドレスも指定することが出来ます。

10.5.14. Include

Includeを使用するとランタイム時に他の設定を含む様に することができます。

これらの設定ファイルのパスはServerRootに対して 絶対パスでも相対パスでも使用できます。

誓要項目重要
 

mod_sslmod_perlphpなどの個別にパッケージされたモジュールを 使用するサーバーには、 httpd.conf内の Section 1: Global Environmentの中に次のような ディレクティブがなければなりません:

Include conf.d/*.conf

10.5.15. LoadModule

LoadModuleは、DSO(Dynamic Shared Object)をロードする為に 使用されます。LoadModuleの使い方を含めたApache HTTP サーバーのDSOサポートに 関する情報は項10.7で参照できます。モジュールのロード 順序はApache HTTP サーバー 2.0 の中では重要ではありません。Apache HTTP サーバー 2.0の DSOサポートに関しては項10.2.1.3を御覧下さい。

10.5.16. ExtendedStatus

ExtendedStatusディレクティブは、server-statusハンドラが コールされる時点で、Apacheが基本(off)又は詳細(on)の どちらのサーバーステータス情報を生成するのかを制御します。server-statusハンドラは Locationタグを使用してコールされます。server-statusの コールに関する詳細は項10.5.63に含まれています。

10.5.17. IfDefine

<IfDefine>及び、</IfDefine>の タグは、<IfDefine>タグ内にあるテストが 「true」であれば、 適用される設定ディレクティブを囲みます。テストが「false」であれば、ディレクティブは 無視されます。

<IfDefine>タグ内のテストは、パラメータ名 (例えばHAVE_PERL)です。パラメータが定義されていると それは、サーバーのスタートコマンドへの引数として提供されていると言う 意味であり、テストは「true」です。この場合、Webサーバーがスタートすると テストは「true」で、IfDefineタグ内に含まれるディレクティブが 適用されます。

デフォルトで、<IfDefine HAVE_SSL>タグはセキュアサーバー用の 仮想ホストタグを囲みます。<IfDefine HAVE_SSL>タグは、 ssl_module用にLoadModuleタグと AddModuleタグも囲みます。

10.5.18. User

Userディレクティブは、サーバープロセスのユーザー名をセットして どのファイルにそのサーバーがアクセスを許可されるかを決定します。このユーザーに アクセスできないファイルは、Apache HTTP サーバーに接続しているクライアントにもアクセス出来ません。

デフォルトで、Userは、apacheに セットされています。

注意注意
 

セキュリティの目的でApache HTTP サーバーは、ルートユーザーとしての実行を拒否します。

10.5.19. Group

これは、Apache HTTP サーバープロセスのグループ名を指定します。

デフォルトでは、Groupapacheに セットされています。

10.5.20. ServerAdmin

ServerAdminディレクティブをWebサーバー管理者の電子メールアドレスに セットします。この電子メールアドレスがサーバーが生成するWebページのエラーメッセージ内に 表示されますので、ユーザーは電子メールをサーバー管理者に送ることにより問題の報告をする ことが出来ます。

デフォルトでは、ServerAdminroot@localhostにセットされています。

ServerAdminをセットする一般的な方法は、それを webmaster@example.comにセットすることです。そして webmasterを、/etc/aliasesの Webサーバーの責任者にエイリアス設定し、/usr/bin/newaliasesを 実行します。

10.5.21. ServerName

サーバー用にServerNameを使用してホスト名とポート番号 (Listenディレクティブと一致すること)を設定します。 ServerNameはマシンの実際のホスト名に一致する必要は ありません。例えば、Webサーバーがwww.example.comで ある時、サーバーのホスト名は実際foo.example.comである ことが可能です。ServerNameに指定してある値は、システムにより解決 できる有効なDNS(Domain Name Service)でなければなりません。これは勝手に作りあげることは 出来ません。

以下に、ServerNameディレクティブのサンプルを示します:

ServerName www.example.com:80

ServerNameを指定する時は、確実にIPアドレスと サーバー名の対が/etc/hostsファイル内に含まれる ようにして下さい。

10.5.22. UseCanonicalName

このディレクティブはonにセットされている時、 Apache HTTP サーバーが、ServerNamePortの 両ディレクティブで指定された値を使用して自身を参照するように設定 します。UseCanonicalNameoffに セットされている場合、サーバーは、自身を参照する時、要求している クライアントで使用された値をその代わりに使います。

UseCanonicalNameは、デフォルトで offにセットされています。

10.5.23. DocumentRoot

DocumentRootは、要求に対応してサービスされる殆どの HTMLファイルを含んでいるディレクトリです。セキュアと非セキュアの両方の のWebサーバー用のデフォルトDocumentRoot/var/www/htmlディレクトリです。例えば、サーバーは 次のようなドキュメントの要求を受信するかも知れません:

http://example.com/foo.html

この場合、サーバーはデフォルトディレクトリ内で以下のファイルを検索します:

/var/www/html/foo.html

DocumentRootがセキュアと非セキュアの両タイプの Webサーバーで共有されないようにする為には、DocumentRootを 変更します。項10.8を参照して下さい。

10.5.24. Directory

<Directory /path/to/directory>タグ及び </Directory>タグは、containerと 呼ばれる物を作成し、特定のディレクトリやサブディレクトリにのみ適用されることに なっている設定ディレクティブのグループを囲むために使用されます。ディレクトリに 適用されるディレクティブはいずれも<Directory>タグ内で 使用されます。

デフォルトでは、Options(項10.5.25を参照)と AllowOverride(項10.5.26を参照)の ディレクティブを使用して、非常に限定的なパラメータがルートディレクトリに適用されます。 この設定では、より許可を必要とするシステム上のディレクトリは、これらの設定が明確に 与えられる必要があります。

デフォルトの設定では、もう1つのDirectoryコンテナが DocumentRoot用に設定され、これはディレクトリツリーに より穏やかなパラメータを割り当てますので、Apache HTTP サーバー はそこに存在するファイルに アクセスすることが出来ます。

Directoryコンテナは、ScriptAlias ディレクティブに指定してあるディレクトリの外部にある、サーバーサイドアプリケーション の為の追加のcgi-binディレクトリを設定するのにも 使用できます。(ScriptAliasディレクティブについての詳細は 項10.5.44で御覧下さい。

これを達成するには、Directoryコンテナは ExecCGIオプションをそのディレクトリ用に セットする必要があります。

例えば、CGIスクリプトが/home/my_cgi_directoryに 配置してある場合、次のDirectoryコンテナを httpd.confファイルに追加して下さい:

<Directory /home/my_cgi_directory>
    Options +ExecCGI
</Directory>

次に、AddHandlerディレクティブを、アンコメントして .cgi拡張付のファイルをCGIスクリプトとして識別する 必要があります。AddHandlerの設定についての案内は 項10.5.59で御覧下さい。

これが機能するためには、CGIスクリプトとそのスクリプトへのパス全体用の 権限は 0755にセットされなければなりません。

10.5.25. Options

Optionsディレクティブは、特定のディレクトリで どのサーバー機能が利用できるかを制御します。例えば、ルートディレクトリに 指定してある限定パラメータの元でOptionsは、 FollowSymLinksにのみセットされます。サーバーは ルートディレクトリ内のシンボリックリンクに追従する許可がある以外は どの機能も有効になりません。

デフォルトでは、DocumentRootディレクトリ内で OptionsIndexesFollowSymLinksを含むようにセットされています。 Indexesは、DirectoryIndex (例えば;index.html)が指定されていない場合、 サーバーに1つのディレクトリ用にディレクトリリストを生成する許可を します。そしてFollowSymLinksはサーバーに そのディレクトリ内でシンボリックリンクに追従するよう許可をします。

注意注意
 

メインサーバー設定セクションからのOptionsステートメントは 各VirtualHostコンテナに個別に反復する必要があります。 VirtualHostコンテナに関する詳細は項10.5.69で 御覧下さい。

10.5.26. AllowOverride

AllowOverrideディレクティブは、.htaccessファイル内の 宣言でOptionsが上書きされるかどうかをセットします。デフォルトでは、ルート ディレクトリも、DocumentRoot.htaccessの上書きを 許可しないようにセットされています。

10.5.27. Order

Orderディレクティブは、allowdenyのディレクティブが評価をされる順序を制御します。 DocumentRootディレクトリ用には、サーバーは Denyディレクティブの前にAllowディレクトリを 評価するように設定されています。

10.5.28. Allow

Allowは、どの要求者が該当するディレクトリへアクセスできるかを 指定します。要求者には、all、ドメイン名、IPアドレス、部分IPアドレス、 ネットワーク/ネットマスクの対、その他などがあります。DocumentRoot ディレクトリはallからの要求をAllowするように 設定されており、これは全てがアクセスを持つことを意味します。

10.5.29. Deny

Denyは、誰がアクセスを拒否されるかを指定すること以外は Allowと同様に機能します。DocumentRootは、 デフォルトでは、誰の要求にもDenyしないように設定されています。

10.5.30. UserDir

UserDirは、各ユーザーのホームディレクトリ内のサブディレクトリの名前です。 ここにWebサーバーでサービスされる個人のHTMLファイルを配置します。このディレクティブは、 デフォルトでdisableにセットされています。

サブディレクトリの名前は、デフォルトの設定でpublic_htmlに セットされています。例えば、サーバーは次のような要求を受信するかも知れません:

http://example.com/~username/foo.html

サーバーは次のファイルを見付けようとします:

/home/username/public_html/foo.html

上記の例では、/home/username/はユーザーのホームディレクトリです。 (ユーザーのホームディレクトリへのデフォルトパスは固定ではないことに注意して下さい)。

ユーザーのホームディレクトリへの権限が正しく設定されていることを確認して 下さい。ユーザーのホームディレクトリは0711へセットする必要があります。 読み(r)と実行(x)のビットがユーザーのpublic_html ディレクトリ(0755 も可能です)にセットする必要があります。ユーザーの public_htmlディレクトリでサービスされるファイルは 最低でも0644にセットする必要があります。

10.5.31. DirectoryIndex

DirectoryIndexは、サーバーによりサービスされるデフォルト ページで、ユーザーがディレクトリ名の後ろに順スラッシュ(/)を指定してディレクトリの インデックスを要求した時のサービスです。

ユーザーが、ページ http://example/this_directory/, を要求すると、存在する場合はDirectoryIndexページが、そうでなければ、 サーバー生成のディレクトリリストが提供されます。DirectoryIndex用の デフォルトはindex.htmlindex.html.varの タイプマップです。サーバーはそれらのファイルのいずれかを探し、最初に見付かった物を 表示します。ファイルを見付けることが出来ない場合は、Options Indexesが そのディレクトリにセットされているため、ディレクトリリストの機能が停止されていなければ、 サーバーは HTML形式でそのディレクトリ内のサブディレクトリとファイルのリストを生成して表示します。

10.5.32. AccessFileName

AccessFileNameは、各ディレクトリ内のアクセス制御用に サーバーが使用すべきファイルの名前を示します。デフォルトでは.htaccessと なっています。

AccessFileNameディレクティブの直後に、Filesタグの セットが.htで始まる全てのファイルのアクセス制御を適用します。 これらのディレクティブは、セキュリティの目的で.htaccessファイル (又は、.htで始まる他のファイル)へのいかなるWebアクセスも拒否します。

10.5.33. CacheNegotiatedDocs

デフォルトでは、Webサーバーはプロキシサーバーに対して、内容を基準にして 交渉したドキュメントはいずれもキャッシュしないように注文をつけます。 (これらの内容は、要求者からの入力により時間経過と共に変化するものです)。 CacheNegotiatedDocsが、onにセットして ある場合、その機能を無効にしてプロキシサーバーにドキュメントキャッシュを 許可します。

10.5.34. TypesConfig

TypesConfigは、デフォルトのMIMEタイプのマッピングのリスト (ファイル名拡張子からコンテンツタイプへ)を設定するファイルの名前を指定します。 デフォルトのTypesConfigファイルは/etc/mime.typesです。 /etc/mime.typesを編集する代わりに、MIMEタイプマッピングを追加する方法は AddTypeディレクティブを使用することです。

AddTypeについての詳細は項10.5.58で 御覧下さい。

10.5.35. DefaultType

DefaultTypeはWebサーバーの為にデフォルトのコンテンツタイプを セットしてMIMEタイプが決定できないドキュメント用に使用します。デフォルトでは、 text/plainです。

10.5.36. IfModule

<IfModule>タグと </IfModule>タグは 特定のモジュールがロードされた時にのみ始動される条件付のコンテナを作成します。 IfModule内に含まれているディレクティブは、1つ又は2つの条件で プロセスされます。開始用の<IfModule>タグに含まれる モジュールがロードされるとディレクティブはプロセスされます。あるいは、感嘆符[!]が モジュール名の前にある場合、<IfModule>タグ内に指定してある モジュールがロードされない時にのみ、ディレクティブはプロセスされます。

Apache HTTP サーバーモジュールに関する詳細は項10.7で 御覧下さい。

10.5.37. HostnameLookups

HostnameLookupsは、onoffdoubleの いずれかにセットされます。HostnameLookupsonにセットしてある場合、 サーバーは自動的に各接続のIPアドレスを解決します。IPアドレスを解決するとは、サーバーがプロセッシング オーバーヘッドを追加することにより、DNSサーバーに1つ、又は、複数の接続をすることを意味します。 もしdoubleHostnameLookupsがセットされている場合、サーバーは ダブルのDNSルックアップをしてより多くのプロセッシングオーバーヘッドを追加します。

サーバー上のリソースを節約する為に、デフォルトではHostnameLookupsoffにセットしてあります。

ホスト名がサーバーログファイル内に要求される場合、サーバーログファイルを 巡回している時に、より効率良く大量のDNSルックアップを達成する複数の ログアナライザーの中から1つを実行して見て下さい。

10.5.38. ErrorLog

ErrorLogは、サーバーエラーがログしてあるファイルを指定します。 デフォルトでは、このディエクティブは/var/log/httpd/error_logに セットしてあります。

10.5.39. LogLevel

LogLevelは、エラーログ内のエラーメッセージの詳細レベルを セットします。LogLevelは、(低詳細度から高詳細度まで) emergalertcriterrorwarnnoticeinfodebug等を設定できます。デフォルトの LogLevelwarnです。

10.5.40. LogFormat

LogFormatディレクティブは、各種のWebサーバーログファイルの 形式を設定できます。実際に使用されるLogFormatは、 CustomLogディレクティブにある設定に左右されます。(項10.5.41を参照して下さい)。

以下に、CustomLogディレクティブがcombinedに 設定してある場合のフォーマットオプションを示します:

%h (リモートホストの IPアドレス又はホスト名 )

要求を出しているクライアントのリモートIPアドレスをリストします。 HostnameLookupsonに設定してある 場合、DNSで入手できない場合を除いて、クライアントホスト名が記録 されます。

%l (rfc931)

使用されていません。このフィールドのログファイルにはハイフン[-]が 表示されます。

%u (認証されたユーザー)

認証が必要な場合、ユーザーの記録があるユーザー名をリストします。 通常、これは使用しません。このフィールドのログファイルにはハイフン[-]が 表示されます。

%t (日付)

要求の日付と時刻をリストします。

%r (要求の文字列)

ブラウザ又はクライアントから来たままの要求の文字列をリストします。

%s (ステータス)

クライアントホストに返されたHTTPステータスコードをリストします。

%b (バイト)

ドキュメントのサイズをリストします。

%\"%{Referer}i\" (参照元)

クライアントホストをWebサーバーに照会したwebページを URLでリストします。

%\"%{User-Agent}i\" (ユーザー/エージェント)

要求を出しているWebブラウザのタイプをリストします。

10.5.41. CustomLog

CustomLogは、ログファイルとログファイル形式を 識別します。デフォルトでは、ログは/var/log/httpd/access_logファイルに 記録されます。

デフォルトのCustomLog形式は combinedです。 以下にcombinedログファイルの 形式を示します:

remotehost rfc931 user date "request" status bytes referrer user-agent

10.5.42. ServerSignature

ServerSignatureディレクティブは、Apache HTTP サーバーサーバーや ServerNameを含む行を、クライアントに戻されたエラー メッセージなどのサーバー生成ドキュメントに追加します。デフォルトでは、 ServerSignatureonにセットされて います。

これは、offEMailにも設定できます。 EMailは、mailto:ServerAdminHTMLタグを 応答自動生成の著名行に追加します。

10.5.43. Alias

Alias設定により、DocumentRootディレクトリ 外部のディレクトリがアクセスできるようになります。エイリアスで終了している URLはすべてそのエイリアスのパスに名前解決をします。デフォルトでは、1つの iconsディレクトリ用に1つのエイリアスが既に設定して あります。iconsディレクトリはWebサーバーによりアクセス できますが、そのディレクトリはDocumentRootの中では ありません。

10.5.44. ScriptAlias

ScriptAliasディレクティブは、CGIスクリプトがロードされる 場所を定義します。一般には、CGIスクリプトをDocumentRootの 中に残すのはよくありません。そこでは、テキストドキュメントとして覗かれて しまう可能性があります。この理由で、DocumentRootディレクトリ の外にサーバーサイドの実行可能ファイルとスクリプトを収納した特別なディレクトリが ScriptAliasディレクティブによって指定されます。このディレクトリは cgi-binとして知られ、デフォルトでは/var/www/cgi-bin/に セットされています。

cgi-binディレクトリの外部に実行可能ファイルを 保存する為のディレクトリを確立することは可能です。その方法の案内は 項10.5.59項10.5.24を御覧下さい。

10.5.45. Redirect

webページが移動すると、新しいURLへファイルのロケーションをマップするために Redirectが使用されます:

Redirect /<old-path>/<file-name> http://<current-domain>/<current-path>/<file-name>

この例では、古いパス情報<old-path><file-name><current-domain><current-path>の部分を、 <file-name>の為の 現在のドメインとパス情報で入れ換えます。

この例では、古い場所での<file-name>への 要求は自動的に新しい場所に転送されます。

より高度な転送技術として、Apache HTTP サーバーに収納されているmod_rewrite モジュールを使用する方法があります。mod_rewriteの設定法に関する 情報は、以下の Apache Software Foundationのサイトでオンラインドキュメントをお読み下さい。 http://httpd.apache.org/docs-2.0/mod/mod_rewrite.html.

10.5.46. IndexOptions

IndexOptionsは、アイコンの追加、ファイルの説明、その他 により、サーバー生成のディレクトリ一覧の表示を制御します。 Options Indexes(項10.5.25を参照)が セットされている場合、Web サーバーがインデックスのないディレクトリの為の HTTP要求を受信した時、Web サーバーは、ディレクトリ一覧を生成します。

先ず、WebサーバーはDirectoryIndexディレクティブ内の リストしてある名前と一致するファイルを求めて、要求されたディレクトリを 探索します。(通常index.html)。index.html ファイルが見付からない場合、Apache HTTP サーバーは要求されたディレクトリのHTMLディレクトリ 一覧を作成します。このディレクトリ一覧の表示は一部、 IndexOptionsディレクティブによって制御されます。

デフォルト設定では、FancyIndexingが起動されます。 これは、ユーザーはコラムヘッダをクリックすることで、ディレクトリ 一覧を再構成することができるという意味です。そのヘッダを もう1度クリックすると、上昇順から下降順に転換出来ます。 FancyIndexingは、またファイル拡張子に応じて 異なるファイルには異なるアイコンを表示します。

AddDescriptionオプションは、FancyIndexingと 併用された時、サーバー生成のディレクトリ一覧内にあるファイル用に短い説明を 提供します。

IndexOptionsは、サーバー生成のディレクトリの表示を制御する為に セットされた他のパラメータを数多く持っています。これらのパラメータには IconHeightIconWidthが含まれており、 サーバーが、その生成したwebページ内のアイコンの為にHTMLHEIGHTタグと HTMLWIDTHタグを含むようにします。 アイコンを作成する為の IconsAreLinksは、ファイル名、その他と一緒にHTMLリンクアンカーの 1部として機能します。

10.5.47. AddIconByEncoding

このディレクティブは、サーバー生成のディレクトリ一覧内のMIMEエンコーディング と共にファイルによって表示されるアイコンの名前を示します。たとえば、デフォルトで Webサーバーはcompressed.gifのアイコンを、サーバー生成の ディレクトリ一覧内にMIMEでエンコードしたx-compress と x-gzip ファイルの次に 表示します。

10.5.48. AddIconByType

このディレクティブは、サーバー生成のディレクトリ一覧内のMIMEタイプと 一緒にあるファイルの次に表示されているアイコンの名前を示します。 例えば、サーバーは、サーバー生成のディレクトリ一覧内で、mime-タイプの textと共にあるファイルの次の text.gifアイコンを表示します。

10.5.49. AddIcon

AddIconは、特定の拡張子を持つファイル用にサーバー生成の ディレクトリ一覧で表示するアイコンを指定します。例えば、Webサーバーは .bin 又は .exeの拡張子を持つ ファイル用のbinary.gifアイコンを表示するようにセット されています。

10.5.50. DefaultIcon

DefaultIconは、他にアイコンの指定がないファイルの為に サーバー生成のディレクトリ一覧内に表示するアイコンを指定します。デフォルトは unknown.gifイメージファイルです。

10.5.51. AddDescription

FancyIndexingIndexOptionsパラメータとして 使用する時、サーバー生成したディレクトリ一覧内の特定のファイル又はファイルタイプ用に AddDescriptionディレクティブを使用してユーザー指定の説明を表示する ことができます。 AddDescriptionディレクティブは特定のファイル、 ワイルドカード表現、ファイル拡張子などの一覧をサポートします。

10.5.52. ReadmeName

ReadmeNameは、ディレクトリ内にそれが存在する場合、サーバー生成のディレクトリ 一覧の末尾に追加されているファイルの名前を指定します。Webサーバーは、最初にそのファイルをHTML 文書としてインクルードしようとします。その後、それを平文としてインクルードしようとします。 デフォルトでは、ReadmeNameREADME.htmlにセットされて います。

10.5.53. HeaderName

HeaderNameは、それがディレクトリに存在する場合、サーバー生成の ディレクトリ一覧の前に追加されているファイルの名前を指定します。ReadmeNameと 同様にサーバーはそれをHTML文書としてインクルードを試み、それが出来なければ平文として インクルードします。

10.5.54. IndexIgnore

IndexIgnoreは、ファイル拡張子、部分ファイル名、ワイルドカード表現、 完全ファイル名等を一覧表示します。Webサーバーは、サーバー生成のディレクトリ一覧に あるそれらのパラメータのいずれかに一致するファイルはインクルードしません。

10.5.55. AddEncoding

AddEncoding は、特定のエンコードタイプを指定するファイル名拡張子の 名前を指定します。AddEncodingは、また幾らかのブラウザに対して ダウンロードされる特定のファイルを展開するように指示することにも使用できます。

10.5.56. AddLanguage

AddLanguageは、ファイル名拡張子を特定の言語を関連付けします。 このディレクティブは、クライアント上のWebブラウザの言語設定を基にした複数言語の 内容をサービスするApache HTTP サーバーの為に役に立ちます。

10.5.57. LanguagePriority

LanguagePriorityは、クライアントのWebブラウザが言語の設定を していない場合、別の言語の為の前例をセットします。

10.5.58. AddType

MIMEタイプとファイル拡張子の対を定義するには、AddTypeディレクティブを 使用します。例えば、PHP4を使用する場合、AddTypeディレクティブを使用して WebサーバーにPHPファイル拡張子(.php4.php3.phtml.php)をPHP MIMEタイプとして認識させます。 次のディレクティブは、Apache HTTP サーバー対して.shtmlファイル拡張子を認識するように 指示しています:

AddType text/html .shtml
AddHandler server-parsed .shtml

10.5.59. AddHandler

AddHandlerは、ファイル拡張子を特定のハンドラにマップします。 例えば、cgi-scriptハンドラは拡張子.cgiと 適合し、自動的に末尾に.cgiが付いているファイルをCGIスクリプトと して取り扱います。以下のAddHandlerディレクティブのサンプルは .cgi拡張子用の物です。

AddHandler cgi-script .cgi

このディレクティブは、cgi-binの外部にあるCGIを有効にして ディレクトリコンテナ内のExecCGIオプションを持つ、サーバー上の いずれかのディレクトリ内で機能します。あるディレクトリ用にExecCGI オプションを設定する方法に関しては項10.5.24を御覧下さい。

CGIスクリプトに加えて、AddHandlerディレクティブは サーバー構文解析されたHTMLとイメージマップファイルをプロセスする為に 使用されます。

10.5.60. Action

Actionは、MIMEのコンテンツタイプとCGIのスクリプトペアを 指定しますので、そのメディアタイプのファイルが要求された時には、特定の CGIのスクリプトが実行されます。

10.5.61. ErrorDocument

ErrorDocumentディレクティブは、HTTP応答コードと クライアントから返送されるメッセージ又はURLを関連付けます。 デフォルトでは、エラーが発生した時lにWebサーバーが簡単な、暗号的な エラーメッセージを出力します。ErrorDocumentディレクティブは 強制的に、Webサーバーがカスタマイズのメッセージを出力するか、クライアントをローカル 又は、外部のURLへ転送するようにします。

誓要項目重要
 

有効であるためには、メッセージは1対の2重引用符["]で囲まれている必要が あります。

10.5.62. BrowserMatch

BrowserMatchディレクティブにより、サーバーは環境変数を定義して ユーザー/エージェントHTTPヘッダフィールド(クライアントのWebブラウザタイプを識別します) を基にして適切な操作をします。デフォルトでは、WebサーバーはBrowserMatchを 使用して問題が判別している特定のブラウザには接続を否定し、またその動作で問題があると知られている ブラウザ用のkeepalives とHTTP ヘッダフラッシュを無効にします。

10.5.63. Location

<Location>タグと</Location>タグは URLを基にしたアクセス制御がその中で指定できるコンテナを作成します。

例えば、ステータス報告を見るためにサーバーのドメインから接続している 人々には、以下のようなディレクティブを使用します:

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

<.example.com>を、Webサーバー用の 第2レベルのドメイン名で入れ換えます。

サーバー設定の報告(インストール済のモジュールと設定ディレクティブを含む)を ドメインの内部からの要求へ提供するには、次のようなディレクティブを使用します:

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

同様に、<.example.com>を、Webサーバー用の 第2レベルのドメイン名で入れ換えます。

10.5.64. ProxyRequests

Apache HTTP サーバーとプロキシサーバーとして機能するように設定するには、 <IfModule mod_proxy.c>行の先頭にある ハッシュマーク(#)を取り除いて、mod_proxy モジュールをロードしてから、ProxyRequestsディレクティブを Onにセットします。

10.5.65. Proxy

<Proxy *>タグと</Proxy>タグは プロキシサーバーのみに適用されることになっている設定ディレクティブのグループを 囲むコンテナを作成します。<Directory>コンテナ内に許可 されている多くのディレクティブは<Proxy>コンテナの中でも 使用することができます。

10.5.66. ProxyVia

ProxyViaコマンドは HTTP Via:ヘッダの行が、 プロキシサーバーを通過していく要求又は応答と共に送信されるかどうかを 制御します。Via:ヘッダは、ProxyViaOnに セットされている場合、ホスト名を表示します。Fullの場合には ホスト名とApache HTTP サーバーバージョンを表示し、Offの場合には、 Via:の行を変更なしにパスして、Blockの場合には、Via:の行は 削除されます。

10.5.67. キャッシュディレクティブ

多くのコメント化されたキャッシュディレクティブがデフォルトのApache HTTP サーバー 設定ファイルで 供給されています。殆どの場合、ハッシュマーク「[#]」をその行の先頭から 削除してアンコメント化することで充分です。以下により重要なキャッシュ関連の ディレクティブの幾つかのリストを示します。

10.5.68. NameVirtualHost

NameVirtualHostディレクティブは、必要であれば、名前ベースの 仮想ホストの為にIPアドレスとポート番号を関連付けします。名前ベースの 仮想ホストにより、Apache HTTP サーバーの1つは複数IPアドレスを使用せずに異なるドメインに サービスすることが出来ます。

注意注意
 

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

名前ベースの仮想ホストを有効にするには、NameVirtualHostの 設定ディレクティブをアンコメントして、正しいIPアドレスを追加します。その後、 各仮想ホストに他のVirtualHostコンテナを追加します。

10.5.69. VirtualHost

<VirtualHost>タグと</VirtualHost>タグは 仮想ホストの性格を形成するコンテナを作成します。<VirtualHost> コンテナは殆どの設定ディレクティブを受け付けます。

コメント化された VirtualHostコンテナのセットが、 httpd.confによって提供されます。これは各仮想 ホストに必要な設定ディレクティブのミニマムセットを表現しています。 仮想ホストに関する情報は項10.8で 御覧下さい。

注意注意
 

SSL仮想ホストのコンテナはすべて、/etc/httpd/conf.d/ssl.conf ファイルに移動されています。

10.5.70. SSL 設定ディレクティブ

/etc/httpd/conf.d/ssl.confファイル内のSSL ディレクティブは、 SSL と TLSを使用してセキュアなWeb通信を有効するための設定ができます。

10.5.70.1. SetEnvIf

SetEnvIfは、着信するセキュアな接続のヘッダを基にした 環境変数の設定をします。 供給された/etc/httpd/conf.d/ssl.conf ファイルで、これはHTTP keepaliveを無効にして、SSLを許可するのに使用され、クライアント ブラウザからの閉じる為のアラート通知なしで接続を閉じることが出来ます。この設定は 確実にSSL接続を閉じることが出来ない特定のブラウザの為に必要です。

SSLディレクティブに関する情報は、以下のアドレスのサイトで確認できます:

Apache HTTPセキュアサーバーの設定に関する案内は、Red Hat Linux カスタマイズガイドの 中のApache HTTP セキュアサーバーの設定の章でお読み下さい。

注意注意
 

殆どの場合、SSLディレクティブはインストールされている状態で適切に 設定されています。設定ミスは、セキュリティの弱点の原因になる可能性が ありますのでApache HTTPセキュアサーバーディレクティブの変更には 充分に気を付けて下さい。