ヘッダーをスキップ

Oracle HTTP Server 管理者ガイド
10g(10.1.3.1.0)

B31847-01
目次
目次
索引
索引

戻る 次へ

2 概念

この章では、Oracle HTTP Serverのディレクトリ構造、構成ファイルとその構文、モジュールおよびディレクティブについて説明します。

内容は、次のとおりです。

Oracle HTTP Serverのディレクトリ構造の理解

Oracle HTTP Serverは、UNIX上ではORACLE_HOME/Apacheディレクトリ、Windows上ではORACLE_HOME¥Apacheディレクトリにインストールされます。

図2-1は、Oracle HTTP Serverのディレクトリ構造を示しています。

図2-1    Oracle HTTP Serverのディレクトリ構造


画像の説明

Apacheディレクトリは、ORACLE_HOMEのトップ・レベルにあります。このディレクトリにはmod_plsqlおよびmod_oradavなど、モジュール構成用のサブディレクトリがあります。また、Apacheという別のディレクトリもあり、これはOracle HTTP Serverのベース・ディレクトリです。表2-1に、ORACLE_HOME/Apache/Apacheディレクトリのサブディレクトリについて示します。

表2-1    Apacheサブディレクトリ 
ディレクトリ名  内容 

bin 

Oracle HTTP Serverの実行可能ファイル。 

cgi-bin 

CGIスクリプト。これらは、クライアントのかわりにOracle HTTP Serverが実行できるプログラムまたはシェル・スクリプトです。 

conf 

構成ファイル。 

fastcgi 

独自のfastcgiアプリケーションを作成するための必須ビットであるfastcgiランタイム・ライブラリ。 

fcgi-bin 

FastCGIスクリプト。 

htdocs 

HTMLスクリプト。htdocディレクトリおよびサブディレクトリには、Web上のユーザーが誰でもアクセスできるため、パブリック・データ以外の用途に使用するとセキュリティ上の重大なリスクが発生します。 

icons 

Oracle HTTP Serverで情報メッセージやエラー・メッセージの表示に使用されるアイコン。 

include 

カスタム・モジュール作成用のヘッダー・ファイル。 

libexec 

モジュール用の共有ライブラリ・ファイル。 

log 

アクセスとエラーの両方に関するログ・データ。 

man 

Oracle HTTP Server用のmanページ。 

mod_perl 

mod_perlのサンプル・コード。mod_perl固有のライブラリおよびmanページも含まれています。 

php 

mod_phpのサンプル・コード。UNIXの場合、phpディレクトリには、PHP CLI(PHP実行可能ファイル)、manページおよびヘッダーも含まれています。ヘッダーにより、独自のPHP拡張機能を作成できます。Windowsの場合、このディレクトリには、PHP CLIと、PHPのOCI拡張機能(UNIXでは、OCI拡張機能がmod_phpにコンパイルされます)が含まれています。  

構成ファイルへのアクセス

Oracle HTTP Serverのメイン構成ファイルは、httpd.confです。このファイルは、サーバーで使用されるその他の構成ファイルとともに、次の場所にあります。

構成ファイルには、サーバーの起動時または再ロード時に1回のみ読み取られるものと、関連ファイルまたはディレクトリがリクエストされるたびに読み取られるものがあります。

1回のみ読み取られる構成ファイルは、サーバー単位の構成ファイルと呼ばれます。

関連項目

付録E「構成ファイル」 

構成ファイルの構文

ディレクティブは、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    クラスとディレクティブ 
クラス  コンテキスト  使用される場所 

グローバル 

サーバー構成 

サーバー構成ファイルの中で、コンテナ・ディレクティブ(VirtualHostなど、開始および終了ディレクティブを伴うディレクティブ)の外側のみ。 

サーバー単位 

サーバー構成、仮想ホスト 

サーバー構成ファイルの中で、VirtualHostディレクティブの外側(メイン・サーバーの場合)および内側。 

ディレクトリ単位 

サーバー構成、仮想ホスト、ディレクトリ 

任意の場所、特にサーバー構成ファイルの中。 


注意

表2-2で、各クラスはその前のクラスのサブセットです。たとえば、ディレクトリ単位クラスのディレクティブは、サーバー単位およびグローバル・コンテキストでも使用できます。サーバー単位クラスのディレクティブはグローバル・コンテキストでも使用できます。 


ディレクティブの有効範囲

メイン構成ファイルにあるディレクティブは、サーバー全体に適用されます。サーバーの一部の構成のみを変更する場合は、ディレクティブを特定のセクションに置いて有効範囲を指定できます。

ディレクティブには次の2つのタイプがあります。

コンテナ・ディレクティブ

コンテナ・ディレクティブでは、ディレクティブの有効範囲を指定します。この後の項では、次のコンテナ・ディレクティブについて詳しく説明します。

<Directory>

指定したディレクトリとそのサブディレクトリにのみ適用されるディレクティブのグループを囲みます。ディレクトリのコンテキストで許可される任意のディレクトリを使用できます。ディレクトリ指定には、ディレクトリへのフル・パスまたはワイルドカード文字列を使用できます。ワイルドカード文字列の場合、?は任意の1文字と一致し、*は任意の文字列と一致します。<Directory />はファイル・システム全体を指し、<Directory dir>は絶対ディレクトリを指すことに注意してください。<Directory>コンテナは相互にネストできませんが、ドキュメント・ルートでネストしているディレクトリを指すことはできます。

<DirectoryMatch>

ディレクトリ指定でワイルドカードとともに<Directory>のティルダ形式を使用せずに、正規表現を指定します。次の2つの例は同じ結果になり、webで始まって1〜9の数字で終わるディレクトリが一致します。

<Directory ~/web[1-9]/>
<DirectoryMatch "/web[1-9]/">

<Files>

<Files file>および</Files>ディレクティブでは、ファイル名によるアクセス制御がサポートされます。この2つは、<Directory>および<Location>ディレクティブに相当します。このセクションで指定したディレクティブは、指定したファイル名と一致するベース名(ファイル名の最後の構成要素)に含まれる、任意のオブジェクトに適用できます。<Files>セクションは、構成ファイルに表示されている順序、すなわち、<Directory>セクションの後に.htaccessファイルが読み取られてから(ただし<Location>セクションの前に)処理されます。<Files>ディレクティブを<Directory>セクション内でネストして、ファイル・システムの適用部分を限定できることに注意してください。

<FilesMatch>

<Files>ディレクティブと同様に、ファイル名によるアクセス制御を提供します。ただし、正規表現を使用できます。

<Limit>

<Limit method>では、受信リクエストのHTTPメソッドに従ってブロックを定義します。次の例では、指定のメソッドを使用するスクリプトの後に続くディレクティブの適用対象を制限しています。

<Limit POST PUT OPTIONS>
  order deny, allow
  deny from all
  allow from 127.0.0.192
</Limit>

通常、<Limit>は必要でないかぎり使用しないでください。これは、ディレクティブを特定のメソッドに限定する場合にのみ役立ちます。<Limit>は他のコンテナで頻繁に使用され、どのコンテナにも含まれます。

<LimitExcept>

アクセス制御の対象を、指定したHTTPメソッドを除くすべてのHTTPメソッドに限定します。

<Location>

<Directory>ディレクティブとは異なり、ブロック内のディレクティブの適用対象を物理ファイルの場所ではなく指定のURLに限定します。<Location>セクションは、構成ファイルに表示されている順序、すなわち、<Directory>セクションの後で、.htaccessファイルが読み取られ、<Files>セクションの後に処理されます。<Location>には、ワイルドカード・ディレクトリおよびティルダ文字による正規表現を使用できます。

<LocationMatch>

<Location>とまったく同じように機能します。正規表現の指定では、場所の指定に、ワイルドカードを伴うティルダ形式の<Location>ではなくこれを使用します。

例:

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

/extra/dataまたは/special/dataサブストリングを含むURLと一致します。

<VirtualHost>

Oracle HTTP Serverには、多数の異なるWebサイトを同時に処理する機能があります。ディレクティブを<VirtualHost>セクションに置くことで有効範囲を指定し、特定のWebサイトに関するリクエストにのみ適用することもできます。

仮想ホストは、その明示的なホスト名で区別されるように、あるマシン上の複数のサーバーをメンテナンスする手段です。たとえば、通常、複数の企業が1台のWebサーバーを共有している場合は独自のドメインを持つことが望ましく、余分なパス情報を知らなくても、Webサーバーにはwww.oracle1.comwww.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 

関連項目

第7章「モジュールの理解」 

.htaccessファイル

Oracle HTTP Serverでは、Webツリーにある特殊ファイルを介して構成を分散管理できます。この特殊ファイルは通常は.htaccessと呼ばれますが、AccessFileNameディレクティブでファイル名を指定できます。.htaccessファイル内のディレクティブは、そのファイルがあるディレクトリおよびすべてのサブディレクトリに適用されます。.htaccessファイルの構文は、メイン構成ファイルと同じです。.htaccessファイルはリクエストごとに読み取られるため、これらのファイルに対する変更は即時に有効になります。

メイン構成ファイル内でAllowOverrideディレクティブを構成することで、サーバー管理者は.htaccessファイルに挿入できるディレクティブをさらに制御できます。


戻る 次へ
Oracle
Copyright © 2006 Oracle Corporation.

All Rights Reserved.
目次
目次
索引
索引