Oracle HTTP Server 管理者ガイド
10g(10.1.3.1.0) B31847-01 |
|
この章では、Oracle HTTP Serverのディレクトリ構造、構成ファイルとその構文、モジュールおよびディレクティブについて説明します。
内容は、次のとおりです。
Oracle HTTP Serverは、UNIX上ではORACLE_HOME
/Apache
ディレクトリ、Windows上ではORACLE_HOME
¥Apache
ディレクトリにインストールされます。
図2-1は、Oracle HTTP Serverのディレクトリ構造を示しています。
Apache
ディレクトリは、ORACLE_HOME
のトップ・レベルにあります。このディレクトリにはmod_plsql
およびmod_oradav
など、モジュール構成用のサブディレクトリがあります。また、Apache
という別のディレクトリもあり、これはOracle HTTP Serverのベース・ディレクトリです。表2-1に、ORACLE_HOME
/Apache/Apache
ディレクトリのサブディレクトリについて示します。
Oracle HTTP Serverのメイン構成ファイルは、httpd.conf
です。このファイルは、サーバーで使用されるその他の構成ファイルとともに、次の場所にあります。
構成ファイルには、サーバーの起動時または再ロード時に1回のみ読み取られるものと、関連ファイルまたはディレクトリがリクエストされるたびに読み取られるものがあります。
1回のみ読み取られる構成ファイルは、サーバー単位の構成ファイルと呼ばれます。
ディレクティブは、Oracle HTTP Serverの構成手順です。ディレクティブは、httpd.conf
と、サーバーの動作を決定するその他の構成ファイルにあります。
Oracle HTTP Server構成ファイルには、1行ごとに1つのディレクティブが含まれています。バックスラッシュ(\)を1行の最後の文字として使用すると、ディレクティブが次行に継続することを示すことができます。バックスラッシュと行末の間には、他の文字や空白を挿入しないでください。
構成ファイル内のディレクティブには大文字と小文字の区別がありませんが、通常、ディレクティブの引数には大文字と小文字の区別があります。文字#で始まる行はコメントとみなされて無視されます。行の構成ディレクティブの後にはコメントを挿入できません。ディレクティブの前にある空白行と空白は無視されるため、読みやすいようにディレクティブをインデントできます。
次に例を示します。
# # DocumentRoot: The directory out of which you will serve your # documents. By default, all requests are taken from this directory, but # symbolic links and aliases may be used to point to other locations. # DocumentRoot "/private1/oracle/Apache/Apache/htdocs" # # Each directory to which Apache has access, can be configured with respect # to which services and features are allowed and/or disabled in that # directory (and its subdirectories). # # First, we configure the "default" to be a very restrictive set of # permissions. # <Directory /> Options FollowSymLinks MultiViews AllowOverride None </Directory>
表2-2は、ディレクティブがグローバル、サーバーごと、ディレクトリごとに使用できるコンテキストに応じて分類したものです。
注意 表2-2で、各クラスはその前のクラスのサブセットです。たとえば、ディレクトリ単位クラスのディレクティブは、サーバー単位およびグローバル・コンテキストでも使用できます。サーバー単位クラスのディレクティブはグローバル・コンテキストでも使用できます。 |
メイン構成ファイルにあるディレクティブは、サーバー全体に適用されます。サーバーの一部の構成のみを変更する場合は、ディレクティブを特定のセクションに置いて有効範囲を指定できます。
ディレクティブには次の2つのタイプがあります。
コンテナ・ディレクティブでは、ディレクティブの有効範囲を指定します。この後の項では、次のコンテナ・ディレクティブについて詳しく説明します。
指定したディレクトリとそのサブディレクトリにのみ適用されるディレクティブのグループを囲みます。ディレクトリのコンテキストで許可される任意のディレクトリを使用できます。ディレクトリ指定には、ディレクトリへのフル・パスまたはワイルドカード文字列を使用できます。ワイルドカード文字列の場合、?は任意の1文字と一致し、*は任意の文字列と一致します。<Directory /
>はファイル・システム全体を指し、<Directory
dir
>は絶対ディレクトリを指すことに注意してください。<Directory
>コンテナは相互にネストできませんが、ドキュメント・ルートでネストしているディレクトリを指すことはできます。
ディレクトリ指定でワイルドカードとともに<Directory
>のティルダ形式を使用せずに、正規表現を指定します。次の2つの例は同じ結果になり、web
で始まって1〜9の数字で終わるディレクトリが一致します。
<Directory ~/web[1-9]/> <DirectoryMatch "/web[1-9]/">
<Files
file
>および</Files
>ディレクティブでは、ファイル名によるアクセス制御がサポートされます。この2つは、<Directory>および<Location>ディレクティブに相当します。このセクションで指定したディレクティブは、指定したファイル名と一致するベース名(ファイル名の最後の構成要素)に含まれる、任意のオブジェクトに適用できます。<Files
>セクションは、構成ファイルに表示されている順序、すなわち、<Directory
>セクションの後に.htaccess
ファイルが読み取られてから(ただし<Location
>セクションの前に)処理されます。<Files
>ディレクティブを<Directory
>セクション内でネストして、ファイル・システムの適用部分を限定できることに注意してください。
<Files>ディレクティブと同様に、ファイル名によるアクセス制御を提供します。ただし、正規表現を使用できます。
<Limit
method
>では、受信リクエストのHTTPメソッドに従ってブロックを定義します。次の例では、指定のメソッドを使用するスクリプトの後に続くディレクティブの適用対象を制限しています。
<Limit POST PUT OPTIONS> order deny, allow deny from all allow from 127.0.0.192 </Limit>
通常、<Limit
>は必要でないかぎり使用しないでください。これは、ディレクティブを特定のメソッドに限定する場合にのみ役立ちます。<Limit
>は他のコンテナで頻繁に使用され、どのコンテナにも含まれます。
アクセス制御の対象を、指定したHTTPメソッドを除くすべてのHTTPメソッドに限定します。
<Directory>ディレクティブとは異なり、ブロック内のディレクティブの適用対象を物理ファイルの場所ではなく指定のURLに限定します。<Location
>セクションは、構成ファイルに表示されている順序、すなわち、<Directory
>セクションの後で、.htaccess
ファイルが読み取られ、<Files>セクションの後に処理されます。<Location
>には、ワイルドカード・ディレクトリおよびティルダ文字による正規表現を使用できます。
<Location>とまったく同じように機能します。正規表現の指定では、場所の指定に、ワイルドカードを伴うティルダ形式の<Location
>ではなくこれを使用します。
例:
<LocationMatch "/(extra|special)/data">
/extra/data
または/special/data
サブストリングを含むURLと一致します。
Oracle HTTP Serverには、多数の異なるWebサイトを同時に処理する機能があります。ディレクティブを<VirtualHost
>セクションに置くことで有効範囲を指定し、特定のWebサイトに関するリクエストにのみ適用することもできます。
仮想ホストは、その明示的なホスト名で区別されるように、あるマシン上の複数のサーバーをメンテナンスする手段です。たとえば、通常、複数の企業が1台のWebサーバーを共有している場合は独自のドメインを持つことが望ましく、余分なパス情報を知らなくても、Webサーバーにはwww.oracle1.com
やwww.oracle2.com
などでアクセスできます。
Oracle HTTP Serverは、IPベースの仮想ホストと名前ベースの仮想ホストの両方をサポートしています。後者は、ホストベースまたは非IP仮想ホストと呼ばれることもあります。
各仮想ホストには、固有の名前、IPアドレス、エラー・ログおよびアクセス・ログがあります。Oracle HTTP Serverの1回の起動で実行される、個々のサーバーの大多数は<VirtualHost
>コンテナ内で設定できます。仮想ホストを使用することにより、メイン・ホストを定義するサーバー・レベルの構成ディレクティブの代替セットを指定できます。この指定は、他のコンテナ内では許可されません。
ブロック内のディレクティブを有効にするために、TRUEにする必要がある条件を指定します。
<IfModule
>および<IfDefine
>は、これらに含まれるディレクティブの有効範囲を限定しないため、コンテナ・ディレクティブではなくブロック・ディレクティブです。このタイプのディレクティブは、Oracle HTTP Serverでブロック内のディレクティブを、その構成内に解析するかどうかを定義するディレクティブであり、サーバーの実行後は無視されます。
Oracle HTTP Serverはモジュール形式のサーバーです。モジュールはWebサーバーの基本機能を拡張し、Oracle HTTP Serverとその他のOracle Application Serverコンポーネントとの統合をサポートします。Oracle HTTP Serverには、Oracle HTTP ServerモジュールのみでなくApacheモジュールも組み込まれています。
LoadModule
ディレクティブを使用するとモジュールを追加できます。次にLoadModule
の使用例を示します。
LoadModule status_module modules/mod_status.so
Oracle HTTP Serverでは、Webツリーにある特殊ファイルを介して構成を分散管理できます。この特殊ファイルは通常は.htaccess
と呼ばれますが、AccessFileName
ディレクティブでファイル名を指定できます。.htaccess
ファイル内のディレクティブは、そのファイルがあるディレクトリおよびすべてのサブディレクトリに適用されます。.htaccess
ファイルの構文は、メイン構成ファイルと同じです。.htaccess
ファイルはリクエストごとに読み取られるため、これらのファイルに対する変更は即時に有効になります。
メイン構成ファイル内でAllowOverride
ディレクティブを構成することで、サーバー管理者は.htaccess
ファイルに挿入できるディレクティブをさらに制御できます。
|
![]() Copyright © 2006 Oracle Corporation. All Rights Reserved. |
|