[an error occurred while processing this directive]
[APACHE DOCUMENTATION]

Apache HTTP Server Version 1.3

Apache 中核機能

これら設定パラメータはApacheの中核となる機能で、いつでも利用することが出来ます。

命令


AccessConfig命令

Syntax: AccessConfig filename
Default: AccessConfig conf/access.conf
Context: server config, virtual host
Status: core

サーバはResourceConfigファイルを実行してからこの命令を実行します。
FilenameServerRootの相対パスとなります。 この特徴は以下の様に設定すると無効に出来ることです:

AccessConfig /dev/null
これまではこのファイルは<Directory>セクションにだけで設定されています;実際にこのファイルは現在server configで許可されたいくつかのサーバの設定含むことが出来ます。


AccessFileName命令

Syntax: AccessFileName filename filename ...
Default: AccessFileName .htaccess
Context: server config, virtual host
Status: core
Compatibility: AccessFileName can accept more than one filename only in Apache 1.3 and later

サーバがクライアントにドキュメントを表示させるとき、もしアクセスコントロールファイルがそのディレクトリに対してアクセスすることを可能にしているならば、サーバはドキュメントに指定されたディレクトリパスにこの名前でアクセスコントロールファイル(.htaccess)を探します。 例:

AccessFileName .acl
サーバは/usr/local/web/index.html,を表示させる前に、もし以下の様な記述がなければ、/.acl、 /usr/.acl、 /usr/local/.acl、 /usr/local/web/.aclを実行します。
<Directory />
AllowOverride None
</Directory>


AddModule命令

Syntax: AddModule module module ...
Context: server config
Status: core
Compatibility: AddModule is only available in Apache 1.2 and later

サーバは普段使用していないコンパイルされたモジュールを使用することが可能です。この命令はそれらのモジュールを使用可能にするために使用されます。サーバはあらかじめロードされた実行可能なモジュールのリストを実行します。このリストはClearModuleList命令によって消去されます。


AllowOverride命令

Syntax: AllowOverride override override ...
Default: AllowOverride All
Context: directory
Status: core

サーバが.htaccessファイル(AccessFileNameによって指定されたファイル)を見つけると、サーバはより早くアクセス情報を上書き出来るファイルに設定された命令を知ろうとします。

OverrideはNoneに設定することが出来ます。それはサーバがそのファイル(.htaccess)を実行しないように設定する場合と、サーバが全ての命令を許す場合とあるいは次の様な場合です:

AuthConfig
認証命令の使用を許可します (AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName, AuthType, AuthUserFile, require, etc.).
FileInfo
ドキュメントタイプをコントロールする命令の使用を許可します (AddEncoding, AddLanguage, AddType, DefaultType, ErrorDocument, LanguagePriority, etc.).
Indexes
ディレクトリインデクスをコントロールする命令の使用を許可します (AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName, etc.).
Limit
ホストへのアクセスをコントロールする命令の使用を許可します (allow, deny and order).
Options
特定のディレクトリの設定をコントロールする命令の使用を許可します (Options and XBitHack).


AuthName命令

Syntax: AuthName auth-domain
Context: directory, .htaccess
Override: AuthConfig
Status: core

この命令はディレクトリに対する認証の範囲の名前を設定します。この認証が与えられるユーザは許可されるユーザーネームとパスワードを知っているクライアントに対して与えられます。実行するためには、AuthTyperequire の命令、AuthUserFileAuthGroupFile のような命令を伴わなければなりません。


AuthType命令

Syntax: AuthType type
Context: directory, .htaccess
Override: AuthConfig
Status: core

この命令はあるディレクトリに対する認証機構の種別を選択します。Basic だけが今のところ実行することが出来ます。実行するためには、AuthNamerequire の命令、AuthUserFileAuthGroupFile のような 命令が伴わなければなりません。


BindAddress命令

Syntax: BindAddress saddr
Default: BindAddress *
Context: server config
Status: core

UNIX の http サーバは、接続のためにサーバマシンの全ての IP アドレスか、またはサーバマシンの唯一のIPアドレスのどちらかを読み込むことができます。saddr は以下の通りです。

  • *
  • An IP address
  • A fully-qualified Internet domain name
  • 値が * のとき、サーバはあらゆる IP アドレスにコネクションするでしょう。その他のときは特定の IP アドレスを読み込みます。

    たった一つのBindAddress命令が使われます。Apacheが聞いてくるアドレスとポートのより多くの制御のためには、BindAddressの代わりにListen命令を使います。

    BindAddress<VirtualHost>セクションを使う代わりに、様々な独立サーバを使うvirtual hostsをサポートする、二つのうちの一つの方法として使われます。

    参照: DNS Issues
    参照: Setting which addresses and ports Apache uses


    ClearModuleList命令

    Syntax: ClearModuleList
    Context: server config
    Status: core
    Compatibility:ClearModuleListはApache 1.2以降から使用可能です

    サーバは既に組み込まれた実行可能なモジュールを実行します。この命令はそのリストをクリアします。AddModule命令によってそのリストが実行されていることが前提です。


    ContentDigest directive

    Syntax: ContentDigest on|off
    Default: ContentDigest off
    Context: server config, virtual host, directory, .htaccess
    Override: AuthConfig
    Status: experimental

    Compatibility: ContentDigest is only available in Apache 1.1 and later

    この命令はRFC1864でそれぞれ定義されたRFC2068としてContent-MD5ヘッダの生成を可能にします。

    MD5は任意の長さのデータである"message digest" (しばしば"fingerprint"と呼ばれる)の計算についてのアルゴリズムで、メッセージダイジェストでの変更を反映するデータの変更は極秘です。

    Content-MD5ヘッダは実体のend-to-endメッセージ完全チェック(MIC)を供給します。プロキシーかクライアントは転送中の実体の偶発的な変形を検出するためにこのヘッダをチェックするかもしれません。 Example header:

       Content-MD5: AuLb7Dp1rqtRtxz2m9kRpA==

    これはメッセージダイジェストがあらゆる要求について計算されるので、サーバにパフォーマンスの問題を引き起こします(値はキャッシュされません)。

    Content-MD5はコアによって受け取られたドキュメントについてのみ送信されるもので、モジュールによるものではありません。例えば、CGIスクリプトからの出力であるSSI ドキュメントとバイト幅のレスポンスはこのヘッダを持っていません。


    CoreDumpDirectory directive

    Syntax: CoreDumpDirectory directory
    Default: the same location as ServerRoot
    Context: server config
    Status: core

    これはコアをダンピングする前にApacheがスィッチを試みるディレクトリを制御します。デフォルトはServerRootディレクトリにありますが、サーバの作動によってユーザによる書き換えをするべきではないので、コアのダンプは普通書かれません。もしデバッグのためにコアのダンプを望むのなら、異なったロケーションにそれを置くためにこの命令を使うことができます。


    DefaultType命令

    Syntax: DefaultType mime-type
    Default: DefaultType text/html
    Context: server config, virtual host, directory, .htaccess
    Override: FileInfo
    Status: core

    MIMEタイプで定義されていないタイプのドキュメントを提供することをサーバが求められるときがあります。

    サーバはタイプがわからない場合に、DefaultTypeを使ってそのドキュメントのcontent-typeをクライアントに知らせなければなりません。例えば:

    DefaultType image/gif
    これは .gif の拡張子がないgifイメージのファイルを含んだディレクトリに適用されます。


    <Directory> 命令

    Syntax: <Directory directory> ... </Directory>
    Context: server config, virtual host
    Status: Core.

    <Directory> と </Directory> はそのディレクトリで指定されたディレクトリとサブディレクトリに対してのみ適用される命令のグループ化ために使用されます。そのディレクトリ内では許可された命令のみが使用可能となります。Directoryは相対パスか、またはワイルドカードのどちらかです。ワイルドカードの中で「?」はある一文字に一致し、「*」はある連続した文字列に一致します。Apache 1.3のように、シェルの中に`[]'のようなカッコを使うことができます。また、Apache 1.3のような`/'と一致するようなワイルドカードがなくても、Unixシェルの動きにより似てきます。例:

       <Directory /usr/local/httpd/htdocs>
       Options Indexes FollowSymLinks
       </Directory>
    

    Apache 1.2かそれ以上: 拡張した正規表現は「~」文字もまた使用することが出来ます。 例えば:

       <Directory ~ "^/www/.*/[0-9]{3}">
    
    上記は/www/にある3つの数字から成るディレクトリ名に一致します。

    もし複数のディレクトリがドキュメントを含んだそのディレクトリ(またはその親ディレクトリ)に一致するときは、点在する.htaccessファイルからの命令で、いちばん最初の最も短い命令に対して適用されます。例えば

    <Directory />
    AllowOverride None
    </Directory>

    <Directory /home/*>
    AllowOverride FileInfo
    </Directory>
    /home/web/dir/doc.html へアクセスするための設定は:
  • AllowOverride None 命令を適用する。 (.htaccess は使用不可).
  • /home/webAllowOverride FileInfo 命令を適用する。
  • /home/web/.htaccess で、なんらかのFileInfo命令を適用する。
  • ディレクトリセクションの通常表記はApache1.2と1.3によりわずかに違ってハンドルされます。Apache1.2では標準的なディレクトリセクションに分散され、コンフィギュレーションファイルに現れた順に割り当てられます。それらは一度だけ割り当てられて、最も短い一致が起こると、割り当てます。Apache1.3では通常表記が全ての標準セクションの割り当てが終わるまで判断されません。それから全ての通常表記はコンフィギュレーションファイルに現れた順にテストされます。例えば

    <Directory ~ abc$>
    ... directives here ...
    </Directory>
    アクセスされたファイル名が/home/abc/public_html/abc/index.htmlであると仮定してみると、サーバは//home/home/abc/home/abc/public_html/home/abc/public_html/abcの順にそれぞれ判断します。Apache1.2では、/home/abcが判断されて、通常表記が一致して割り当てられます。Apache1.3では通常表記はツリーでのそのポイントを全く判断しません。全ての標準<Directory>sと.htaccessファイルが割り当てられるまで判断しません。それから通常表記は/home/abc/public_html/abcに一致して、割り当てられます。

    <Directory />についてのデフォルトのApacheのアクセスはAllow from Allであることに注意してください。これはApacheがURLからマップされたなんらかのファイルを受け取ることを意味しています。

     <Directory />
         Order Deny,Allow
         Deny from All
     </Directory>
    

    のようなブロックについてこれを変更することを推奨しており、アクセスを可能にしたいディレクトリにこれを上書きします。詳細についてはSecurity Tipsを参照してください。

    一般的にディレクトリセクションはaccess.confファイルに生じますが、なにかのコンフィギュレーションファイルに現れるかもしれません。<Directory> 命令はネストすることができず、<Limit>セクションに現れることができません。

    参照:リクエストが受け取られる時、これらの異なったセクションがどのように結合しているのかは How Directory, Location and Files sections workを参照してください。


    <DirectoryMatch>

    Syntax: <DirectoryMatch regex> ... </DirectoryMatch>
    Context: server config, virtual host
    Status: Core.
    Compatibility: Available in Apache 1.3 and later

    <DirectoryMatch> と </DirectoryMatch> は名前が付けられたディレクトリとそのサブディレクトリに対してのみ割り当てる命令のグループを同封するために使われ、<Directory>としては同じものです。しかしながら、引数としては通常表記を取ります。例えば:

       <DirectoryMatch "^/www/.*/[0-9]{3}">
    

    三つの数から構成されている/www/にあるディレクトリと一致します。

    参照: 通常表記が通常の<Directory>sでどのように入り混じっているのかについての記述は<Directory>を参照してください。
    参照:リクエストが受け取られる時、これらの異なったセクションがどのように結合しているのかは How Directory, Location and Files sections workを参照してください。


    DocumentRoot命令

    Syntax: DocumentRoot directory-filename
    Default: DocumentRoot /usr/local/apache/htdocs
    Context: server config, virtual host
    Status: core

    この命令は、httpd がファイルを提供するディレクトリを設定します。もし Aliasの命令によって一致しなければ、サーバまでのパスを設定するために、要求されたURLからドキュメントルートへのパスを付加します。例えば:

    DocumentRoot /usr/web
    このときhttp://www.my.host.com/index.htmlへのアクセスが/usr/web/index.htmlへのアクセスを示しています。

    DocumentRootがスラッシュで終わっているとき(すなわち "DocumentRoot /usr/web/")、 mod_dirに問題を引き起こすバグが存在します。ですからそれを避けて下さい。


    ErrorDocument命令

    Syntax: ErrorDocument error-code document
    Context: server config, virtual host, directory, .htaccess
    Status: core
    Override: FileInfo
    Compatibility:ディレクトリと.htaccessではApache 1.1以降で使用可能

    トラブルやエラーが発生したとき、Apache は四つの内の一つを実行するように設定することが可能です。

    1. ハードコードされたエラーメッセージを出力します
    2. カスタマイズされたメッセージを出力します。
    3. problem/error を処理するために、内部のURLに対して再実行します。
    4. problem/error を処理するために、外部のURLに対して再実行します。

    2-4は HTTP のレスポンスコード、メッセージかあるいはURLに従ってErrordocument を使って構成されます。

    このcontextのMessagesはシングルクォート(")で始まり、メッセージ自体の部分を構成していません。Apache は時々problem/errorの点で付加的な情報を提供します。

    URLは内部URLに対してスラッシュ(/)で始まるか、クライアントが決定できるフルの URLで始まります。例:

    ErrorDocument 500 http://foo.example.com/cgi-bin/tester
    ErrorDocument 404 /cgi-bin/bad_urls.pl
    ErrorDocument 401 /subscription_info.html
    ErrorDocument 403 "Sorry can't allow you access today

    たとえドキュメントが最後には同じサーバ上にあったとしても、リモートのURL(すなわちその前にある"http"のような方法のもの)に対してポイントするErrorDocumentを特定すると、Apacheはドキュメントがどこにあるのかを教えるために、クライアントにリダイレクトを送信することに注意してください。 これはいくつかの密接な関係があり、"ErrorDocument 401"命令を使っていればローカルドキュメントに関係しているであろうことは最も重要なことです。これは本来のHTTPの基本的な認証のしくみからもたらされます。

    参照: documentation of customizable responses.


    ErrorLog命令

    Syntax: ErrorLog filename
    Default: ErrorLog logs/error_log
    Context: server config, virtual host
    Status: core

    エラーログ命令は、サーバに発生したエラーを記録するファイル名を設定します。 もしファイル名がスラッシュ(/)で始まっていなければ、ServerRoot に対して相対パスにあると仮定されます。 例:

    ErrorLog /dev/null
    これは事実上、エラーの記録を中止します。

    セキュリティ: もしログファイルがストアされているディレクトリが、サーバを起動しているユーザ以外の誰かによって書き込みが可能なら、なぜセキュリティが容易に破られるのかについての詳細なドキュメントsecurity tipsを参照してください。


    <Files> 命令

    Syntax: <Files filename> ... </Files>
    Context: server config, virtual host, .htaccess
    Status: core
    Compatibility: only available in Apache 1.2 and above.

    <Files>命令は、ファイルネームによるアクセスコントロールを設定します。<Directory>命令や、<Location>命令に匹敵します。</Files>命令と対応させます。与えられたファイルネームに対して適用される命令は内部でリストになっています。 </Files>セクションは<Directory>セクションと .htaccessファイルが読み込まれた後、<Location>セクションの前にコンフィグレーションファイルに存在する命令を処理します。

    filenameはあるファイルネームまたは、ワイルドカードを含みます。「?」はある一文字に一致し、「*」はある連続した文字列に一致します。通常の表記よりも拡張された正規表現もまた「~」文字を付加して使用する事が出来ます。例えば:

       <Files ~ "\.(gif|jpe?g|png)$">
    
    最も一般的なインターネットのグラフィックのフォーマットに一致するでしょう。しかしApache 1.3 とそれ以降では、<FilesMatch> が好ましいです。

    .htaccessファイルの内部で使われる<Directory>セクションは、<Location>セクションと<Files>セクションとは違うことに注意してください。これはユーザーにファイルごとのレベルで彼ら自身のファイルへのアクセスをコントロールすることを許可します。.htaccess ファイル内で使われる時に、もしfilenameがスラッシュ(/)で始まっていなければ、適用されるディレクトリは自動的にルートへ置かれます。

    参照:リクエストが受け取られる時、これらの異なったセクションがどのように結合しているのかは How Directory, Location and Files sections workを参照してください。


    <FilesMatch>

    Syntax: <FilesMatch regex> ... </Files>
    Context: server config, virtual host, .htaccess
    Status: core
    Compatibility: only available in Apache 1.3 and above.

    ちょうど<Files>命令が行うように、<FilesMatch>命令はファイル名によるアクセスコントロールを提供します。例えば:

       <FilesMatch "\.(gif|jpe?g|png)$">
    

    最も一般的なインターネットのグラフィックフォーマットと一致します。

    参照:リクエストが受け取られる時、これらの異なったセクションがどのように結合しているのかは How Directory, Location and Files sections workを参照してください。

    Group命令

    Syntax: Group unix-group
    Default: Group #-1
    Context: server config, virtual host
    Status: core

    Group命令は、サーバがコマンドに答えるグループを設定します。この命令を使用するためにはスタンドアローンサーバがルートとして初期に作動していなければなりません。 Unix-groupは以下の内の一つです:

    A group name
    名前によって与えられたグループを指す
    # followed by a group number.
    その番号によるグループを指す

    作動しているサーバに特別に新しいグループをセットアップすることを推奨します。管理者はユーザーを使いませんが、これが常に可能で、望ましいわけではありません。 注意:もしルートでないユーザーとしてサーバを立ち上げたのなら、指定したものに変更するのを失敗するか、代わりにオリジナルユーザーのグループとして実行し続けることになります。

    特記:<VirtualHost>にあるこの命令の使用は、適切に configure されたSUEXEC wrapperを必要とします。この方法でCGIsが作動するにつれて<VirtualHost>内部で使われるグループだけは、影響されます。Non-CGI要求はまだメインのグループ命令で特定されるグループとして処理されます。

    SECURITY:セキュリティーについては User を参照して下さい。


    HostNameLookups directive

    Syntax: HostNameLookups on | off | double
    Default: HostNameLookups off
    Context: server config, virtual host, directory, .htaccess
    Status: core
    Compatibility: double available only in Apache 1.3 and above.
    Compatibility: Default was on prior to Apache 1.3.

    ホスト名はログされるのでこの命令はDNSルックアップを可能にします(そしてREMOTE_HOSTにあるCGIs/SSIsにパスされます)。double値は二重逆引き DNSを行うことと関係しています。これは逆引きルックアップが行われた後に、 正引きルックアップが結果として行われることです。少なくとも、正引きルックアップにあるipアドレスはオリジナルのアドレスと一致しなければなりません。 ("tcpwrappers"の専門用語でこれはPARANOIDと呼ばれます)

    設定とは関係なく、ホスト名によるアクセスをコントロールするためにmod_accessが使われると、二重逆引きルックアップが作動するでしょう。これはセキュリティにとって必要なことです。この二重逆引きの結果は、HostnameLookups doubleを設定しなければ、一般的には役に立ちません。例えば、もしHostnameLookups onとリクエストだけがホスト名制限によってプロテクトされているものになるなら、二重逆引きが失敗かそうでないかに関わらず、CGIsはまだREMOTE_HOSTに一重逆引きをパスされるでしょう。

    この命令のデフォルトは1.3へのApacheの以前のバージョンではonでした。逆引きルックアップがおこなわれることを本当には必要としない、これらのサイトのネットワークトラフィックを保存する目的でoffに変更されました。ルックアップが引き起こす損害を受けないので、エンドユーザにとっては良いことです。重いロードサイトがこの命令をoffにしておくべきなのは、DNSルックアップに相当な時間がかかるからです。/supportディレクトリで与えられたlogresolveユーティリティは、オフラインでログされたIPアドレスからホスト名をルックアップするために使われます。


    IdentityCheck命令

    Syntax: IdentityCheck boolean
    Default: IdentityCheck off
    Context: server config, virtual host, directory, .htaccess
    Status: core

    この命令はそれぞれのコネクションに対してリモートユーザネームのRFC931-compliantログを可能にします。そのクライアントマシーンはinetdで起動するか、または何か類似したもので起動します。この情報はaccess logに記録されます。Booleanはonかoffのどちらかです。

    その情報は基本的なトラッキングの使用以外には、信頼するべきではありません。

    あらゆるリクエストは、これらのルックアップの一つを必要としているので、これはサーバにアクセスする深刻な問題を引き起こすことに注意してください。ファイアウォールが複雑になると、それぞれのルックアップは恐らく失敗し、それぞれのヒットに潜在性の30秒を加えます。それで一般的にこれは、インターネットからパブリックサーバでのアクセスをしにくくします。


    <IfModule> 命令

    Syntax: <IfModule [!]module-name> ... </IfModule>
    Default: None
    Context: all
    Status: Core
    Compatibility: IfModule is only available in 1.2 and later.

    <IfModule test>...</IfModule>セクションは条件を表す命令を示すために使用されます。IfModuleセクション内部の命令は、もしtestが本当なら、処理だけが行われます。もしテストが間違っていれば、スタートとエンドマーカーの間にある全ては無視されます。

    <IfModule>セクションの命令のtestは二つの形式のうちの一つが使用可能です:

    前者の場合、もしmodule nameと名付けられたモジュールがApacheでコンパイルされると、スタートとエンドマークの間の命令は処理だけが行われます。もしmodule nameがコンパイルされないと、二番目の場合、テストを逆にして、命令の処理だけを行ないます。

    module nameのargumentはモジュールのファイルネームによって与えられたモジュールネームであり、その時にコンパイルされていました。例えば、mod_rewrite.c.

    <IfModule>セクションは nest-ableで、単に multiple-module テストの手段として使われます。


    Include directive

    Syntax: (Apache 1.2) Include filename
    Context: server config
    Status: Core
    Compatibility: Include is only available in Apache 1.3 and later.

    この命令はサーバのコンフィギュレーションファイル内部から、他のコンフィギュレーションファイルの読み込みを許可します。


    KeepAlive命令

    Syntax: (Apache 1.1) KeepAlive max-requests
    Default: (Apache 1.1) KeepAlive 5
    Syntax: (Apache 1.2) KeepAlive on/off
    Default: (Apache 1.2) KeepAlive On
    Context: server config
    Status: Core
    Compatibility: KeepAliveはApache 1.1以上で使用可能

    この命令はKeep-Aliveサポートを可能にします。

    Apache 1.1: リクエストごとに許可する、あなたがApacheに要求するリクエストの最大数をmax-requestsに設定してください。限界値はクライアントがあなたのサーバリソースを一人占めしようとするのを防ぎます。サポートを無効にするにはこれを0に設定してください。

    Apache 1.2 and later: "On"は持続的な接続を可能にし、"Off"で不可能にします。MaxKeepAliveRequests命令を参照してください。


    KeepAliveTimeout命令

    Syntax: KeepAliveTimeout seconds
    Default: KeepAliveTimeout 15
    Context: server config
    Status: Core
    Compatibility:KeepAliveTimeoutはApache 1.1以降から使用可能

    そのコネクションを終了する前に、Apacheが次のリクエストを待つ秒数です。一度コマンドを受け取ると、Timeout命令が適用されることにより、タイムアウトの値が指定されます


    <Limit> 命令

    Syntax: <Limit method method ... > ... </Limit>
    Context: any
    Status: core

    <Limit>と</Limit>はアクセスをコントロールする命令をグループ化するために使用されます。そしてそれはmethodが有効なHTTPの方法である特定のアクセス方法にのみ適用されます。 命令のいくつかは<Limit>や、 <Directory>を除いたいくつかの命令を使用することが可能です。ほとんどはによって影響を受けません。例えば:

    <Limit GET POST>
    require valid-user
    </Limit>
    もしアクセスをコントロールする命令が<Limit>命令の外部に存在するなら、全てのアクセス方法に対して適用されます。リストされている方法名は一つかそれ以上で、GET、POST、PUT、DELETE、CONNECT、OPTIONSです。もしGETが使われれば、HEAD要求を制限するでしょう。 もしすべての方法を制限することを望むなら、<Limit>命令を全く含んではいけません。


    Listen命令

    Syntax: Listen [IP address:]port number
    Context: server config
    Status: core
    Compatibility: ListenはApache1.1以上で使用可能

    Listen命令は、一つ以上の IP アドレスやポートを認識するように Apache に指示します。デフォルトでは全てのIPインターフェイスのリクエストに応答しますが、Port命令によって与えられたポートのみに応答します。

    ListenBindAddressPortの代わりに使われます。特定のポートか、address-and-portの組み合わせのリクエストの到着を受け入れることをサーバに伝えます。もしポート番号だけで最初のフォーマットが使われていれば、サーバはPort命令によって与えられたポートの代わりに、全てのインターフェイスで与えられたポートに聞きます。もしIPアドレスがポートと同じように与えられれば、サーバは与えられたポートとインターフェイスに聞くでしょう。

    サーバに対するポイントがまだ作動することをApacheが生じるURLsであるので、まだPort命令を必要とするかもしれないことに注意してください。

    多様なListen命令が、アドレス番号と聞いてくるポートを特定するために使われるかもしれません。サーバはリスト表示されたアドレスとポートからリクエストに反応します。

    例えば、port80とport 8000でサーバ認証接続を作るために:

       Listen 80
       Listen 8000
    
    二つの特定されたインターフェイスとポート番号でのサーバ認証接続をつくるために
       Listen 192.170.2.1:80
       Listen 192.170.2.5:8000
    

    参考: DNS Issues
    See Also: Setting which addresses and ports Apache uses
    See Also: Known Bugs


    ListenBacklog directive

    Syntax: ListenBacklog backlog
    Default: ListenBacklog 511
    Context: server config
    Status: Core
    Compatibility: ListenBacklog is only available in Apache versions after 1.2.0.

    ペンディングしている接続の行列の最大長です。普通はチューニングは必要でないし、要求されていませんが、システムのいくつかではTCP下でSYNが殺到しているときにこれを増やすことが望ましいです。listen(2)システムコールに対するバックログパラメータを見てください。


    <Location> 命令

    Syntax: <Location URL> ... </Location>
    Context: server config, virtual host
    Status: core
    Compatibility: LocationはApache 1.1以降で使用可能

    <Location>命令は、URL によるアクセス制御をします。それは<Directory>命令と同等で、</Location>に対応しています。与えられた URL に適用される命令は、内部で読み込まれます。<Location>セクションは<Directory>セクションと.htaccessファイルが読まれた後にコンフィグレーションファイルに存在するその他で処理されます。

    HTTP 機能の方法の結果として、URL prefixは proxy からのリクエストを保存し、/path/形式になるはずですが、http://servername は含みません。ディレクトリ(個人ファイルやファイル数)を保護する必要はなく、ワイルドカードを含むことができます。ワイルドカードは"?"が一文字、"*"が一 続きの数文字を表しています。

    Apache 1.2 and above: 拡張通常表記は~文字を追加して使われます。例えば:

       <Location ~ "/(extra|special)/data">
    

    "/extra/data"か"/special/data"のサブストリングを含むURLsと一致します。しかしながら、Apache 1.3とそれ以上では<LocationMatch>の使用が好ましいです。

    Location 機能は特に SetHandler命令とセットで使うと有効す。例えば、statusの命令を可能にし、foo.com のブラウザからの命令のみを許可するためには以下のように記述してください:

        <Location /status>
        SetHandler server-status
        order deny,allow
        deny from all
        allow from .foo.com
        </Location>
    

    参照:リクエストが受け取られる時、これらの異なったセクションがどのように結合しているのかは How Directory, Location and Files sections workを参照してください。


    <LocationMatch>

    Syntax: <LocationMatch regex> ... </LocationMatch>
    Context: server config, virtual host
    Status: core
    Compatibility: Location is only available in Apache 1.3 and later.

    <LocationMatch>命令は<Location>に対するのと同じ方法で、URLによるアクセスコントロールを与えます。しかしながら、単純な記述の代わりに引数として通常表記を用います。例えば:

       <LocationMatch "/(extra|special)/data">
    

    サブストリング"/extra/data" か"/special/data"を含んでいるURLsと一致します。

    参照:リクエストが受け取られる時、これらの異なったセクションがどのように結合しているのかは How Directory, Location and Files sections workを参照してください。

    LockFile directive

    Syntax: LockFile filename
    Default: LockFile logs/accept.lock
    Context: server config
    Status: core

    LockFile命令はApacheがUSE_FCNTL_SERIALIZED_ACCEPTかあるいはUSE_FLOCK_SERIALIZED_ACCEPT のいずれかでコンパイルされた時使われるlockfileへのパスを設定します。この命令は通常デフォルトの値のままにすべきです。もしlogsディレクトリがマウントされたNFSなら、lockfileは可能ならばローカルディスクにストアされるので変更の主な理由になります。メインサーバ処理のPIDは自動的にファイル名に付加されます。


    MaxClients命令

    Syntax: MaxClients number
    Default: MaxClients 256
    Context: server config
    Status: core

    MaxClients命令は同時にリクエスト数の限度数を設定します;作成される子サーバプロセスの数以下です。


    MaxKeepAliveRequests directive

    Syntax: MaxKeepAliveRequests number
    Default: MaxKeepAliveRequests 100
    Context: server config
    Status: core
    Compatibility: Only available in Apache 1.2 and later.

    MaxKeepAliveRequests命令はKeepAliveがonの時接続毎に許可されたリクエスト数を制限します。 もし"0"にセットされると、無制限のリクエストが許可されるでしょう。サーバの機能を最大にするには、この設定を推奨します。


    MaxRequestsPerChild命令

    Syntax: MaxRequestsPerChild number
    Default: MaxRequestsPerChild 0
    Context: server config
    Status: core

    MaxRequestsPerChild命令は個々の子サーバプロセスが取り扱うリクエストの範囲を設定する。MaxRequestPerChild が設定されると、その子プロセスは停止します。もしMaxRequestsPerChild が0だと、そのプロセスは停止しません。

    MaxRequestsPerChild を0以外に設定すると、2つの有益な効果があります:


    MaxSpareServers命令

    Syntax: MaxSpareServers number
    Default: MaxSpareServers 10
    Context: server config
    Status: core

    MaxSpareServers命令はidleの子サーバプロセスの最大数を設定します。idleプロセスはリクエストを処理しないものの一つです。もし MaxSpareServers の idleよりも多い場合には、親プロセスは、過剰な処理を停止するでしょう。

    このパラメータの設定は非常に混雑したサイトにのみ実行すべきです。このパラメータの数を大きく設定することはあまり良いアイデアとはいえません。

    MinSpareServersStartServersを参照してください。


    MinSpareServers directive

    Syntax: MinSpareServers number
    Default: MinSpareServers 5
    Context: server config
    Status: core

    MinSpareServers命令はidle子サーバプロセスの最少値を設定します。 idle プロセスはリクエストを処理しないものの一つです。もし MinSpareServers の idle よりも少ない場合には、上位の処理が、一秒ごとの最大速度で新しい下位の処理を実行します。

    このパラメータの設定は非常に混雑したサイトにのみ実行すべきです。このパラメータの数を大きく設定することはあまり良いアイデアとはいえません。

    MaxSpareServersStartServersを参照してください。


    NameVirtualHost directive

    Syntax: NameVirtualHost addr[:port]
    Context: server config
    Status: core

    Compatibility: NameVirtualHost is only available in Apache 1.3 and later

    NameVirtualHost命令はname-based virtual hostsをコンフィギュアしたいのなら必要とされる命令です。

    addrはホスト名ですが、いつも使うIPアドレスが推奨されます。例えば

    NameVirtualHost 111.22.33.44
    name-basedのバーチャルホスト名が決定するアドレスをNameVirtualHostが指定し、 もし複数のアドレスに複数のname-basedホストを持っていれば、それぞれのアドレスに命令を繰り返します。

    任意にname-basedのバーチャルホストが使われるべきポート番号を指定することができます。例えば

    NameVirtualHost 111.22.33.44:8080
    See also: Apache Virtual Host documentation

    Options命令

    Syntax: Options [+|-]option [+|-]option ...
    Context: server config, virtual host, directory, .htaccess
    Override: Options
    Status: core

    Options命令はサーバ制御を特定のディレクトリ内でのみ有効にする命令です。

    optionがNoneに設定されている場合は、特別な制御は使用不可であるかあるいは、次のような場合があります。

    All
    MultiViewsを除いた全てのものが利用可能です。
    ExecCGI
    CGIの実行が認められます。
    FollowSymLinks
    サーバはこのディレクトリにシンボリックリンクを許可します。 : サーバはシムリンクに従いますが、<Directory>セクションに対して一致するように使われるパス名は変えません。
    Includes
    サーバ側インクルード機能を許可します。
    IncludesNOEXEC
    サーバ側インクルード機能を許可しますが、#exeコマンドとCGIスクリプトの#include は含みません。
    Indexes
    もしディレクトリにマップしているURLがリクエストされ、そのディレクトリに DirectoryIndex(例:index.html)がない場合には、サーバがそのディレクトリ以下のファイルを表示することを許可します。
    MultiViews
    Content negotiated MultiViewsを許可します。
    SymLinksIfOwnerMatch
    サーバは、対象とするファイルとディレクトリがリンクしているとき同様のユーザIDに従ってシンボリックリンクを許可します。
    通常、もし複数の Option があるディレクトリに対して適用された時、大抵特定の一つが実行されます。;option は2つ以上を実行することができません。しかし、もしOptions命令のallに + か - の記号がallの前に書かれている場合は、option はマージされます。+ が書かれたoptionは一般に、有効にoptions に加えられ、- が書かれたoption は効果のあるoption から除外されます。

    例えば, + と - の記号なしでは:

    <Directory /web/docs>
    Options Indexes FollowSymLinks
    </Directory>
    <Directory /web/docs/spec>
    Options Includes
    </Directory>
    上記は Includes だけが /web/docs/spec ディレクトリに設定される。Options命令が + と - の記号を使っていれば、:

    <Directory /web/docs>
    Options Indexes FollowSymLinks
    </Directory>
    <Directory /web/docs/spec>
    Options +Includes -Indexes
    </Directory>
    これによってFollowSymLinks と Includes が /web/docs/spec ディレクトリに設定されます。

    PidFile命令

    Syntax: PidFile filename
    Default: PidFile logs/httpd.pid
    Context: server config
    Status: core

    PidFile 命令はデーモンのプロセスidをサーバが記録するファイルを設定します。もしファイルネームがスラッシュ(/)で始まっていなければ、ServerRootが親ディレクトリであると仮定されます。PidFileはstandaloneモードでのみ使用されます。

    サーバにシグナルを送るためにしばしば使われ、サーバが閉じていると、ErrorLogとTransferLogを再び開き、configuration ファイルを再び読み込みます。これはPidFileにリストされた プロセスidにSIGHUP(kill -1) シグナルを送ることで実行されます。

    PidFileはログファイル配置とセキュリティについての警告の支配を受けています。


    Port命令

    Syntax: Port number
    Default: Port 80
    Context: server config
    Status: core

    Port命令はサーバが起動するときのネットワークポート番号を設定します。 numberは0から65535までです。いくつかのポート番号は(特に1024以下)特別なプロトコルのために使用されます。ポート番号が定義されているリストである/etc/servicesを参照してください。httpdプロトコルのための標準ポート番号は80です。

    Port命令は二つの運動を持っており、一つはNCSA後方互換性に必要なものです(そしてApacheのプロセスの実行時情報で混乱します)。

    なにも起こらなければ、Port設定はVirtualHostが反応するのがどんなポートかに影響します。VirtualHost命令自身はそのために使われます

    ポートのプライマリの動作はServerName命令と似ていると考えるべきです。ServerNameとPortは一緒にサーバのcanonicalアドレスになるようなどうしたら良いかを指定します。

    ポート番号80はUnixの特定のポートの1つです。1024以下のポート番号はすべてシステムが使用するために確保されています。例えば、通常(non-root)のユーザはそれらを使用する事が出来ません。; 代わりに彼らはそれ以上のポート番号を使用することが出来ます ポート番号80を使用するためには、ルートでサーバを起動しなければなりません。ポートにバインドした後とリスエストを受ける前に、ApacheはUser命令によって設定されたより低い権限を持ったユーザに変更します。

    もしポート番号80を使用することが出来ないなら、使用されていない他のポート番号を選んでください。 Non-rootユーザは1023より大きいポート番号を選択しなければなりません。例えば8000のような。

    SECURITY: もしrootでサーバを起動するならば、Userをrootに設定していないことを確認してください。接続をハンドリングしている間にrootでサーバを起動するなら、サイトはありがちなセキュリティー攻撃に対してオープンであるかもしれません。


    require命令

    Syntax: require entity-name entity entity...
    Context: directory, .htaccess
    Override: AuthConfig
    Status: core

    この命令は、認証されたユーザがあるディレクトリにアクセスできるかどうかを選択します。許可されたsyntaxesは:

    もしrequire<Limit>セクションに存在するとき指定された方法でのアクセスを制限します。<Limit>になければ全ての方法に対するアクセスを制限します。例:

    AuthType Basic
    AuthName somedomain
    AuthUserFile /web/users
    AuthGroupFile /web/groups
    <Limit GET POST>
    require group admin
    </Limit>
    Requireは正確に動作させるために(ユーザーやグループを定義するために)はAuthNameAuthTypeAuthUserFileAuthGroupFileのような命令を伴わなければなりません。


    ResourceConfig命令

    Syntax: ResourceConfig filename
    Default: ResourceConfig conf/srm.conf
    Context: server config, virtual host
    Status: core

    サーバは httpd.confファイルを実行した後、このファイルを実行します。FilenameServerRootと相対パスをとります。これは以下のように設定すると無効に出来ることです:

    ResourceConfig /dev/null
    一般的にこのファイルはサーバのコンフィグレーションの設定 と<Directory>セクション以外のほとんどの設定が含まれます。 sections;実際、server configで許可されたサーバの設定をいくつか含むことができます。

    AccessConfig も参照して下さい。


    RLimitCPU 命令

    Syntax: RLimitCPU # or 'max' [# or 'max']
    Default: Unset; uses operating system defaults
    Context: server config, virtual host
    Status: core
    Compatibility:RLimitCPUはApache 1.2以降で使用可能

    1か2のパラメータを取ります。最初のパラメータは全ての処理に対するソフトリソース制限を設定し、2番目のパラメータはリソース制限の最大値を設定します。パラメータは数字か、サーバに示されているmaxのどちらかです。その制限はオペレーティングシステムのコンフィグレーションによって許可された最大値が設定されます。'最大リソース制限を設定するのはーバがルートとして作動している時か、起動時です。

    CPUリソース制限はプロセス毎に秒単位で表示されます。

    RLimitMEMRLimitNPROCを参照してください。


    RLimitMEM命令

    Syntax: RLimitMEM # or 'max' [# or 'max']
    Default: Unset; uses operating system defaults
    Context: server config, virtual host
    Status: core
    Compatibility: RLimitMEM is only available in Apache 1.2 and later

    1か2のパラメータを取ります。最初のパラメータは全てのプロセスのソフトリソース制限を設定し、2番目のパラメータはリソース制限の最大値を設定します。パラメータは数字か、サーバに示されているmaxのどちらかです。その制限はオペレーティングシステムのコンフィグレーションによって許可された最大値が設定されます。最大リソース制限を行なうのはサーバがルートとして作動している時か、起動時です。

    メモリーリソースはプロセス毎にバイト単位で表示されます。

    RLimitCPURLimitNPROCを参照してください。


    RLimitNPROC命令

    Syntax: RLimitNPROC # or 'max' [# or 'max']
    Default: Unset; uses operating system defaults
    Context: server config, virtual host
    Status: core
    Compatibility: RLimitNPROC is only available in Apache 1.2 and later

    1か2のパラメータを取ります。最初のパラメータは全てのプロセスに対するソフトリソース制限を設定し、2番目のパラメータはリソース制限の最大値を設定します。パラメータは数字か、サーバに示されているmaxのどちらかです。その制限はオペレーティングシステムのコンフィグレーションによって許可された最大値が設定されます。最大リソース制限を行なうのはサーバがルートとして作動している時か、起動時です。

    プロセス制限はユーザごとにプロセス数を制限します。

    注: もしCGIプロセスがwebサーバのユーザIDではないユーザIDで動作しているならば、この命令はサーバ自身が作成出来るプロセス数を制限します。これはerror_log の中のcannot forkメッセージによって確認出来ます。

    RLimitMEMRLimitCPUを参照してください。


    Satisfy命令

    Syntax: Satisfy 'any' or 'all'
    Default: Satisfy all
    Context: directory, .htaccess
    Status: core
    Compatibility: SatisfyはApache 1.2以降で使用可能

    Access policy if both allow and require used. パラメータは'all''any'のどちらかです。この命令は、もし特定の領域へのアクセスがusername/passwordとクライアントホストアドレスの両方によって制限されると、有効です。この場合、デフォルトの動き("all")はクライアントがアドレスアクセス制限をパスし、正当なユーザ名とパスワードを入力することを必要とします。"any"オプションで、もしホスト制限をパスするか正当なユーザ名とパスワードの入力するかをすれば、クライアントはアクセスを認めるられるでしょう。これは領域をパスワード制限するために使われますが、パスワード入力のためのプロンプトがない、特定のアドレスからのクライアントは通します。


    ScoreBoardFile directive

    Syntax: ScoreBoardFile filename
    Default: ScoreBoardFile logs/apache_status
    Context: server config
    Status: core

    ScoreBoardFile命令は、サーバがその子と親との間の通信を使うファイルを置くためのアーキテクチャで必要とされます。アーキテクチャがスコアボードファイルを必要としているかどうかを明らかにする最も簡単な方法はApacheを動かして、命令によって名づけられたファイルを作成するかどうかを見ることです。もしアーキテクチャがそれを必要とするなら、一つ以上のApacheの実行によってこのファイルが同じ時に使われることを保証しなければなりません。

    もし ScoreBoardFile を使わなければならないなら、それを RAM ディスク上に置いて速度を改善できるかもしれません。しかし、ログファイルの設置と security の同じ warning に気を付けてください。

    Apache 1.2とそれ以上:

    Linux 1.x ユーザはコンフィギュレーションのEXTRA_CFLAGS-DHAVE_SHMGETを追加することが可能かもしれません。これは、1.x インストレーションのいくつかでは作動するかもしれませんが、その全てでは作動しません。

    SVR4 ユーザはコンフィギュレーションのEXTRA_CFLAGS-DHAVE_SHMGETを追加することを考えるべきでしょう。これは作動すると信じられていますが、1.2のテストについては間に合わせることができませんでした。

    参照: Stopping and Restarting Apache


    SendBufferSize directive

    Syntax: SendBufferSize bytes
    Context: server config
    Status: core

    サーバは指定されたバイト数に対して、TCPバッファーサイズを設定します。高速高レイテンシな過去の標準OSのデフォルトを増やすのに便利です。(例:100ms か、または大陸横断高速線のようなもの)


    ServerAdmin directive

    Syntax: ServerAdmin email-address
    Context: server config, virtual host
    Status: core

    ServerAdmin はサーバがクライアントへ返送するエラーメッセージに含まれるe-mail アドレスを設定します。このための専用のアドレスを設定する必要があるかもしれません。例えば

    ServerAdmin www-admin@foo.bar.com
    いつも、ユーザがサーバに関して話していることを言わないように。


    ServerAlias命令

    Syntax: ServerAlias host1 host2 ...
    Context: virtual host
    Status: core
    Compatibility: ServerAliasはApache 1.2以降で使用可能

    ServerAlias 命令は、ホストとname-based virtual hosts使用に対する名前の交換を設定します。

    参照: Apache Virtual Host documentation


    ServerName命令

    Syntax: ServerName fully-qualified domain name
    Context: server config, virtual host
    Status: core

    ServerName 命令はサーバのホスト名を設定します;これは URLをリダイレクトるときにのみ使われます。もし指定されていなければ、サーバは自身の IP アドレスから推測しようとします。;しかしながら、これは確実ではないかもしれないし、好ましいホストネームを返さないかもしれません。例えば:

    ServerName www.wibble.com
    上記は実際にマシンの正当(メイン)の名前が monster.wibble.com であるなら使用されるでしょう。

    参照: DNS Issues


    ServerPath命令

    Syntax: ServerPath pathname
    Context: virtual host
    Status: core
    Compatibility: ServerPath is only available in Apache 1.1 and later.

    ServerPath命令は、name-based virtual hostsで使われるホストのために、元からある URLのパス名を設定する。

    参照: Apache Virtual Host documentation


    ServerRoot命令

    Syntax: ServerRoot directory-filename
    Default: ServerRoot /usr/local/apache
    Context: server config
    Status: core

    ServerRoot命令はシステムが存在するディレクトリを設定します。 一般的に、それはconf/ とlogs/ のサブディレクトリを含みます。他のコンフィグレーションファイルの相対パスは、このディレクトリとの相対パスになります。
    参照 the -d option to httpd.


    ServerType命令

    Syntax: ServerType type
    Default: ServerType standalone
    Context: server config
    Status: core

    ServerType命令はサーバがシステムによって実行される方法を設定します。Typeには

    inetd
    サーバはinetdのシステムプロセスから起動します; サーバを起動するコマンドは/etc/inetd.confに加えられます。
    standalone
    サーバはデーモンプロセスで起動します; サーバを起動するためのコマンドはシステムスタートアップスクリプト(/etc/rc.local or /etc/rc3.d/....)に加えられます。
    Inetdは2つのオプションの中ではあまり使用されません。httpコネクションが受け取るたびに、サーバの新たなコピーがゼロからスタートします。そのコネクションが完了した後、このプログラムは終了します。コネクション毎の高い代償がありますが、セキュリティー上の理由から管理者によってはオプション(Inetd)の方を好みます。

    Standaloneは、はるかに効率的であるためServerTypeにおいて最も一般的な設定です。サーバが一度起動して、、引き続いて実行される全ての接続を実行します。もしbusyなサイトで Apacheを起動させるつもりなら、 standaloneはおそらく唯一のオプションです。

    セキュリティ:もしあなたがセキュリティにこだわるなら、 inetdモードで実行してください。セキュリティはどちらの場合( inetdとStandalone)でも保証は出来ません。しかし、ほとんどの人々がstandaloneを使用することでよいならば、inetdはおそらく使用されなくなるでしょう。


    StartServers命令

    Syntax: StartServers number
    Default: StartServers 5
    Context: server config
    Status: core

    StartServers 命令は起動時に作られる子サーバプロセスの数を設定します。プロセス数はロードによって変動するので、通常この変数を調整する必要はありません。

    Microsoft Windowsで作動させると、この命令は全ての子プロセス作動数を設定します。ApacheのWindowsバージョンはマルチスレッドされているので、一つの処理が全ての要求をハンドルします。メインの処理が死ぬまで、残りは貯えられます。 MinSpareServersMaxSpareServersも参照してください。


    ThreadsPerChild

    Syntax: ThreadsPerChild number
    Default: ThreadsPerChild 50
    Context: server config
    Status: core (Windows)
    Compatbility: Available only with Apache 1.3 and later with Windows

    この命令は使われるべきスレッドがどの位あるのかをサーバに教えます。これは、サーバが一度にハンドルできる接続の最大数です;たくさんヒットした場合には、確認して、サイトにとって十分に高い数値に設定してください。

    StartServersMaxRequestsPerChildを参照してください。


    TimeOut命令

    Syntax: TimeOut number
    Default: TimeOut 300
    Context: server config
    Status: core

    現在のところTimeOut命令は三つのことを待つ時間を定義します:

    1. GETリクエストを受け取るのにかかる時間
    2. POSTかPUTリクエストでのTCPパケット間ににかかる時間
    3. レスポンスにTCPパケット転送でのACKs間にかかる時間
    ダウンロードのいくつかの時点で、これらを別々にコンフィギュアすることを可能にすることを計画しています。1.2 以前ではタイマーのデフォルトは 1200 が使われていましたが、300 になってもまだ、たいていの場合には必要以上に大きいです。デフォルトで低く設定されないのは、パケットが送信されたときにタイマーがリセットされないコードでは、まだ半端になるかもしれないからです。


    User命令

    Syntax: User unix-userid
    Default: User #-1
    Context: server config, virtual host
    Status: core

    User 命令はサーバがリクエスト答えるユーザID を設定します。この命令を使うために、スタンドアローンサーバはルートとして起動時に作動します。Unix-useridは次の内の一つです:

    A username
    名前によって与えられたユーザであることを示します
    # followed by a user number.
    番号によって与えられたユーザであることを示します
    ユーザには読むことのできないようにしてあるファイルにアクセスする権限がありません。同様に、httpd の要求に対応していないコードを実行することはできません。特に作動しているサーバの新しいユーザとグループに設定することを推奨します。管理者によっては ユーザを必要としませんが、これが常に可能で望ましいわけではありません。

    注: もしサーバをルートでないユーザとして起動するなら、権限の小さいユーザへの変更に失敗し、代わりにオリジナルユーザとして実行し続けます。もしルートとしてサーバを起動するなら、ルートとして普通に上位の処理を行なうことができます。

    Special note: Use of this directive in <VirtualHost> requires a properly configured suEXEC wrapper. When used inside a <VirtualHost> in this manner, only the user that CGIs are run as is affected. Non-CGI requests are still processed with the user specified in the main User directive.

    セキュリティ: あなたが何をしていて、何が危険なのかを正確に知っている場合以外にはルートに対して User (or Group)の設定はしないで下さい。


    <VirtualHost> 命令

    Syntax: <VirtualHost addr[:port] ...> ... </VirtualHost>
    Context: server config
    Status: Core.
    Compatibility: Non-IP address-based Virtual Hosting only available in Apache 1.1 and later.
    Compatibility: Multiple address support only available in Apache 1.2 and later.

    <VirtualHost>と</VirtualHost>は特定のに対してのみ適用されるグループを囲むために使用されます。virtual host内で許可された命令を使用出来ます。サーバが特定の virtual host 上で document の要求を受け取ると、<VirtualHost>の中でグループ化された configration命令を使います。Addr は、

  • virtual host のIP アドレス
  • virtual hostのIP アドレスに対して認証されたドメインのフルネーム
  • 例:
    <VirtualHost 10.1.2.3>
    ServerAdmin webmaster@host.foo.com
    DocumentRoot /www/docs/host.foo.com
    ServerName host.foo.com
    ErrorLog logs/host.foo.com-error_log
    TransferLog logs/host.foo.com-access_log
    </VirtualHost>
    一般に、それぞれの VirtualHost はサーバとは異なった IP アドレスに対応していなければならず、サーバ機は複数のアドレスの IP パケットを受け取るためにコンフィギュアされていなければなりません。もしそのマシーンが複数のネットワークのインターフェースを持っていなければ、サーバ機は ifconfig alias コマンド(OSがそれをサポートしている場合)か、または、VIFのような kernel patch (SunOS(TM) 4.1x の場合)で実現することが出来ます。

    特別な名前である_default_は、このバーチャルホストが、明らかに他のバーチャルホストにリストされていないIPアドレスに一致する場合に指定されます。なにかの _default_ バーチャルホストがない"main"のサーバコンフィグは、VirtualHostセクションの外側で全てのその定義から構成され、一致しないときに使われます。

    一致しているポートを変更するための:portを指定できます。もし指定されなければ、メインサーバの一番最近のPortと同じポートに対してデフォルトになります。そのアドレスで全てのポートに一致する:*を指定するかもしれません(これは、_default_で使われたときに推奨されます)。

    セキュリティ: もしログファイルがストアされているディレクトリが、サーバを起動させたユーザ以外の誰かによって書き込みが可能になっていれば、なぜセキュリティが破られたのかについての詳細なドキュメントであるsecurity tipsを参照してください。

    : <VirtualHost>の使用はApacheがどんなアドレスを聞いているのかには影響しません。ApacheがBindAddressListenのどちらかを使って正確なアドレスを聞くことを保証する必要があるかもしれません。

    参照: Apache Virtual Host documentation
    参照: Warnings about DNS and Apache
    参照: Setting which addresses and ports Apache uses
    参照: How Directory, Location and Files sections work for an explanation of how these different sections are combined when a request is received


    Apache HTTP Server Version 1.3

    検索文字
    このJAPACHE!ニュースグループへ ( japache.core ) | JAPACHE!ニュースについて | JAPACHE!ホームページへ

    Index Home The English original manual is here.


    このページの情報に関わる、ご質問、お問い合わせは、 japache@infoscience.co.jpまで。