第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 OK15.1.4. httpd サービスの実行
httpd サービスの使用を有効にするには、まず httpd がインスト-ルされていることを確認します。これは以下のコマンドを実行することで達成できます:
~]# yum install httpd15.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 off15.1.4.3. サービスの再開始
httpd サービスを再開始するには異なる3つの方法があります:
- サービスを全面的に再開始するには、以下を入力します:
~]#
service httpd restartStopping 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 OK15.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>パラメータ は、-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/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内の指示文はどれも以前の設定構成を上書きする権限を持ちません。AuthConfigAuthName、AuthType、Requireなど権限付与の指示文の使用を可能にします。FileInfoDefaultType、RequestHeader、RewriteEngineなどや、更にはAction指示文など、ファイルタイプとメタデータ、及びmod_rewrite指示文の使用が可能になります。IndexesAddDescription、AddIcon。あるいはFancyIndexingなど、ディレクトリ指標指示文の使用が可能になります。LimitAllow、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=値ファイル名カラムの幅を指定します。値 は文字数か、または幅を自動的に調節するためのアスタリスク (即ち、 *) となります。ScanHTMLTitlesAddDescription指示文で提供されていない場合に、説明 (即ち、title要素) 用にファイルの構文解析を有効にします。ShowForbidden他の手段ではアクセス禁止のファイル一覧を有効にします。 SuppressColumnSortingカラムヘッダーのクリックによるティレクトリ一覧の再配列を無効にします。 SuppressDescriptionファイル説明用のスペース予約を無効にします。 SuppressHTMLPreambleHeaderName指示文で指定されているファイルが存在する時には、標準の HTML 前置きの使用を無効にします。SuppressIconディレクトリ一覧内のアイコンの使用を無効にします。 SuppressLastModifiedディレクトリ一覧の最後の修正欄の日付表示を無効にします。 SuppressRulesディレクトリ一覧の水平線の使用を無効にします。 SuppressSizeディレクトリ一覧のファイルサイズフィールドの表示を無効にします。 TrackModifiedHTTP ヘッダー内で 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つ以上の要求を受理します。 Offkeep-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 利用可能なサーバー機能
オプション 詳細 ExecCGICGI スクリプトの実行を有効にします。 FollowSymLinksディレクトリ内の次のシンボリックリンクを有効にします。 Includesサーバー側の include を有効にします。 IncludesNOEXECサーバー側の include を有効にしますが、コマンドの実行を許可しません。 Indexesサーバー生成のディレクトリ一覧を有効にします。 MultiViewsコンテンツ交渉済みの 「MultiViews」 を有効にします。 SymLinksIfOwnerMatchリンクと目的ファイルの両方が同一所有者を持つ場合にディレクトリ内の次のシンボリックリンクを有効にします。 AllMultiViews以外の上記の機能すべてを有効にします。None上記の機能すべてを無効にします。 例15.52 Options 指示文の使用
Options Indexes FollowSymLinks
-
Order Order指示文の使用により、AllowとDenyの指示文が評価される順序を指定できるようになります。以下の形式を取ります:Order オプション
オプション は、表15.14「利用可能な Order オプション」 で説明してあるように有効なキーワードでなければなりません。デフォルトのオプションはallow,denyです。表15.14 利用可能な Order オプション
オプション 詳細 allow,denyAllow指示文が最初に評価されます。deny,allowDeny指示文が最初に評価されます。例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 オプション
オプション 詳細 OnServerName指示文で指定された名前の使用を有効にします。OffServerName指示文で指定された名前の使用を無効にします。代わりに、要求元のクライアントで提供されたホスト名とポート番号が使用されます。DNSServerName指示文で指定された名前の使用を無効にします。代わりに、逆引き 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 数字
高い 数字 はサーバーのパフォーマンスを向上しますが、preforkMPM を使用している場合には、256を超過することは推奨できません。例15.71 MaxClients 指示文の使用
MaxClients 256
-
MaxRequestsPerChild MaxRequestsPerChild指示文の使用により、子プロセスが終了するまでに対応できる最大要求数を指定できるようになります。以下の形式を取ります:MaxRequestsPerChild 数字
数字 を0にセットすると、無制限の要求を受け付けることになります。MaxRequestsPerChild指示文は長期生存しているプロセスのメモリーリークを防止するために使用されます。例15.72 MaxRequestsPerChild 指示文の使用
MaxRequestsPerChild 4000
-
MaxSpareServers MaxSpareServers指示文の使用で、予備子プロセスの最大数を指定できるようになります。以下の形式を取ります:MaxSpareServers 数字
この指示文はpreforkMPM によってのみ使用されます。例15.73 MaxSpareServers 指示文の使用
MaxSpareServers 20
-
MaxSpareThreads MaxSpareThreads指示文の使用で、予備のサーバースレッドの最大数を指定できるようになります。以下の形式を取ります:MaxSpareThreads 数字
数字 は、MinSpareThreadsとThreadsPerChildの合計に等しいか、それ以上でなければなりません。この指示文は、workerMPM によってのみ使用されます。例15.74 MaxSpareThreads 指示文の使用
MaxSpareThreads 75
-
MinSpareServers MinSpareServers指示文の使用で、予備子プロセスの最小数を指定できるようになります。以下の形式を取ります:MinSpareServers 数字
高い 数字 は、サーバーに対して高負荷のプロセス処理を与えることに注意して下さい。この指示文はpreforkMPM によってのみ使用されます。例15.75 MinSpareServers 指示文の使用
MinSpareServers 5
-
MinSpareThreads MinSpareThreads指示文の使用により、予備のサーバースレッドの最低数を指定できるようになります。以下の形式を取ります:MinSpareThreads 数字
この指示文は、workerMPM によってのみ使用されます。例15.76 MinSpareThreads 指示文の使用
MinSpareThreads 75
-
StartServers StartServers指示文の使用により、サービスが開始した時点で作成する子プロセスの数を指定できるようになります。以下の形式を取ります:StartServers 数字
子プロセスは、現在のトラフィック状況に応じて動的に作成及び終結されるため、通常はこの値を変更する必要はありません。例15.77 StartServers 指示文の使用
StartServers 8
-
ThreadsPerChild ThreadsPerChild指示文の使用で、子プロセスが作成できるスレッドの数を指定できるようになります。以下の形式を取ります:ThreadsPerChild 数字
この指示文は、workerMPM によってのみ使用されます。例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-develapxs) ユーティリティが含まれています。
~]# apxs -i -a -c module_name.c15.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/ ディレクトリにそれぞれ移動します。それを達成するには以下のコマンドを入力します:
~]#mvkey_file.key/etc/pki/tls/private/hostname.key~]#mvcertificate.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.keygenkey コマンドの後に該当するホスト名 (例えば、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 genkeygenkeyの 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 のホームページです。

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.