第15章 Web サーバー
HTTP
(Hypertext Transfer Protocol ハイパーテキスト転送プロトコル) サーバー、または Web サーバー は、Web 上でクライアントにコンテンツを提供するネットワークサービスです。通常これは Web ページを意味しますが、他のドキュメントも同様に提供されます。
15.1. Apache HTTP サーバー
httpd
サービスの基本的な設定を説明すると共に、サーバーモジュールの追加、仮想ホストのセットアップ、及びセキュアなHTTP サーバーの設定を取り扱っています。
httpd
サービスの設定も同様に更新する必要があります。このセクションは、いくつかの新しい機能の追加を再確認して、重要な変更を概要し、旧来のファイルの更新についてガイドして行きます。
15.1.3. 設定の更新
- モジュールは変更されている可能性があるため、すべてのモジュール名が正しいことを確認して下さい。改名されたモジュールそれぞれについて
LoadModule
指示文を調節します。 - サードパーティのモジュールはロードを試行する前にすべて再コンパイルをします。これは一般的に認証と権限付与のモジュールに該当します。
- Apache HTTP セキュアサーバーを使用する場合は、
/etc/httpd/conf.d/ssl.conf
を編集して Secure Sockets Layer (SSL) プロトコルを有効にします。
~]# service httpd configtest
Syntax OK
15.1.4. httpd サービスの実行
httpd
サービスの使用を有効にするには、まず httpd がインスト-ルされていることを確認します。これは以下のコマンドを実行することで達成できます:
~]# yum install httpd
15.1.4.1. サービスの開始
httpd
サービスを実行するには、シェルプロンプトで以下を入力します:
~]# service httpd start
Starting httpd: [ OK ]
~]# chkconfig httpd on
注記
15.1.4.2. サービスの停止
httpd
サービスを停止するには、シェルプロンプトで以下を入力します:
~]# service httpd stop
Stopping httpd: [ OK ]
~]# chkconfig httpd off
15.1.4.3. サービスの再開始
httpd
サービスを再開始するには異なる3つの方法があります:
- サービスを全面的に再開始するには、以下を入力します:
~]#
service httpd restart
Stopping httpd: [ OK ] Starting httpd: [ OK ]このコマンドは先ず、実行中のhttpd
サービスを停止して、それからそれを再開始します。PHP などの動的にロードしたモジュールのインスト-ル後や削除後にこのコマンドを使用します。 - 設定を再ロードするだけの場合は、以下を入力します:
~]#
service httpd reload
このコマンドは実行中のhttpd
サービスが設定ファイルを再ロードするようにします。注意すべき点は、現在プロセス中の要求はいずれも割り込みされることになり、クライアントのブラウザーがエラーメッセージを表示したり、ページの一部のみを描写する可能性があることです。 - アクティブな要求に影響なく、設定ファイルを再ロードするには、以下を入力します:
~]#
service httpd graceful
これにより、実行中のhttpd
サービスは設定ファイルを再ロードするようになります。この場合は、現在プロセス中の要求はいずれも古い設定を使用することになります。
15.1.4.4. サービスステータスの確認
~]# service httpd status
httpd (pid 19014) is running...
15.1.5. 設定ファイルの編集
httpd
サービスは開始後にデフォルトで、表15.1「httpd サービスの設定ファイル」 に一覧表示してある場所から設定を読み込みます。
表15.1 httpd サービスの設定ファイル
httpd
サービスの再開始方法の詳細については 「サービスの再開始」 を参照して下さい。
~]# service httpd configtest
Syntax OK
15.1.5.1. 一般的な httpd.conf の指示文
/etc/httpd/conf/httpd.conf
設定ファイルで使用されています:
-
<;Directory>
<;Directory>
指示文により、特定のディレクトリのみに特定の指示文を適用できるようになります。以下の形式を取ります:<Directory ディレクトリ> 指示文 … </Directory>
ディレクトリ はローカルファイルシステムの既存ディレクトリまでの完全パスか、またはワイルドカード表現になります。この指示文は、ScriptAlias
で指定されているディレクトリの外部にあるサーバー側の為の追加のcgi-bin
ディレクトリを設定するのに使用されます。このケースでは、ExecCGI
とAddHandler
の指示文を供給する必要があり、そして目的地のディレクトリは正しくセットされていなければなりません (即ち、0755
)。例15.1 <Directory> 指示文の使用
<Directory /var/www/html> Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory>
-
<IfDefine>
IfDefine
指示文により、特定のパラメータがコマンドラインで示された時にのみ一定の指示文を使用できるようになります。以下の形式を取ります:<IfDefine [!]パラメータ> 指示文 … </IfDefine>
パラメータ は、-D
parameter コマンドラインオプションを使用して、シェルプロンプトで表示できます (例えば、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/html
、image/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-compress
やx-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/html
やimage/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
AuthName
、AuthType
、Require
など権限付与の指示文の使用を可能にします。FileInfo
DefaultType
、RequestHeader
、RewriteEngine
などや、更にはAction
指示文など、ファイルタイプとメタデータ、及びmod_rewrite
指示文の使用が可能になります。Indexes
AddDescription
、AddIcon
。あるいはFancyIndexing
など、ディレクトリ指標指示文の使用が可能になります。Limit
Allow
、Deny
、及び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「利用可能なキャッシュタイプ」 で説明してあるように、有効なキャッシュタイプでなければなりません。url はDocumentRoot
指示文で指定されたディレクトリに相対的なパス (例えば、/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/html
、image/png
、application/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.html
とindex.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-8
、FancyIndexing
、HTMLTable
、NameWidth=*
、及びVersionSort
があります。表15.9 利用可能なディレクトリ一覧のオプション
オプション 詳細 Charset
=エンコーディング生成されたウェブページの文字セットを指定します。エンコーディング は、 UTF-8
やISO-8859-2
などの有効な文字セットでなければなりません。Type
=コンテンツタイプ生成されたウェブページのメディアタイプを指定します。コンテンツタイプ は text/html
やtext/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-Modified
とETag
の値の戻りを有効にします。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 言語…
言語 は、cs
、en
、fr
などの有効な 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 接続以外でのみ機能します。セキュアなサーバーで仮想ホストを使用する場合は、その代わりとして 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
指示文の使用により、Allow
とDeny
の指示文が評価される順序を指定できるようになります。以下の形式を取ります: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>
内では、SuexecUserGroup
がUser
とGroup
の指示文の入れ替わりになることに注意して下さい。例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 指示文
/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 指示文
IfModule
に組み込まれています。デフォルトでは、サーバープールは prefork
と worker
の両方の 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 数字
数字 は、MinSpareThreads
とThreadsPerChild
の合計に等しいか、それ以上でなければなりません。この指示文は、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. モジュールのロード
LoadModule
指示文を使用します。個別のパッケージで提供されるモジュールでは多くの場合、それ自身の設定ファイルが /etc/httpd/conf.d/
ディレクトリに配置してあることに注意して下さい。
例15.79 mod_ssl DSO のロード
LoadModule ssl_module modules/mod_ssl.so
httpd
サービスの再開始の方法については 「サービスの再開始」 を参照して下さい。
15.1.6.2. モジュールの書き込み
~]# yum install httpd-devel
apxs
) ユーティリティが含まれています。
~]# apxs -i -a -c module_name.c
15.1.7. 仮想ホストのセットアップ
/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>
コンテナは高度にカスタマイズ可能で、主なサーバー設定内で利用できるほとんどの指示文を受け付けます。このコンテナ内でサポートされていない指示文の中に、User
と Group
があり、これらは SuexecUserGroup
に入れ替わっています。
注記
/etc/httpd/conf/httpd.conf
ファイルのグローバル設定で Listen
指示文を適切に更新することを忘れないで下さい。
httpd
サービスを再開始する方法の説明については「サービスの再開始」 を参照して下さい。
15.1.8. SSL サーバーのセットアップ
mod_ssl
と一緒に組み合わせて、一般的に SSL サーバーと呼ばれます。
mod_ssl
を使用すると、発信されたコンテンツの検査や修正を阻止できます。このセクションでは、Apache HTTP サーバー設定内でこのモジュールを有効にする方法について基本情報を提供し、プライベートキーと自己署名の証明書の生成プロセスをガイドしていきます。
15.1.8.1. 証明書とセキュリティの概要
表15.22 最も一般的なウェブブラウザー用の CA 一覧
ウェブブラウザー | リンク |
---|---|
Mozilla Firefox | Mozilla root CA 一覧. |
Opera | The Opera Rootstore. |
Internet Explorer | Windows ルート証明書プログラムのメンバー. |
15.1.8.2. mod_ssl モジュールを有効にする
mod_ssl
モジュール) とopenssl ( OpenSSL ツールキット) のパッケージがインスト-ルされていることを確認して下さい。インスト-ルするには、シェルプロンプトで以下を入力します:
~]# yum install mod_ssl openssl
/etc/httpd/conf.d/ssl.conf
に mod_ssl
設定ファイルが作成されます。このモジュールをロードするには、「サービスの再開始」 で説明してあるように、httpd
サービスを再開始します。
15.1.8.3. 既存のキーと証明書の使用
- IP アドレス、またはドメイン名を変更しようとしているケース。証明書は特定の IP アドレスとドメイン名のペアに発行されるものです。これらの値の1つが変更になると証明書は無効になります。
- 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. 新しいキーと証明書の生成
~]# yum install crypto-utils
重要
~]# openssl req -x509 -new -set_serial number -key hostname.key -out hostname.crt
注記
~]# rm /etc/pki/tls/private/hostname.key
genkey
コマンドの後に該当するホスト名 (例えば、penguin.example.com
) を付けて使用します:
~]# genkey
hostname
- キーと証明書の保存先となる目的地を確認する。
図15.1 genkey ユーティリティの実行
Tab キーを使用して ボタンを選択してから、Enter キーを押すと次の画面を進みます。 - Up と down の矢印キーを使用して、適切なキーサイズを選択します。大きなキーはセキュリティを増強しますが、サーバーの反応時間も増加することに注意して下さい。このため、推奨できるオプションは、
1024 bits
です。図15.2 キーサイズの選択
終了したら、Tab キーを使用して ボタンを選択して Enter キーを押すと、ランダムなビットの生成プロセスが開始します。選択したキーサイズに応じてこれには少々時間がかかります。 - 証明書要求を認証局に送信するかどうかを決定します。
図15.3 証明書要求の生成
Tab キーを使用して を選択し、証明書要求を組み立てるか、または を選択して、自己署名の証明書を生成します。その後に、Enter を押して選択を確定します。 - Spacebar (スペースバー) キーを使用すると、プライベートキーの暗号化を有効にする (
[*]
) か、無効にする ([ ]
) 選択ができます。図15.4 プライベートキーの暗号化
Tab キーを使用して ボタンを選択してから、Enter キーを押すと次の画面を進みます。 - プライベートキーの暗号化を有効にしている場合は、適切なパスフレーズを入力します。セキュリティの理由で、入力時には文字が表示されませんが、最低でも5文字の長さが必要です。
図15.5 パスフレーズの入力
Tab キーを使用して ボタンを選択してから、Enter キーを押すと次の画面を進みます。重要
サーバーを開始するには正しいパスフレーズの入力が必要です。それを紛失したり忘れたりした場合は、新しいキーと証明書を生成しなければなりません。 - 証明書詳細のカスタマイズ
図15.6 証明書情報の指定
Tab キーを使用して ボタンを選択します。それから Enter を押すとキー生成ができます。 - 以前に証明書要求の生成を有効にしていた場合は、それを認証局に送信するように催促されます。
図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. その他のリソース
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 のホームページです。
このページには機械翻訳が使用されている場合があります (詳細はこちら)。