ヘッダーをスキップ

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

B31847-01
目次
目次
索引
索引

戻る 次へ

7 モジュールの理解

この章では、Oracle HTTP Serverに組み込まれているモジュール(mod)について説明します。モジュールはWebサーバーの基本機能を拡張し、Oracle HTTP Serverとその他のOracle Application Serverコンポーネントとの統合をサポートします。

該当する場合は、Apache Software Foundationのマニュアルを参照しています。

モジュールのリスト

表7-1に、この章で説明するOracle HTTP Serverの全モジュールを示します。

表7-1    Oracle HTTP Serverのモジュール 

Oracle HTTP Serverのモジュール 

mod_access 

mod_actions 

mod_alias 

mod_asis 

mod_auth 

mod_auth_anon 

mod_auth_dbm 

mod_autoindex 

mod_cern_meta 

mod_certheaders 

mod_cgi 

mod_define 

mod_digest 

mod_dir 

mod_dms 

mod_env 

mod_example 

mod_expires 

mod_fastcgi 

mod_headers 

mod_imap 

mod_include 

mod_info 

mod_log_agent 

mod_log_config 

mod_log_referer 

mod_mime 

mod_mime_magic 

mod_mmap_static 

mod_negotiation 

mod_oc4j 

mod_onsint 

mod_oradav 

mod_ossl 

mod_osso 

mod_perl 

mod_php 

mod_plsql 

mod_proxy 

mod_rewrite 

mod_security 

mod_setenvif 

mod_speling 

mod_status 

mod_unique_id 

mod_userdir 

mod_usertrack 

mod_vhost_alias 

mod_access

ホスト名やIPアドレスなど、リクエストの特性に基づいてサーバーへのアクセスが制御されます。

関連資料

Apache Serverマニュアルの「Module mod_access」 

mod_actions

ファイル・タイプやリクエスト方法に基づいてCGIスクリプトを実行できます。

関連資料

Apache Serverマニュアルの「Module mod_actions」 

mod_alias

リクエストの処理中にURLを操作できます。このモジュールには、URLとファイル・システムのパスとのマッピングおよびURLリダイレクション機能があります。

関連資料

Apache Serverマニュアルの「Module mod_alias」 

mod_asis

固有のHTTPヘッダーを含むファイルを送信できます。

関連資料

Apache Serverマニュアルの「Module mod_asis」 

mod_auth

ファイルベースのユーザー・リストによるユーザー認証ができます。

関連資料

Apache Serverマニュアルの「Module mod_auth」 

mod_auth_anon

保護付き領域への匿名ユーザー・アクセスができます(電子メール・アドレスをロギングできる匿名FTPと同様です)。

関連資料

Apache Serverマニュアルの「Module mod_auth_anon」 

mod_auth_dbm

DBMファイルを使用してユーザー認証を提供します。

mod_autoindex

ディレクトリ索引が自動的に生成されます。

関連資料

Apache Serverマニュアルの「Module mod_autoindex」 

mod_cern_meta

CERN(Conseil Europeen pour le Recherche Nucleaire) HTTPDメタファイルのセマンティクスがエミュレートされます。メタファイルは、サーバーがアクセスするファイルごとに通常のセットに加えて生成できるHTTPヘッダーです。

mod_certheaders

Oracle HTTP Serverの前でSSL接続が終了するリバース・プロキシが、SSLクライアント証明書情報などのSSL接続に関する情報を、Oracle HTTP ServerおよびOracle HTTP Serverの背後で動作しているアプリケーションに送信できるようにします。この情報は、HTTPヘッダーを使用してリバース・プロキシからOracle HTTP Serverに送信されます。情報はヘッダーから標準CGI環境変数に送信されます。SSL接続がOracle HTTP Serverによって終了する場合はmod_osslまたはmod_sslがこの環境変数を移入します。これはOracleモジュールです。

また、特定のリクエストがHTTP経由で受信される場合も、HTTPSリクエストとして扱うことができます。これは、SimulateHttpsディレクティブを使用して実行されます。

SimulateHttpsは、それ自体が含まれるコンテナ(<VirtualHost><Location>など)を使用し、受信されたこのコンテナに対するすべてのリクエストを、リクエストの受信に使用された実際のプロトコルに関係なく、HTTPS経由で受信されたものとして扱います。

mod_cgi

サーバーでCGIスクリプトを実行できます。

関連資料

Apache Serverマニュアルの「Module mod_cgi」 

mod_define

Defineディレクティブが有効になります。このディレクティブは、どの構成行でも拡張できる変数を定義します。Defineディレクティブには、デフォルトではサーバーにコンパイルされないことを意味するステータスExtensionがあります。

このモジュールには拡張API(EAPI)が必要です。Oracle HTTP Serverは、常にEAPIに対応しています。

このモジュールは、UNIXシステムでのみ使用可能です。

mod_digest

mod_auth_digestで使用されているものより古いバージョンのMD5 Digest認証仕様を使用して、ユーザー認証を提供します。mod_digestは、旧バージョンのブラウザ以外では動作しない可能性があります。

関連資料

Apache Serverマニュアルの「Module mod_digest」 

mod_dir

サーバーでスラッシュ(/)のリダイレクトを実行できます。ディレクトリ指定には後続のスラッシュを含める必要があります。後続のスラッシュがないURLリクエストを受信すると、mod_dirは後続のスラッシュが付いている同一のURLにリダイレクトします。次に例を示します。

http://myserver/documents/mydirectory

このURLは、次のURLにリダイレクトされます。

http://myserver/documents/mydirectory/

関連資料

Apache Serverマニュアルの「Module mod_dir」 

mod_dms

OracleのDynamic Monitoring Service(DMS)を使用してサイト・コンポーネントのパフォーマンスを監視できます。これはOracleモジュールです。

関連資料

『Oracle Application Serverパフォーマンス・ガイド』 

mod_env

環境変数を渡し、設定および設定解除することで、CGIスクリプトとサーバー・サイド・インクルード(SSI: Server Side Includes)ページの環境を制御できます。

ModifyEnvは、値を既存のENV変数の値の前または後ろに追加し、Oracle HTTP Server環境に渡します。次に使用方法を示します。

$FOO = "foo"の場合:

ModifyEnv FOO "bar" modifies the value of $FOO from "foo" to "foo:bar"

ModifyEnv FOO "+bar" modifies the value of $FOO from "foo" to "bar:foo"

$FOOが定義されていない場合:

Modify Foo "bar" sets the value of $FOO to "bar"

関連資料

Apache Serverマニュアルの「Module mod_env」 

mod_example

Apache APIを使用したモジュールの作成方法を示す例と参考情報が提供されます。実装時に、サーバーによってトリガーされるモジュール・コールバックのデモンストレーションが実行されます。

mod_expires

サーバーでExpires HTTPヘッダーを生成できます。このヘッダーは、ドキュメントの妥当性に関する情報をクライアントに提供します。期限切れ条件に基づいて、キャッシュされたコピーが期限切れになると、ドキュメントが情報源より再取得されます。

関連資料

Apache Serverマニュアルの「Module mod_expires」 

mod_fastcgi

FastCGIプロトコルをサポートします。このプロトコルにより、CGIアプリケーション用に実行中のサーバーのプールをメンテナンスできます。その結果、起動と初期化のオーバーヘッドがなくなります。

関連資料

Apache Serverマニュアルの「Module mod_fastcgi」 

mod_headers

HTTPレスポンス・ヘッダーをマージ、置換または削除できます。

関連資料

Apache Serverマニュアルの「Module mod_headers」 

mod_imap

サーバー側のイメージ・マップ処理ができます。

mod_include

SSI(サーバー・サイド・インクルード)ディレクティブ用のドキュメントを処理するフィルタを提供します。

関連資料

Apache Serverマニュアルの「Module mod_include」 

mod_info

すべてのインストール済モジュールとディレクティブの設定など、サーバー構成全体のサマリーが生成されます。

関連資料

Apache Serverマニュアルの「Module mod_info」 

mod_log_agent

クライアントのユーザー・エージェントをロギングできます。現在、mod_log_agentは使用されていません。かわりにmod_log_configを使用する必要があります。

mod_log_config

サーバー・アクティビティの、構成およびカスタマイズ可能なロギング機能が提供されます。ログの書式を選択し、ロギング対象となる個々のリクエストをその特性に基づいて選択または除外できます。

関連資料

Apache Serverマニュアルの「Module mod_log_config」 

mod_log_referer

サーバー上のドキュメントを参照するドキュメントのロギングが有効になります。現在、mod_log_refererは使用されていません。かわりにmod_log_configを使用する必要があります。

関連資料

Apache Serverマニュアルの「Module mod_log_referer」 

mod_mime

サーバーでファイル名からファイル・タイプを判断し、処理用のハンドラに関連付けできます。

関連資料

Apache Serverマニュアルの「Module mod_mime」 

mod_mime_magic

サーバーでは、ファイルの内容のうち数バイトを検査することでファイルのMIMEタイプを判断できます。mod_mimeでファイル・タイプを判断できない場合にこのモジュールを使用します。最初にmod_mimeによってファイルが処理されるように、mod_mimeが構成ファイル内でmod_mime_magicより前にあることを確認してください。

関連資料

Apache Serverマニュアルの「Module mod_mime_magic」 

mod_mmap_static

ファイルのリストがメモリーにマップされます。これは、頻繁にリクエストされるがあまり変更されないファイルに役立ちます。

mod_negotiation

サーバーによるコンテンツのネゴシエーション(クライアントの機能に基づくドキュメントの選択)が有効になります。

関連資料

Apache Serverマニュアルの「Module mod_negotiation」 

mod_oc4j

AJP 1.3プロトコルを使用して、Oracle HTTP Server(OHS)からOracle Containers for J2EE(OC4J)にリクエストがルーティングされます。これはOracleモジュールです。mod_oc4jは、デフォルトで有効になっています。

Oracle Application Server 10.1.3では、最小限の構成変更または構成変更なしで、OHSとOC4Jとの間のルーティング関係を作成または変更できるように、ルーティングIDおよびマウント・ポイントの検出が追加されています。

各OC4Jには、opmn.xmlからルーティングIDが割り当てられます。Oracle Process Management and Notification Server(OPMN)から各OC4Jに、それぞれのルーティングIDを含む通知が送信されます。ルーティングIDを受信すると、mod_OC4JはOC4JのルーティングIDをOHSのルーティングIDと比較し、OC4Jおよび合致するルーティングIDを、動的にルーティング表に追加します。

インストール後、OHSは、opmn.xmlのルーティングIDを使用するようにデフォルトで構成されます。デフォルトのルーティングIDはg_rt_idです。OHSは、新しくインストールされたias-instanceのすべてのOC4Jにルーティングします。これは、すべてのOC4Jが同じデフォルトのルーティングIDを持つためです。クラスタに1つ以上のias-instanceが含まれている場合、OHSはデフォルトのルーティングIDを持つすべてのOC4Jにルーティングします。

Oracle HTTP ServerのルーティングIDは、次の構成ファイルのいずれかで構成できます。

opmn.xmlでルーティングIDを構成するには、Oracle HTTP Serverのias_componentセクションに次の内容を入力します。

<module_data>
   <category id="start-parameters">
      <data id="routing-id" value="my_id"/>
   </category>
</module-data>

mod_oc4j.confでルーティングIDを構成するには、Oc4jRoutingIDを参照してください。

ルーティング・モードを指定するには、Oc4jRoutingModeを参照してください。

関連資料

 

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

mod_oc4jの構成

この後の項では、httpd.confおよびmod_oc4j.conf内のすべての関連ディレクティブについて説明します。また、サンプル構成も示します。

mod_oc4jの構成ファイルおよびディレクティブ

mod_oc4jのディレクティブは、mod_oc4j.conf内に保持されます。mod_oc4j.confファイルは、次のディレクティブを使用して、デフォルトでhttpd.confファイルにインクルードされます。

include "ORACLE_HOME/Apache/Apache/conf/mod_oc4j.conf"

mod_oc4jの構成には、次のディレクティブを使用します。

LoadModule

mod_oc4jモジュールをロードします。

カテゴリ   

構文 

LoadModule oc4j_module mod_oc4j shared library file 

必須 

あり 

デフォルト 

  • UNIXの場合: なし

  • Windowsの場合: LoadModule oc4j_module modules¥ApacheModuleOc4j.dll

 

例 

  • UNIXの場合: LoadModule oc4j_module mod_oc4j.so

  • Windowsの場合: LoadModule oc4j_module modules¥ApacheModuleOc4j.dll

 

Oc4jCacheSize

OC4J接続キャッシュのサイズを指定します。

カテゴリ   

構文 

Oc4jCacheSize <size of connection cache> 

必須 

なし 

デフォルト 

この値は、プラットフォーム(UNIX/WIN32)、Oracle HTTP Serverとプラグインのバージョンおよびその他の構成設定に基づいて計算されます。 

例 

Oc4jCacheSize 64 

使用方法 

各Oracle HTTP ServerプロセスでキャッシュできるOC4J同時接続の数を指定します。このディレクティブを0(ゼロ)に設定すると、mod_oc4jとOC4Jインスタンス間の永続的な接続が無効になります。 

Oc4jConnTimeout

使用されていない接続の最大アイドル時間(秒単位)を定義します。

カテゴリ   

構文 

Oc4jConnTimeout <timeout value for AJP13 connections> 

必須 

なし 

デフォルト 

なし 

例 

Oc4jConnTimeout 10 

使用方法 

mod_oc4jとOC4J間に接続をタイムアウトするファイアウォールがある場合に役立ちます。ファイアウォールで使用されるタイムアウト値より小さい値に設定する必要があります。 

Oc4jCookieExtension

JSESSIONID_<cookie_name_extension>をCookie内のOC4JのセッションIDとして使用するようにmod_oc4jに対して指示します。

カテゴリ   

構文 

Oc4jCookieExtension <cookie_name_extension> 

必須 

なし 

デフォルト 

なし 

例 

Oc4jCookieExtension MYEXT  

使用方法 

Cookie内のOC4JのセッションIDとして、JSESSIONIDのかわりにJSESSIONID_<cookie_name_extension>を使用するようにmod_oc4jに対して指示します。前述の例では、JSESSIONID_MYEXTがOC4JのセッションIDとして使用されます。 

Oc4jExtractSSL

SSL環境変数の受渡しを制御します。

カテゴリ   

構文 

Oc4jExtractSSL On|Off 

必須 

なし 

デフォルト 

Off 

例 

Oc4jExtractSSL On 

使用方法 

mod_oc4jに対して、3つのSSL環境変数SSL_CLIENT_CERTSSL_CIPHERおよびSSL_SESSION_IDをOC4Jに渡すかどうかを決定するように指示します。SSL環境変数をOC4Jにコピーする操作にはパフォーマンス・コストが関連するため、環境変数をOC4Jで使用可能にする必要がある場合にのみOnに設定してください。  


注意

mod_oc4jが構成されている場合は、mod_osslmod_ossoによって設定された一部のセキュリティ環境パラメータが、リクエスト時にOC4Jに渡されます。  


Oc4jEnvVar

mod_oc4jに対して、一部の環境変数をOracle HTTP ServerからOC4Jに渡すように指示します。

カテゴリ   

構文 

Oc4jEnvVar environment variable name [environment variable default value] 

必須 

なし 

デフォルト 

なし 

例 

Oc4jEnvVar MY_ENV1

Oc4jEnvVar MY_ENV2 myenv_value  

使用方法 

Oc4jEnvVarエントリごとに、Oracle HTTP ServerディレクティブPassEnvも環境変数を使用して構成する必要があります。構成しない場合、mod_oc4jは値の取得と受渡しができません。

複数のエントリを指定できます。環境変数のデフォルト値を2番目のパラメータとして指定する方法と、何も指定しない方法があります。環境変数の値がOracle HTTP Server環境で見つかると、その値がOC4Jに渡されます。環境変数の値が見つからない場合でも、デフォルト値が設定されていれば、その値が渡されます。

この環境変数の値がOracle HTTP Server環境で見つからず、デフォルト値が設定されていない場合、OC4Jには何も渡されません。

mod_oc4jが一部の構成済環境変数を各リクエストでOC4Jに渡すと、パフォーマンスが低下します。  


注意

mod_oc4jが構成されている場合は、mod_osslmod_ossoによって設定された一部のセキュリティ環境パラメータが、リクエスト時にOC4Jに渡されます。  


Oc4jMount

OC4Jにより、ONS通知でマウント・ポイントが通知されます。これにより、ルーティングするOC4Jのマウント・ポイントを、mod_OC4Jが動的に検出および更新できます。このため、静的マウント・ポイントの構成が必要なくなり、mod_OC4Jは、Oracle HTTP Serverを停止および再起動することなくマウント・ポイントの構成を更新できます。静的マウント・ポイントを使用する場合は、次の構成情報を使用できます。また、Oc4jRoutingModeをstaticに設定する必要があります。

mod_oc4jに対して、特定のパスを含むリクエストを宛先にルーティングするように指示します。宛先には、単一のOC4JプロセスまたはOC4Jインスタンスのセットを指定できます。

カテゴリ   

構文 

Oc4jMount path [destination]

pathはコンテキストのルートです。pathパラメータには、OC4J構成ファイルxxx-web-site.xmlで指定されているものと同じアプリケーション・コンテキストのルートを指定する必要があります。<web-site>要素の例では、アプリケーション・コンテキストのルートは太字で示されています。

<default-web-app application="default" name="defaultWebApp" root="/j2ee"/>

宛先のタイプは、次のいずれかです。

  • ajp13_dest

  • cluster_dest(デフォルトの宛先タイプ)

  • instance_dest

宛先を指定しない場合は、デフォルトのOC4Jインスタンス名homeが使用されます。次に例を示します。

Oc4jMount /myApp/*

このディレクティブの結果は、次のディレクティブと同じになります。

Oc4jMount /myApp/* cluster://local_ias_cluster_name:home 

必須 

なし 

デフォルト 

なし 

例 

Oc4jMount /app01/* ajp13://my-sun:8888

Oc4jMount /app01/* ajp13://my-sun:3301

Oc4jMount /app01/* ajp13://my-sun:3301,my-sun:3302

Oc4jMount /app02/*

Oc4jMount /app03/* home

Oc4jMount /app04/* ias_cluster_1:home

Oc4jMount /app05/* cluster://ias_cluster_1:home,ias_cluster_2:home

Oc4jMount /app06/* instance://ias_instance_1:home

Oc4jMount /app07/* instance://ias_instance_1:home_1,ias_instance_2:home_2

Oc4jMount /app08/* instance://my-sun:ias_instance_1:home 

使用方法 

ルーティングの宛先ごとに例を示します。

ajp13_dest

Oc4jMount <path> ajp13://my-sun:8888

pathで指定されたパターンを持つリクエストが、AJP 1.3プロトコルを使用してmy-sun、ポート8888でリスニング中のOC4Jプロセスにルーティングされます。(my-sunとポート8888は、OC4J構成ファイルxxx-web-site.xmlで指定されているAJP 1.3プロトコルのホストとポートです。)

Oc4jMount <path> ajp13://host:<ajp13 port>,host:<ajp13 port>

pathに指定したパターンを持つリクエストが、指定した1つ以上のOC4Jプロセスにロード・バランスされます。OC4Jプロセスはカンマで区切ってください。

cluster_dest

Oc4jMount <path> cluster: //ias_cluster_name:OC4J_instance_name, ias_ cluster_name:OC4J_instance_name...

pathに指定したパターンを持つリクエストが、指定した1つ以上のOC4Jインスタンスにロード・バランスされます。インスタンスはカンマで区切ってください。

Oracle Application Server Cluster Nameはオプションです。指定する場合、宛先のOC4Jインスタンスは指定したクラスタ内にある必要があります。Oracle Application Server Cluster Nameを指定しない場合、宛先のOC4JインスタンスはローカルのOracle Application Serverクラスタ内にある必要があります。

instance_dest

Oc4jMount <path> instance: //host:ias_instance_name:OC4J_instance_name, host:ias_instance_name:OC4J_instance_name...

<path>に指定したパターンを持つリクエストが、指定した1つ以上のOC4Jインスタンスにロード・バランスされます(インスタンスはカンマで区切ってください)。

ホスト名はオプションです。ホスト名を指定する場合、宛先のOC4Jインスタンスはそのホストに存在するOracle Application Serverインスタンス内にある必要があります。ホスト名を指定しない場合、宛先のOC4Jインスタンスはどのホストにあってもかまいません。  

Oc4jMountCopy

ベース・サーバーからマウント・ポイントをコピーします。

カテゴリ   

構文 

Oc4jMountCopy On|Off 

必須 

なし 

デフォルト 

On 

例 

Oc4jMountCopy Off 

使用方法 

mod_oc4jに対して、このディレクティブを指定した仮想ホストにベース・サーバーからOc4jMountポイントをコピーするかどうかを指示します。値がOnの場合は、ベース・サーバー内に構成されたすべてのOc4jMountポイントが仮想ホストにコピーされます。値がOffの場合は、仮想ホストの有効範囲内で構成されたOc4jMountポイントのみが使用されます。  

Oc4jRoutingID

Oracle HTTP Serverには、Oc4jRoutingIDを使用して、1つ以上のルーティングIDを割り当てることができます。Oc4jRoutingIDのルーティングIDのいずれかと一致するものが含まれたOC4Jからの通知を受信すると、mod_oc4jはルーティング表を更新し、OC4Jへのルーティングを開始します。


警告

Oracle HTTP ServerのルーティングIDは、opmn.xmlおよびmod-oc4j.confで構成できます。両方でOracle HTTP ServerのルーティングIDを構成すると、エラーとみなされてOracle HTTP Serverが起動しません。 


カテゴリ   

構文 

Oc4jRoutingID 

パラメータ・タイプ 

文字列 

デフォルト 

なし 

使用可能な値 

comma delimited list of routing IDs 

例 

Oc4jRoutingID myroutingid1,myroutingid2, ... 

Oc4jRoutingIDCopy

仮想サーバーが親のルーティングIDリストを仮想サーバーのリストで上書きするか結合するかを指定します。

カテゴリ   

パラメータ名 

Oc4jRoutingIDCopy 

パラメータ・タイプ 

文字列 

使用可能な値 

On/OffOnは、仮想サーバーのルーティングIDリストと親のリストの結合を指定します。Offは、仮想サーバーのルーティングIDリストで親のリストを上書きすることを指定します。)  

デフォルト値 

On 

例 

Oc4jRoutingIDCopy On 

Oc4jRoutingMode

Oc4jRoutingModeは、使用するルーティング・モードのタイプを指定します。ルーティング・モードには次のものがあります。

mod_oc4j.confでOc4jRoutingModeをStaticに設定する場合、次を追加する必要があります。

Oc4jMount /em/*home
Oc4jMount /em home

このパラメータを追加しないと、Application Server Controlコンソールにアクセスできません。mod_oc4j.confでの完全なエントリは次のようになります。

LoadModule oc4j_module libexec/mod_oc4j.so
Oc4jRoutingMode Static

<IfModule mod_oc4j.c>
Oc4jMount /em/*home
Oc4jMount /em home
</IfModule>
Oc4jUseOHSErrors

OC4Jから範囲内のエラーが返されたときに、ユーザーがOracle HTTP Serverのエラー・ページを使用して、エラー範囲を構成することを許可します。

カテゴリ   

構文 

Oc4jUseOHSErrors On|Off/min-max 

必須 

なし 

デフォルト 

Off 

例 

Oc4jUseOHSErrors 400-410 

使用方法 

Oc4jUseOHSErrors Off: Oc4jUseOHSErrorsを指定しない場合のデフォルト値です。すべてのエラー値について、OC4Jのエラー・ページがクライアントに返されます。

Oc4jUseOHSErrors on: HTTPエラー400〜500のOracle HTTP Serverのエラー・ページを返します。

Oc4jUseOHSErrors min-max: HTTPエラーの最小と最大を指定します。たとえば、Oc4jUseOHSErrors 400-410と設定すると、HTTPエラー400〜410のOracle HTTP Serverのエラー・ページがOC4Jから返されます。 

mod_oc4jのサンプル構成

この項では、mod_oc4jのサンプル構成について説明します。

例7-1    mod_oc4jのサンプル構成

この構成では、URI /servlet/で始まるすべてのリクエストが、OC4Jプロセスのデフォルト・インスタンスにマウントされます。

httpd.confファイルに次のエントリを作成します。

Oc4jMount /servlet/* 

例7-2    mod_oc4jのサンプル構成

この構成では、Oc4jMountディレクティブのかわりに<Location>コンテナ・ディレクティブを使用して、例7-1の構成と同じ動作を実行します。

httpd.confファイルに次のエントリを作成します。

<Location /servlet> 
    SetHandler oc4j-handler 
</Location> 


注意

この構成では、リクエストはデフォルトのOC4Jインスタンスにのみルーティングされます。 


例7-3    mod_oc4jのサンプル構成

この構成では、URI /servlet/または/j2ee/で始まるすべてのリクエスト、およびすべてのJSPページが、OC4JプロセスのデフォルトのOC4Jインスタンスにマウントされます。

mod_oc4j.confファイルに次のエントリを作成します。

Oc4JMount /servlet/*
Oc4JMount /*.jsp
Oc4JMount /j2ee/*

例7-4    mod_oc4jのサンプル構成

この構成では、次のようにマウントが行われます。

mod_oc4jを使用するロード・バランシング

メトリックベースのロード・バランシングなど、mod_oc4jロード・バランシングについては、付録D「mod_oc4jを使用するロード・バランシング」で詳しく説明しています。

mod_oc4JとOC4J間でのSSLの有効化

オプションで、mod_oc4jとOC4J間の通信に直接SSLサポートを指定できます。このためには、mod_oc4j側とOC4J側でSSLを有効にする必要があります。

mod_oc4jでのSSLの有効化

mod_oc4jに対してSSLを有効にするには、次のディレクティブをmod_oc4j.confに追加します。

Oc4jEnableSSL

mod_oc4jがOC4Jプロセスとの通信時にSSLを使用する必要があるかどうかを示します。Oc4jiASPTActiveがOnに構成されている場合、このディレクティブはOnに構成しないでください。

カテゴリ   

パラメータ名 

Oc4jEnableSSL 

パラメータ・タイプ 

文字列 

有効値 

OnまたはOff 

デフォルト値 

Off 

Oc4jSSLWalletFile

Oc4jEnableSSLがOnに設定されている場合、このディレクティブはOC4JプロセスとのSSL通信に使用されるSSL証明書を含む、Oracle Walletファイルの位置を指定します。

カテゴリ   

パラメータ名 

Oc4jSSLWalletFile 

パラメータ・タイプ 

文字列 

有効値 

OC4JプロセスとのSSL接続確立時に使用されるSSL証明書を含むWalletディレクトリの場所へのパス。 

デフォルト値 

該当なし 

Oc4jSSLWalletPassword

Oc4jEnableSSLがOnに設定されているとき、この値はWalletファイルを開く際の認証に使用される、クリアテキスト・パスワードです。この値は、iasobfユーティリティを使用して取得されます。

カテゴリ   

パラメータ名 

Oc4jSSLWalletPassword 

パラメータ・タイプ 

文字列 

有効値 

Oc4jSSLWalletFileにより指定されたWalletファイルを開く際、認証に使用されるクリアテキスト・パスワード。 

デフォルト値 

該当なし 

関連資料

 


注意

Walletパスワードは使用されていません。このディレクティブを使用すると、Oracle HTTP Serverログに警告メッセージが生成されます。Walletを保護するために、かわりに自動ログインのWalletを使用することをお薦めします。 


OC4JでのSSLの有効化

mod_oc4jとOC4Jの間でSSL通信を有効にするには、OC4J側でもSSLを有効にする必要があります。

関連資料

OC4J側でSSLを有効にする方法については、『Oracle Containers for J2EEセキュリティ・ガイド』を参照してください。 

一般的なApacheとOracle Application Serverの統合

一般的なApacheは、Oracle Application Server 10gリリース3(10.1.3)と統合できます。これにより、Oracle HTTP Serverおよびmod_oc4jを使用するリクエストのルーティングと同じ方法で、一般的なApacheからOC4Jにリクエストをルーティングできます。サポートされている一般的なApacheは、バージョン1.3.xxおよびバージョン2.0です。

関連項目

「一般的なApacheとOracle Application Serverの統合」 

mod_onsint

Oracle Notification Service(ONS)およびOracle Process Manager and Notification Server(OPMN)を使用した統合サポートを提供します。これはOracleモジュールです。

mod_onsintを使用するメリット

mod_onsintは次の機能を提供します。

UNIXとWindowsでの実装上の差異

UNIXとWindowsではOracle HTTP Serverのアーキテクチャに違いがあるため、これらのプラットフォームではmod_onsintの実装に多少の違いがあります。

UNIXでは、mod_onsintはモジュールの初期設定時にプロセスを作成します。このプロセスでは、親プロセスの監視とONSメッセージの送受信を行います。ONS通知に関心がある他のモジュールからのコールバック・ファンクションは、このプロセス内に作成されます。この情報を他のOracle HTTP Serverの子プロセスと共有するには、メモリー・マップ・ファイルなどのプロセス間通信を使用する必要があります。UNIX上で親プロセスの障害が検出されると、すべての子プロセスにシグナルが送信され、すべての子プロセスがシャットダウンします。

Windowsでは、Oracle HTTP Serverは親プロセス、および全HTTPリクエストを処理するマルチスレッドの子プロセスという2つのプロセスのみで構成されます。このモデルでは、mod_onsintは子プロセス内のスレッドとして実行されます。このスレッドが、親プロセスの監視とONSメッセージの送受信を行います。ONS通知に関心がある他のモジュールからのコールバック・ファンクションは、この子プロセス内に作成されます。親プロセスの障害が検出された場合、mod_onsintは子プロセスを終了し、Oracle HTTP Serverを事実上停止します。

mod_onsintに対して構成できるOpmnHostPortというオプションのディレクティブがあります。このディレクティブを使用すると、mod_onsintが動作中のOracle HTTP Serverインスタンスをpingするため、OPMNが使用するホスト名とポートを指定できます。OpmnHostPortが指定されていないと、mod_onsintはHTTPポートを自動的に選択します。状況によっては、OPMNがリスナーのpingに使用するHTTPポートとホスト名に特定のものを選択する場合があります。

OpmnHostPortは、次のような、OPMNに渡す値を指定する構文を取ります。

OpmnHostPort [<http> | <https>://]<host>:<port>

たとえば、次の行は、OPMNがこのリスナーをpingするために、HTTPを使用し、localhostインタフェースとポート7778を使用する必要があることを指定しています。

OpmnHostPort http://localhost:7778

このディレクティブは、httpd.confファイルのグローバル・セクションに指定する必要があります。ロケーション・コンテナの仮想ホストに埋め込むことはできません。インストール後、OpmnHostPortディレクティブはdms.confに置かれます。このディレクティブは、特殊なローカルホスト専用仮想ホストである、Oracle HTTP Serverの診断ポートに対するOPMNを指します。Application Server ControlコンソールからのOPMNのpingやDMSのメトリック・リクエストなど、内部診断リクエストはログに記録されません。

mod_oradav

このOracleモジュール(C言語で記述されたOCIアプリケーション)は、mod_davの実装の拡張版であり、Oracle HTTP Serverと統合されています。mod_oradavでは、ローカル・ファイルまたはOracle Databaseに対する読取りと書込みができます。Oracle Databaseには、mod_oradavがWebDAVアクティビティをデータベース・アクティビティにマップするためにコールするOraDAVドライバ(ストアド・プロシージャ・パッケージ)が必要です。実際には、WebDAVクライアントはmod_oradavによりOracle Databaseに接続し、内容の読取りと書込み、および各種スキーマ内のドキュメントの問合せとロックを実行できます。

Oracle HTTP Serverの標準ディレクティブを使用して、Oracle Databaseを使用するようにmod_oradavを構成できます。mod_oradavでは、コンテンツ管理タスクを実行するために、他のモジュール・コード(mime_magicなど)をすぐに活用できます。ほとんどのOraDAV処理アクティビティでは、コンテンツ・プロバイダとの間でコンテンツをストリーム化する必要があり、mod_oradavではOracle HTTP Server内でOCIストリーム・ロジックが直接使用されます。

mod_oradavを構成するには、httpd.confにある<Location>コンテナ・ディレクティブにパラメータを入力します。<Location>コンテナ・ディレクティブは、DAV対応のURLを指定します。DAVキーワードの後に、値Onを指定します。この値は、mod_davに対してコンテンツにローカル・ファイル・システムを使用するように指示します。

次の例では、Webサーバーのドキュメント・ディレクトリ(デフォルトではhtdocs)のサブディレクトリmyfilesと階層内のmyfilesのすべてのサブディレクトリを、DAVが使用可能なディレクトリとして指定します。(myfilesまたはそのサブディレクトリには、シンボリック・リンクを定義しないように注意してください。)

<Location /myfiles>
   DAV On
</Location>

関連資料

 

mod_oradavを使用してデータベース・スキーマにアクセスし、サード・パーティ・ツール(Adobe GoLiveやMacromedia Dreamweaverなど)とOracle interMediaからのアクセスを可能にする方法は、次のOTNで入手可能なOraDAV情報を参照してください。

http://www.oracle.com/technology/index.html

mod_ossl

Oracle HTTP Serverに対して厳密な暗号化を有効にします。このOracleモジュールは、サーバーがSSLを使用できるようにするOracle HTTP Serverへのプラグインです。これは、OpenSSLモジュールのmod_sslと非常によく似ています。ただし、OpenSSLモジュールとは対照的に、mod_osslはSSLをサポートするOracleのSSL実装のバージョン3を基盤とし、同時にCerticomおよびRSAセキュリティ・テクノロジに基づいています。

関連資料

 

mod_osso

Oracle HTTP Serverでシングル・サインオンが有効になります。Oracleモジュールのmod_ossoでは、受信リクエストを検査して、リクエストされたリソースが保護されているかどうかを判断し、保護されている場合はユーザー用のOracle HTTP Server Cookieを取得します。


関連資料

強制認証の詳細は、『Oracle Identity Managementアプリケーション開発者ガイド』を参照してください。

シングル・サインオンの詳細は、『Oracle Application Server Single Sign-On管理者ガイド』を参照してください。 


mod_perl

Oracle HTTP ServerにPerlインタプリタが埋め込まれます。これにより、起動時のオーバーヘッドが排除され、モジュールをPerlで記述できます。Oracle Application Serverでは、Perlバージョン5.6.1を使用します。

関連資料

『Apache mod_perl Guide』 

データベース使用上の注意

この項では、データベースを使用するmod_perlユーザー向けに、ローカル・データベース接続をテストし、文字構成を設定する方法について説明します。

Perlを使用したデータベース・アクセス

次の項では、Perlを使用したデータベース・アクセスについて説明します。Perlスクリプトは、Oracle用のDBI/DBDドライバを使用してデータベースにアクセスします。DBI/DBDドライバはOracle Application Serverに含まれています。このドライバは、Oracle Call Interface(OCI)をコールしてデータベースにアクセスします。

DBIが機能するには、httpd.confでDBIが有効である必要があります。これには次の手順を実行します。

  1. テキスト・エディタを使用してhttpd.confを編集します。

  2. PerlModule Apache::DBIを検索します。

  3. PerlModule Apache::DBIという行のコメントを解除します。

  4. Application Server Controlコンソールまたは次のコマンドを使用して、Oracle HTTP Serverを再起動します。

    ORACLE_HOME/opmn/bin> opmnctl [verbose] restartproc ias-component=HTTP_Server
    

ファイルがORACLE_HOME/Apache/Apache/cgi-binにコピーされます。

例7-5    Perlを使用したデータベース・アクセス

#!<ORACLE_HOME>/perl/bin/perl -w 
  use DBI; 
  my $dataSource = "host=<hostname.domain>;sid=<orclsid>;port=1521"; 
  my $userName = "scott"; 
  my $password = "tiger"; 
  my $dbhandle = DBI->connect("dbi:Oracle:$dataSource", $userName, $password) 
    or die "Can't connect to the Oracle Database: $DBI::errstr\n"; 
  print "Content-type: text/plain\n\n"; 
  print "Database connection successful.\n"; 
  ### Now disconnect from the database 
  $dbhandle->disconnect 
    or warn "Database disconnect failed; $DBI::errstr\n"; 
  exit;

DBIスクリプトには次の場所からアクセスできます。

http://<hostname.domain>:<port>/cgi-bin/<scriptname>
http://<hostname.domain>:<port>/perl/<scriptname>

スクリプトにuse DBIではなくuse Apache::DBIと指定されている場合、このスクリプトを実行できるのは、http://<hostname.domain>:<port>/perl/<scriptname>からのみです。

データベース接続のテスト

ローカル・シード・データベースのデータベース接続をテストするPerlスクリプトの例を次に示します。このスクリプトを使用して別のデータベース接続をテストするには、scott/tigerをターゲット・データベースのユーザー名とパスワードに置き換える必要があります。

例7-6    ローカル・シード・データベースの接続テスト用サンプルPerlスクリプト

##### Perl script start ###### 
use DBI;
print "Content-type: text/plain\n\n"; 
$dbh = DBI->connect("dbi:Oracle:", "scott/tiger", "") || die $DBI::errstr; 
$stmt = $dbh->prepare("select * from emp order by empno")|| die $DBI::errstr; $rc = $stmt->execute() || die $DBI::errstr; while (($empno, $name) = $stmt->fetchrow()) { print "$empno $name\n"; } warn $DBI::errstr if $DBI::err; die "fetch error: " . $DBI::errstr if $DBI::err; $stmt->finish() || die "can't close cursor"; $dbh->disconnect() || die "cant't log off Oracle"; ##### Perl script End ######

SQL NCHARデータ型の使用

SQL NCHARデータ型は、Oracle9i以降さらに改良され、信頼性の高いUnicodeデータ型と呼ばれています。NCHARNVARCHAR2およびNCLOBなどのSQL NCHARデータ型を使用すると、あらゆるUnicode文字をデータベースのキャラクタ・セットに関係なく格納できます。これらのデータ型のキャラクタ・セットは、各国語キャラクタ・セット、つまりAL16UTF-16またはUTF8で指定します。

関連資料

SQL NCHARデータ型の詳細は、Oracle9iのマニュアルを参照してください。 

このリリースのDBD::OracleSQL NCHARデータ型をサポートしており、データ・バインド用の文字構成を指定できるようにドライバ拡張機能が用意されています。次のスクリプトに、SQL NCHARデータへのアクセス例を示します。

例7-7    SQLNCHARデータにアクセスするためのサンプル・スクリプト

# declare to use the constants for character forms
use DBD::Oracle qw(:ora_forms);
# connect to the database and get the database handle
$dbh = DBI->connect( ... );
# prepare the statement and get the statement handle
$sth = $dbh->prepare( 'SELECT * FROM TABLE_N WHERE NCOL1 = :nchar1' );
# bind the parameter of a NCHAR type
$sth->bind_param( ':nchar1', $param_1 );
# set the character form to NCHAR
$sth->func( { ':nchar1' => ORA_NCHAR } , 'set_form' );
$sth->execute;

例7-7に示すように、set_formファンクションはプライベート・ファンクションとして提供されており、標準のDBI func()メソッドで起動できます。このファンクションは、どのプレースホルダをどの文字構成に関連付けるかを指定する匿名ハッシュを取ります。文字構成の有効値は、ORA_IMPLICITまたはORA_NCHARのいずれかです。文字構成をORA_IMPLICITに設定すると、アプリケーションのバインド・データはデータベースのキャラクタ・セットに変換され、ORA_NCHARに設定すると各国語キャラクタ・セットに変換されます。デフォルト構成はORA_IMPLICITです。

デフォルトのキャラクタ・セット構成を指定できるように、次のようにもう1つのファンクションも用意されています。

# specify the default form to be NCHAR
$dbh->func( ORA_NCHAR, 'set_default_form' );

このコールの後は、set_formのコールで特に指定しないかぎり、すべてのパラメータの構成がORA_NCHARになります。set_formファンクションとは異なり、これはデータベース・ハンドルのファンクションであるため、指定したデフォルト構成のデータベース・ハンドルの各文は、デフォルトで選択した構成であることに注意してください。

set_form

このファンクションでは、パラメータの文字構成を設定します。有効な構成は、ORA_IMPLICIT(デフォルト)またはORA_NCHARです。この定数は、DBD::Oracleではora_formsとして使用できます。

例7-8    set_formのサンプル

# a declaration example for the constants ORA_IMPLICIT and ORA_NCHAR
use DBD::Oracle qw(:ora_forms);
# set the character form for the placeholder :nchar1 to NCHAR
$sth->func( { ':nchar1' => ORA_NCHAR } , 'set_form' );
# set the character form using the positional index
$sth->func( { 2 => ORA_NCHAR } , 'set_form' );
# set the character form for multiple placeholders at once
$sth->func( { 1 => ORA_NCHAR, 2 => ORA_NCHAR } , 'set_form' );
set_default_form

このファンクションでは、データベース・ハンドルのデフォルトの文字構成を設定します。

例7-9    データベース・ハンドルのデフォルトの文字構成

$dbh->func( ORA_NCHAR , 'set_default_form' );

mod_php

PHP(PHP: Hypertext Preprocessorの略)は、オープン・ソースで広く使用されている汎用クライアント側スクリプト言語で、標準HTMLに埋め込まれます。この言語は、動的HTMLページの生成に使用されます。Oracle HTTP Serverでは、mod_phpを介してPHPサポートが提供されます。また、Oracle Databaseサポートも有効になっています。使用されるPHPはバージョン4.3.9です。


注意

phpinfo()は、PHPおよびOracle HTTP Server間隔の現在の状態について、機密性が非常に高い情報を出力します。PHPやphpinfo()に不慣れなユーザーは、phpinfo()というPHPスクリプトをパブリックでアクセスできる状態のままにしておかないように注意してください。

phpinfo()は、デバッグによく使用されます。デバッグの終了後には、このようなデバッグ・スクリプトが誤ってオープンの状態のままになっている可能性があります。 


関連資料

  • http://php.net/

  • 最初から構築したり、詳細情報が必要な場合は、http://www.oracle.com/technology/tech/opensource/index.htmlでドキュメント「Using PHP with Oracle HTTP Server (OHS)」を参照してください。

 

mod_plsql

Oracle HTTP ServerはOracle Databaseに接続され、Oracleストアド・プロシージャを使用してWebアプリケーションを作成できるようになります。これはOracleモジュールです。

Web対応のPL/SQLアプリケーションにアクセスするには、mod_plsql用PL/SQLデータベース・アクセス記述子(DAD)を構成します。DADは、mod_plsqlがデータベース・サーバーに接続してHTTPリクエストを実行する方法を指定する値のセットです。DADには、接続詳細の他、データベースでの各種操作およびmod_plsql全般にとって重要な構成パラメータが含まれています。PL/SQL Web Toolkitを使用するWeb対応のPL/SQLアプリケーションでは、そのアプリケーションを起動するDADを作成する必要があります。


注意

詳細は、『Oracle Application Server mod_plsqlユーザーズ・ガイド』を参照してください。 


DADの作成

DADを作成するには、次の手順を実行します。

  1. DAD構成ファイルORACLE_HOME/Apache/modplsql/conf/dads.confを編集します。

  2. 次の形式のDADを追加します。

    1. PL/SQL Webアプリケーションへのアクセスに使用する仮想パスを定義するOracle HTTP Serverの<Location>ディレクティブ。このディレクティブは、Locationに適用されるディレクティブのグループを囲みます。

      たとえば、<Location /myapp>ディレクティブは、http://host:port/myapp/のようなURLを介してPL/SQL Webアプリケーションを起動するために使用する、/myappという仮想パスを定義します。


      注意

      古いバージョンのmod_plsqlでは、常に接頭辞/plsを付けて仮想パスにマウントしていました。新しいバージョンではこの制限は削除されましたが、古いPL/SQLアプリケーションによって制限されてしまう場合もあります。 


    2. Oracle HTTP Serverに対して、Locationで定義された仮想パスに対するリクエストをmod_plsqlが処理できるように指示するOracle HTTP ServerのSetHandlerディレクティブ。

      SetHandler pls_handler
      
    3. <Location>ディレクティブのコンテキストで許可されるその他のOracle HTTP Serverのディレクティブ。通常は、次のディレクティブが使用されます。

      Order deny,allow
      Allow from all
      AllowOverride None
      
    4. 1つ以上のmod_plsql固有のディレクティブ。次に例を示します。

      PlsqlDatabaseUsername        scott
      PlsqlDatabasePassword        tiger
      PlsqlDatabaseConnectString   orcl
      PlsqlAuthenticationMode      Basic
      
    5. Locationのディレクティブのグループをクローズして、1つのDADを定義するOracle HTTP Serverの</Location>ディレクティブ。

  3. 編集内容を保存します。

  4. ORACLE_HOME/Apache/modplsql/confにあるdadTool.plスクリプトを実行することで、DADパスワードを不明瞭化します。

    関連項目

    不明瞭化を実行するための手順は、「PlsqlDatabasePassword」を参照してください。 

  5. Application Server Controlコンソールまたは次のコマンドを使用して、Oracle HTTP Serverを再起動します。

    ORACLE_HOME/opmn/bin> opmnctl [verbose] restartproc ias-component=HTTP_Server
    

dads.confに一意の名前を持つ他のLocationsを定義することで、追加のDADを作成することもできます。

構成ファイル

mod_plsqlの構成パラメータは、次の3つの構成ファイル内に含まれます。

plsql.conf

このファイルには、mod_plsqlをOracle HTTP ServerにロードするLoadModuleディレクティブ、mod_plsqlのグローバル設定およびdads.confcache.confのインクルード・ディレクティブが含まれています。このファイルは、Oracle HTTP Server構成ファイルによりインクルードされます。ファイル名は、UNIXの場合はORACLE_HOME/Apache/Apache/conf/oracle_apache.conf、Windowsの場合はORACLE_HOME¥Apache¥Apache¥conf¥oracle_apache.confです。この構成ファイル自体がOracle HTTP Serverプライマリ構成ファイルhttpd.confにインクルードされます。

関連項目

「oracle_apache.conf」 

dads.conf

このファイルには、PL/SQLデータベース・アクセス記述子(DAD)の構成パラメータが含まれています。DADは、mod_plsqlがデータベース・サーバーに接続してHTTPリクエストを実行する方法を指定する値のセットです。

cache.conf

このファイルには、mod_plsqlに実装されたファイル・システム・キャッシュ機能の構成の設定が含まれています。この構成ファイルが関係するのは、PL/SQLアプリケーションがOWA_CACHEパッケージを使用して、ファイル・システム内の動的生成コンテンツをキャッシュする場合のみです。

関連資料

mod_plsqlのキャッシュ機能の詳細は、『Oracle Application Server mod_plsqlユーザーズ・ガイド』を参照してください。 

構成パラメータ

表7-2mod_plsqlの構成パラメータの一覧を示します。各パラメータは後半の項で詳しく説明します。

構成パラメータに値を指定するときは、Oracle HTTP Serverの値を指定する規則に従ってください。たとえば、値の中にスペースが含まれている場合は、値を二重引用符で囲む必要があります。たとえば、PlsqlNLSLanguage "TRADITIONAL CHINESE_TAIWAN.UTF8"のようになります。

複数行ディレクティブにより、同じディレクティブをDAD内に複数回指定できます。

表7-2    mod_plsqlの構成ファイルとパラメータ 
構成ファイル  パラメータ 

plsql.conf 

PlsqlDMSEnable

PlsqlLogEnable

PlsqlLogDirectory

PlsqlIdleSessionCleanupInterval 

dads.conf 

PlsqlAfterProcedure

PlsqlAlwaysDescribeProcedure

PlsqlAuthenticationMode

PlsqlBeforeProcedure

PlsqlBindBucketLengths

PlsqlBindBucketWidths

PlsqlCGIEnvironmentList

PlsqlCompatibilityMode

PlsqlConnectionTimeout

PlsqlConnectionValidation

PlsqlDatabaseConnectString

PlsqlDatabasePassword

PlsqlDatabaseUserName

PlsqlDefaultPage

PlsqlDocumentPath

PlsqlDocumentProcedure

PlsqlDocumentTablename

PlsqlErrorStyle

PlsqlExclusionList

PlsqlFetchBufferSize

PlsqlInfoLogging

PlsqlMaxRequestsPerSession

PlsqlNLSLanguage

PlsqlPathAlias

PlsqlPathAliasProcedure

PlsqlRequestValidationFunction

PlsqlSessionCookieName

PlsqlSessionStateManagement

PlsqlTransferMode

PlsqlUploadAsLongRaw 

cache.conf 

PlsqlCacheCleanupTime

PlsqlCacheDirectory

PlsqlCacheEnable

PlsqlCacheMaxAge

PlsqlCacheMaxSize

PlsqlCacheTotalSize 

plsql.conf

このファイルには、mod_plsqlをOracle HTTP ServerにロードするLoadModuleディレクティブ、mod_plsqlのグローバル設定およびdads.confcache.confのインクルード・ディレクティブが含まれています。


注意

plsql.confの詳細は、ORACLE_HOME/Apache/modplsql/confにあるplsql.READMEを参照してください。 


次の項では、plsql.confに指定できるパラメータについて説明します。

PlsqlDMSEnable

mod_plsqlのDynamic Monitoring Service(DMS)を有効にします。

カテゴリ   

構文 

PlsqlDMSEnable On/Off 

デフォルト 

On 

例 

PlsqlDMSEnable On 

PlsqlLogEnable

mod_plsqlのデバッグ・レベル・ログを有効にします。

デバッグ・レベル・ログは、デバッグ専用に使用されます。ロギングが有効化な場合、ログ・ファイルは次の場所に生成されます。

ログ・ファイルの場所は、PlsqlLogDirectoryで指定されています。このパラメータは、オラクル社カスタマ・サポート・センターよりmod_plsql問題のデバッグ指示がないかぎり、Offに設定しておきます。

mod_plsqlの内部処理の詳細を表示する場合は、このディレクティブをOnに設定します。Onに設定すると、mod_plsqlは処理されるすべてのリクエストに対してログを開始します。ログ・ファイルは、PlsqlLogDirectoryディレクティブで指定された場所に生成されます。

カテゴリ   

構文 

PlsqlLogEnable On/Off 

デフォルト 

Off 

例 

PlsqlLogEnable Off 

PlsqlLogDirectory

デバッグ・レベル・ログが書き出されるディレクトリを指定します。

ロギングが有効なときにログ・ファイルが生成される場所のディレクトリ名を設定します。このディレクトリの場所について混乱が生じないように、絶対パスの使用をお薦めします。

UNIXでは、httpd子プロセスの所有者がこのディレクトリに対する書込み権限を持っている必要があります。

カテゴリ   

構文 

PlsqlLogDirectory directory 

デフォルト 

なし 

例 

PlsqlLogDirectory ORACLE_HOME/Apache/modplsql/logs 

PlsqlIdleSessionCleanupInterval

アイドル・データベース・セッションがmod_plsqlによりクローズされてクリーン・アップされるまでの時間(分数)を指定します。

このディレクティブは、mod_plsql内でデータベース接続とセッションの接続プーリングとともに使用されます。セッションがある一定の期間使用されないと、そのセッションはクローズされて解放されます。これは、使用されていないセッションをクリーン・アップし、データベース側でメモリーが解放されるようにするためです。

この時間を小さい値に設定すると、使用されていないデータベース・セッションのクリーン・アップが高速になります。ただし、極端に小さい値に設定すると、mod_plsql内の接続プーリングが提供するパフォーマンスに悪影響を及ぼすことがあります。

オープンされているデータベース・セッションの数が重要でない場合は、最大のパフォーマンスが得られるように、このパラメータの値を大きくすることができます。その場合、アクセス頻度が高く、セッション・クリーン・アップ間隔に達することがないサイトについては、プーリングされたデータベース・セッションが確実に定期的にリサイクルされるように、DAD構成パラメータPlsqlMaxRequestsPerSessionを調整できます。

ほとんどのインストールでは、デフォルトのパラメータ値で十分です。

カテゴリ   

構文 

PlsqlIdleSessionCleanupInterval number 

デフォルト 

15(分) 

例 

PlsqlIdleSessionCleanupInterval 15 

dads.conf

このファイルには、PL/SQLのデータベース・アクセス記述子(Database Access Descriptor: DAD)の構成パラメータが含まれています。

DADのパラメータ

この項では、dads.confファイルに指定できるすべてのDADのレベル・パラメータについて説明します。これらのディレクティブ以外に、<Location>ディレクティブのコンテキストで指定できる、次のようなOracle HTTP Serverのその他のディレクティブを指定することもできます。

Order deny,allow
AllowOverride None

この後の項では、次のパラメータについて説明します。

PlsqlAfterProcedure

リクエストされたプロシージャのコール後に起動するプロシージャを指定します。これにより、リクエストされたプロシージャがコールされた後にフック・ポイントを置くことができます。これは、リクエストされたプロシージャ内の問題のデバッグ中に、SQLトレース/SQLプロファイルを実行する場合に役立ちます。また、各プロシージャの実行後に特定のコールを確実に行う必要がある場合にも役立ちます。

カテゴリ   

構文 

PlsqlAfterProcedure string 

デフォルト 

なし 

例 

PlsqlAfterProcedure portal.mypkg.myafterproc 

PlsqlAlwaysDescribeProcedure

mod_plsqlでプロシージャを実行前に記述する必要があるかどうかを指定します。このディレクティブをOnに設定すると、mod_plsqlではプロシージャを起動する前に常に記述します。それ以外の場合は、mod_plsqlが内部的な経験則によりパラメータ・タイプを不正に解析した場合にのみ、プロシージャを記述します。

カテゴリ   

構文 

PlsqlAlwaysDescribeProcedure On/Off 

デフォルト 

Off 

例 

PlsqlAlwaysDescribeProcedure Off 

PlsqlAuthenticationMode

このDAD経由でアクセスできるように、使用する認証モードを指定します。

カテゴリ   

構文 

PlsqlAuthenticationMode Basic/SingleSignOn/GlobalOwa/CustomOwa/PerPackageOwa 

デフォルト 

Basic 

例 

PlsqlAuthenticationMode Basic 

PlsqlBeforeProcedure

リクエストされたプロシージャのコール前に起動するプロシージャを指定します。これにより、リクエストされたプロシージャがコールされる前にフック・ポイントを置くことができます。これは、リクエストされたプロシージャ内の問題のデバッグ中に、SQLトレース/SQLプロファイルを実行する場合に役立ちます。また、各プロシージャの実行前に特定のコールを確実に行う必要がある場合にも役立ちます。

カテゴリ   

構文 

PlsqlBeforeProcedure string 

デフォルト 

なし 

例 

PlsqlBeforeProcedure portal.mypkg.mybeforeproc 

PlsqlBindBucketLengths

コレクション・バインド内の要素数のバインド中に使用する丸めサイズを指定します。PL/SQL文の実行中は、Oracle Databaseにより共有SQL領域内でPL/SQL文のキャッシュがメンテナンスされ、同じ文が再び実行される場合はキャッシュされた文が再利用されます。Oracleの一致条件では、文のテキストが同一で、バインド変数のデータ型が一致する必要があります。文字列の型が一致するには正確なバイト・サイズを指定する必要があり、コレクション・バインドの場合もコレクション内の要素数が重要になります。mod_plsqlでは文が動的にバインドされるため、共有キャッシュのヒット率は低く、ほぼ重複する値で満杯になって、共有領域でラッチの競合が発生する傾向があります。このパラメータでは、バインド長を最も近いレベルにバケット化して、このような影響を軽減します。

すべての数値は昇順で指定する必要があります。最後に指定したサイズに続くバケット・サイズは、最後のサイズの2倍とみなされます。

カテゴリ   

構文 

PlsqlBindBucketLengths number multiline 

デフォルト 

4,20,100,400 

例 

PlsqlBindBucketLengths 4

PlsqlBindBucketLengths 25

PlsqlBindBucketLengths 125 

PlsqlBindBucketWidths

コレクション・バインド内の要素数のバインド中に使用する丸めサイズを指定します。PL/SQL文の実行中は、Oracle Databaseにより共有SQL領域内でPL/SQL文のキャッシュがメンテナンスされ、同じ文が再び実行される場合はキャッシュされた文が再利用されます。Oracleの一致条件では、文のテキストが同一で、バインド変数のデータ型が一致する必要があります。文字列の型が一致するには正確なバイト・サイズを指定する必要があり、コレクション・バインドの場合もコレクション内の要素数が重要になります。mod_plsqlでは文が動的にバインドされるため、共有キャッシュのヒット率は低く、ほぼ重複する値で満杯になって、共有領域でラッチの競合が発生する傾向があります。このパラメータでは、バインド幅を最も近いレベルにバケット化して、このような影響を軽減します。

すべての数値は昇順で指定する必要があります。最後に指定したサイズに続くバケット・サイズは、最後のサイズの2倍とみなされます。

最後のバケット幅は4000以下にする必要があります。これは、配列のバインド幅を4000以下にするというOCIの制限によるものです。

カテゴリ   

構文 

PlsqlBindBucketWidths number multiline 

デフォルト 

32,128,1450,2048,4000 

例 

PlsqlBindBucketWidths 40

PlsqlBindBucketWidths 400

PlsqlBindBucketWidths 2000 

PlsqlCGIEnvironmentList

PL/SQLプロシージャに渡される環境変数のデフォルト・セットに、CGI環境変数のオーバーライドまたは追加(あるいはその両方)を実行するように指定します。これは、追加、オーバーライドまたは削除する名前/値ペアの複数行からなるディレクティブです。1つのディレクティブに指定できる環境変数は1つのみです。

変数名を指定して、Oracle HTTP Server環境からCGI環境変数を追加できます。CGI環境変数を削除するには、何も設定しません。固有の名前/値ペアを追加するには、構文myname=myvalueを使用します。

カテゴリ   

構文 

PlsqlCGIEnvironmentList string multiline 

デフォルト 

なし 

例 

  • Oracle HTTP Server環境から新しい環境変数を追加するには、次のように設定します。

    PlsqlCGIEnvironmentList DOCUMENT_ROOT

  • 環境変数を削除するには、次のように設定します。

    PlsqlCGIEnvironmentList MYENVAR2=

  • Oracle HTTP Server環境からオーバーライドするには、次のように設定します。

    PlsqlCGIEnvironmentList REQUEST_PROTOCOL=HTTPS

  • 独自の環境変数を追加するには、次のように設定します。

    PlsqlCGIEnvironmentList MY_VARNAME=MY_VALUE

 

PlsqlCompatibilityMode

mod_plsqlを実行するための互換モードを指定します。このパラメータがサポートされるのは、Oracle Application Serverのリリースのみで、古いバージョンのOracle Application Server Portalでmod_plsqlを使用している場合のみ使用します。リリース9.0.2より前のOracle Application Server Portalに対してmod_plsqlを実行する場合は、この値を1に設定する必要があります。

カテゴリ   

構文 

PlsqlCompatibilityMode BitFlag 

デフォルト 

例 

PlsqlCompatibilityMode 1 

このパラメータにより、ドキュメントのダウンロード時にmod_plsqlでプラス記号(+)が不正にスペース文字に変換されるという、旧バージョンでの不具合が有効になります。このフラグの最初のビットを有効にすると、名前にプラス記号(+)を含むドキュメントをダウンロードできなくなります。

PlsqlConnectionTimeout

mod_plsqlにプーリングされた接続のテストに対するタイムアウトをミリ秒単位で指定します。

PlsqlConnectionValidationがAutomaticまたはAlwaysValidatに設定されていると、mod_plsqlはプーリングされたデータベース接続をテストしようとします。このパラメータは、mod_plsqlが接続は使用できないと判断する前に、テスト・リクエストの完了を待機する最大時間を指定します。

カテゴリ   

構文 

PlsqlConnectionTimeout number 

デフォルト 

10000 

例 

PlsqlConnectionTimeout 5000 

PlsqlConnectionValidation

mod_plsqlが接続プールで終了済接続を検出するために使用するメカニズムを指定します。

パフォーマンス上の理由で、mod_plsqlはデータベース接続をプーリングします。データベース・インスタンスが停止し、mod_plsqlがそのインスタンスに対する接続プールを保持していた場合、プーリングされた各データベース接続は、次回リクエストの処理に使用される際にエラーとなります。これは、あるノードが停止しても、他のデータベース処理を実行しているノードではリクエストを正常に処理できる、RACなどの高可用性の構成で問題となります。mod_plsqlでは、データベース・ノードの停止による障害を検出した後に自己修正するためのメカニズムを提供しています。この自己修正メカニズムは、PlsqlConnectionValidationパラメータによって制御されます。

次に、PlsqlConnectionValidationの有効な値を示します。

mod_plsqlでは、次のいずれかのエラーが発生すると、データベースは停止していると判断します。

PlsqlDatabaseConnectString

Oracle Databaseへの接続を指定します。

カテゴリ   

構文 

PlsqlDatabaseConnectString

stringServiceNameFormat/SIDFormat/TNSFormat/NetServiceNameFormat
stringには、2番目の引数に応じて次のいずれかを指定できます。

  • ServiceNameFormat: HOST:PORT:SERVICE_NAME形式。HOSTはデータベースを実行するホスト名、PORTはTNSリスナーがリスニングするポート番号、SERVICE_NAMEはデータベース・サービス名です。

  • SIDFormat: HOST:PORT:SID形式。HOSTはデータベースを実行するホスト名、PORTはTNSリスナーがリスニングするポート番号、SIDはデータベースSIDです。

  • TNSFormat: tnspingなどのOracle NetユーティリティおよびSQL*Plusを使用して解決する有効なTNS別名です。

  • NetServiceNameFormat: 接続記述子に解決される有効なネット・サービス名です。接続記述子は、ネットワーク接続の宛先を特殊なフォーマットで記述したものです。接続記述子には、宛先サービスとネットワーク経路情報が含まれます。

フォーマット引数を指定しない場合、mod_plsqlでは、stringがHOST:PORT:SID形式であるか、Oracle Netで解決可能であると想定します。この2つは、指定された文字列にコロンがあるかどうかにより区別されます。

新しいDADではSIDFormat構文を使用しないことをお薦めします。この構文は、下位互換性を保つためにのみ設けられています。新しく作成するDADには、新しいフォーマット引数を使用してください。 

デフォルト 

なし 

例 

  • PlsqlDatabaseConnectString myhost.com:1521:myhost.iasdb.inst ServiceNameFormat

  • PlsqlDatabaseConnectString myhost.com:1521:iasdb SIDFormat

  • PlsqlDatabaseConnectString myhost_tns TNSFormat

  • PlsqlDatabaseConnectString cn=oracle,cn=iasdb NetServiceNameFormat

  • PlsqlDatabaseConnectString (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=myhost.com)(Port= 1521))(CONNECT_DATA=(SID=iasdb))) TNSFormat

  • PlsqlDatabaseConnectString myhost_tns

  • PlsqlDatabaseConnectString myhost.com:1521:iasdb

 

PlsqlDatabasePassword

データベースへのログインに使用するパスワードを指定します。

カテゴリ   

構文 

PlsqlDatabasePassword string 

デフォルト 

なし 

例 

PlsqlDatabasePassword tiger 

DADパスワードを手動で構成変更した後に、ORACLE_HOME/Apache/modplsql/confにあるdadTool.plスクリプトを実行して、DADパスワードを不明瞭化することをお薦めします。

DADパスワードを不明瞭化する手順は、次のとおりです。

  1. 必要に応じて、次のコマンドを使用して、ユーザーをOracleソフトウェアの所有者ユーザー(通常はoracle)に切り替えます。

    $su - oracle
    
  2. 現行リリースのOracleホーム・ディレクトリへのパスを指定するようにORACLE_HOME環境変数を設定して、Perl実行可能ファイルおよびdadTool.plスクリプトの場所を含むディレクトリを含むようにPATH環境変数を設定します。

    Bourne、BashまたはKornシェルの場合:

    ORACLE_HOME=new_ORACLE_HOME_path;export ORACLE_HOME
    PATH=ORACLE_HOME/Apache/modplsql/conf:ORACLE_HOME/perl/bin:PATH;export PATH
    

    Cまたはtcshシェルの場合:

    setenv ORACLE_HOME new_ORACLE_HOME_PATH
    setenv PATH ORACLE_HOME/Apache/modplsql/conf:ORACLE_HOME/perl/bin:PATH
    

    Windowsの場合:

    set PATH=ORACLE_HOME¥Apache¥modplsql¥conf;ORACLE_HOME¥perl¥5.6.1¥bin¥MSWin32-x86;%PATH%
    


    注意

    前述のWindows用のコマンドは、1行で発行する必要があります。 


  3. プラットフォームに適した共有ライブラリ・パスの環境変数を設定します。

    • UNIXプラットフォームの場合、共有ライブラリ・パスにORACLE_HOME/libディレクトリを含めます。表7-3に、各プラットフォームに適した環境変数を示します。

      表7-3    プラットフォームのタイプと対応する共有ライブラリ・パスの環境変数 
      プラットフォーム  環境変数  含めるディレクトリ 

      AIX 

      LIBPATH 

      ORACLE_HOME/lib  

      HP-UX 

      SHLIB_PATH 

      ORACLE_HOME/lib  

      Solaris 

      LD_LIBRARY_PATH 

      ORACLE_HOME/lib32  

      その他のUNIX(Linux、Tru64 UNIXなど) 

      LD_LIBRARY_PATH 

      ORACLE_HOME/lib  

      たとえば、HP-UXシステムのBourneシェルでSHLIB_PATH環境を設定するには、次のコマンドを入力します。

      $SHLIB_PATH=$ORACLE_HOME/lib:$SHLIB_PATH;export SHLIB_PATH
      
    • Windowsの場合、次のようにPATH$ORACLE_HOME¥binを含めます。

      set PATH=%ORACLE_HOME%¥bin;%PATH%
      
  4. ディレクトリを、Oracle HTTP Serverの現行リリースのmod_plsql構成ディレクトリに変更します。

    cd $ORACLE_HOME/Apache/modplsql/conf
    
  5. 次のPerlスクリプトを起動して、DADパスワードを不明瞭化します。

    perl dadTool.pl -o
    

注意:

PlsqlDatabaseUserName

データベースへのログオンに使用するユーザー名を指定します。

カテゴリ   

構文 

PlsqlDatabaseUsername string 

デフォルト 

なし 

例 

PlsqlDatabaseUsername scott 

PlsqlDefaultPage

URLに何も指定されていない場合にコールするデフォルトのプロシージャを指定します。

カテゴリ   

構文 

PlsqlDefaultPage string 

デフォルト 

なし 

例 

PlsqlDefaultPage myschema.mypackage.home 

PlsqlDocumentPath

これは、ドキュメント表からのドキュメントのダウンロードを開始する、URL内の仮想パスです。たとえば、このパラメータをdocsに設定すると、次のURLによってこの形式のURLでドキュメントのダウンロード・プロセスが開始されます。

/pls/dad/docs
/pls/plsqlapp/docs

カテゴリ   

構文 

PlsqlDocumentPath string 

デフォルト 

docs 

例 

PlsqlDocumentPath docs 

PlsqlDocumentProcedure

ドキュメントのダウンロード開始時にコールするプロシージャを指定します。このプロシージャは、ダウンロード処理用にコールされます。

カテゴリ   

構文 

PlsqlDocumentProcedure string 

デフォルト 

なし 

例 

PlsqlDocumentProcedure portal.wwdoc_process.process_download 

PlsqlDocumentTablename

すべてのドキュメントのアップロード先となるデータベース内の表を指定します。

カテゴリ   

構文 

PlsqlDocumentTablename string 

デフォルト 

なし 

例 

PlsqlDocumentTablename myschema.document_table 

PlsqlErrorStyle

mod_plsqlエラーのエラー・レポート・モードを指定します。このパラメータには、次の値を指定できます。

古いバージョンの製品では、このパラメータはerror_styleと呼ばれていました。

PlsqlExclusionList

ブラウザから直接実行することが禁じられているプロシージャ、パッケージまたはスキーマ名のパターンを指定します。これは複数行からなるディレクティブで、各パターンを1行に指定します。パターンには大文字と小文字の区別がなく、*などのワイルドカードを使用できます。ダイレクトURLアクセスで却下されるデフォルトのパターンは、sys.*dbms_*utl_*owa_util*owa.*htp.*htf.*wpg_docload.*です。

このディレクティブを"#NONE#"に設定すると、すべての保護が無効になります。稼働中のサイトにはこの設定はしないでください(デバッグに使用する場合があります)。

このパラメータが上書きされても、デフォルトは有効です。つまり、除外されるパターンのリストにデフォルト・リストを明示的に追加する必要はありません。

カテゴリ   

構文 

PlsqlExclusionList [string/"#NONE#" multiline] 

デフォルト 

sys.*

dbms_*

utl_*

owa_util*

owa.*

htp.*

htf.* 

例 

PlsqlExclusionList myschema.private1.*

PlsqlExclusionList myschema.private.*

これらは、次のいずれかを含むURLにアクセスできません。

sys.*dbms_*utl_*owa_util*owa.*htp.*htf.*myschema.private.*myschema.private1.*

PlsqlExclusionList "#NONE#"は、すべての保護が無効になります。セキュリティ上の問題になるため、稼働中のサイトにはこの設定はしないでください。 

PlsqlFetchBufferSize

owa_util.get_pageまたはowa_util.get_page_rawを使用して、データベースからフェッチする内容のトリップごとの行数を指定します。

デフォルトで、mod_plsqlは各行が255バイトのレスポンス出力行を200行フェッチします。レスポンス・バイトがシングルバイトの場合、レスポンス・バッファは最大限まで移入され、1回のラウンドトリップに255×200=51000バイトをパックできます。ただし、マルチバイト・データを含むレスポンスの場合は、各行のバイトのパックが理想的にならない場合があり、ラウンドトリップごとに送信されるバイト数が少なくなります。アプリケーションで大きなページを頻繁に生成し、レスポンスが1回のラウンドトリップに収められない場合は、このパラメータを高めに設定することを考慮してください。ただし、mod_plsqlによるメモリー使用量は増加します。

カテゴリ   

構文 

PlsqlFetchBufferSize number 

デフォルト 

200 

例 

PlsqlFetchBufferSize 256 

PlsqlInfoLogging

mod_plsqlが追加のパフォーマンス・ロギングを行うために使用するモードを指定します。

モードは次のとおりです。

InfoDebug: より多くの情報がApacheのerror_logに記録されます。これは、Apacheのinfoロギング・レベルとともに使用されます。Apacheのロギング・レベルがこのレベル以上に設定されていない場合は、この設定が無視されます。

カテゴリ   

構文 

PlsqlInfoLogging InfoDebug 

デフォルト 

指定なし 

例 

PlsqlInfoLogging InfoDebug 

このロギング設定は、PL/SQLアプリケーションでの問題のデバッグに役立ちます。

PlsqlMaxRequestsPerSession

プーリングされたデータベース接続がクローズされて再オープンされる前に処理する必要のある最大リクエスト数を指定します。

カテゴリ   

構文 

PlsqlMaxRequestsPerSession number 

デフォルト 

1000 

例 

PlsqlMaxRequestsPerSession 1000 

PlsqlNLSLanguage

このDADの変数NLS_LANGを指定します。このパラメータにより、環境変数NLS_LANGがオーバーライドされます。このパラメータを設定すると、PL/SQL Gatewayは指定されているNLS_LANGを使用してデータベースに接続します。接続後は、指定の言語と地域に切り替えるためにalter sessionコマンドが発行されます。中間層のキャラクタ・セットがデータベースのキャラクタ・セットと一致する場合、mod_plsqlにセッション変更コールは発行されません。

カテゴリ   

構文 

PlsqlNLSLanguage string 

デフォルト 

なし 

例 

PlsqlNLSLanguage America_America.UTF8 

PlsqlPathAlias

プロシージャ・コールにマップする仮想パスの別名を指定します。これはアプリケーション固有です。

カテゴリ   

構文 

PlsqlPathAlias string 

デフォルト 

なし 

例 

PlsqlPathAlias url 

PlsqlPathAliasProcedure

URLの仮想パスが、PlsqlPathAliasで構成されたパス別名と一致した場合にコールするプロシージャを指定します。

カテゴリ   

構文 

PlsqlPathAliasProcedure string 

デフォルト 

なし 

例 

PlsqlPathAliasProcedure portal.wwpth_api_alias.process_download 

PlsqlRequestValidationFunction

アプリケーション定義のPL/SQLファンクションを指定します。このファンクションにより、リクエストされたプロシージャのこれ以上の処理を許可または禁止できます。このファンクションは、このDADからの実行を禁止されたパッケージまたはプロシージャ・コールをブロック・アウトして、PL/SQLアプリケーションについて厳重なセキュリティを実装する場合に役立ちます。

このパラメータによって定義されるファンクションには、次のプロトタイプが必要です。

boolean function_name (procedure_name IN varchar 2)

起動時、引数procedure_nameには、リクエストで実行しようとしているプロシージャの名前が含まれます。

たとえば、ブラウザからコールできるすべてのPL/SQLアプリケーション・プロシージャがパッケージmypkg内にある場合、このファンクションの実装は次のような簡単なものになります。

boolean my_validation_check (procedure_name varchar 2
is
begin
  if (upper (procedure_name) like upper ('myschema.mypkg%')) then 
    return TRUE
  else
    return FALSE
  end if;
end;

カテゴリ   

構文 

PlsqlRequestValidationFunction [string]  

デフォルト 

なし 

例 

PlsqlRequestValidationFunction myschema.mypkg.my_validation_check 

PlsqlSessionCookieName

PlsqlAuthenticationModeSingleSignOnに設定されている場合、Cookie名を指定します。このパラメータがサポートされるのは、Oracle Application Serverのリリースのみで、Oracle Application Server PortalおよびOracle Application Server Single Sign-Onで使用されます。

カテゴリ   

構文 

PlsqlSessionCookieName cookie_name 

デフォルト 

DAD名と同じ 

例 

PlsqlSessionCookieName mycookie 

PlsqlSessionStateManagement

mod_plsqlリクエストの終了時に、パッケージとセッションの状態をクリーン・アップする方法を指定します。

mod_plsqlでは、ステートフル・モードの操作はサポートされません。PL/SQLアプリケーションにステートフル動作を実装するには、状態をCookieまたはデータベース、あるいはその両方に保存します。

PlsqlTransferMode

データベースからのデータをmod_plsqlに送信するためのモードを指定します。ほとんどのアプリケーションでは、デフォルト値CHARを使用します。

カテゴリ   

構文 

PlsqlTransferMode CHAR/RAW 

デフォルト 

CHAR 

例 

PlsqlTransferMode CHAR 

PlsqlUploadAsLongRaw

デフォルトのBLOBデータ型を使用せずに、LONGRAWデータ型としてアップロードする拡張子を指定します。フィールドのファイル拡張子に複数行からなるディレクティブを指定することで、デフォルトを上書きできます。このフィールドに値*を指定すると、すべてのドキュメントがLONGRAW型としてアップロードされます。

カテゴリ   

構文 

PlsqlUploadAsLongRaw string multiline 

デフォルト 

なし 

例 

PlsqlUploadAsLongRaw jpg, PlsqlUploadAsLongRaw gif 

cache.conf

cache.confファイルには、mod_plsql用のキャッシュ設定が含まれています。このファイルには、mod_plsqlキャッシュ・システムの特性を指定するパラメータが含まれています。


注意

このファイルが関係するのは、PL/SQLアプリケーションがOWA_CACHEパッケージを使用して、ファイル・システム内のコンテンツをキャッシュする場合のみです。OWA_CACHEパッケージを利用する顧客のアプリケーションは、ごくわずかです。 


次のパラメータは、cache.confで指定されます。

PlsqlCacheCleanupTime

キャッシュ・ストレージのクリーン・アップの開始時刻を指定します。

この設定は、クリーン・アップが発生する正確な日と時刻を定義します。頻度は日次、週次および月次に設定できます。

PlsqlCacheDirectory

mod_plsqlによってキャッシュ・ファイルが書き出されるディレクトリを指定します。このディレクトリは存在している必要があります。存在しない場合Oracle HTTP Serverは起動しません。

UNIXでは、httpd子プロセスの所有者がこのディレクトリに対する書込み権限を持っている必要があります。

カテゴリ   

構文 

PlsqlCacheDirectory <directory> 

デフォルト 

なし 

例 

PlsqlCacheDirectory ORACLE_HOME/Apache/modplsql/cache 

古いバージョンでは、このパラメータはcache_dirと呼ばれ、ORACLE_HOME/Apache/modplsql/cfg/cache.cfgの[PLSQL Cache]セクションにありました。

PlsqlCacheEnable

mod_plsqlのキャッシュを有効にします。

カテゴリ   

構文 

PlsqlCacheEnable On/Off 

デフォルト 

Off 

例 

PlsqlCacheEnable On 

PlsqlCacheMaxAge

キャッシュ済ファイルを、キャッシュ・メンテナンスのために削除されるまで、ファイル・システム・キャッシュに置くことができる最大期間(日数)を指定します。

この設定は、キャッシュ・システムに古いコンテンツが含まれないようにするためです。この設定により、古いキャッシュ・ファイルが削除され、新しいファイル用のスペースが作成されます。

カテゴリ   

構文 

PlsqlCacheMaxAge <number> 

デフォルト 

30(30日) 

例 

PlsqlCacheMaxAge 30 

PlsqlCacheMaxSize

キャッシュ・ファイルの最大サイズを指定します。

この設定は、1つのファイルがキャッシュ全体を占有するのを防止するためのものです。一般的には、この値は総キャッシュ・サイズの約1〜3パーセントに設定することをお薦めします。

カテゴリ   

構文 

PlsqlCacheMaxSize <number> 

デフォルト 

1048576(1MB) 

例 

PlsqlCacheMaxSize 1048576 

古いバージョンでは、このパラメータはmax_sizeと呼ばれ、ORACLE_HOME/Apache/modplsql/cfg/cache/cfgの[PLSQL Cache]セクションにありました。

PlsqlCacheTotalSize

キャッシュ・ディレクトリの合計サイズを指定します。

この設定により、キャッシュで使用できる領域の量が制限されます。PLSQLキャッシュとセッションCookieキャッシュがこのキャッシュ領域を共有します。この設定は絶対的な上限ではありません。通常の処理中に、一時的にこの上限を超えることがありますが、これは正常な動作です。

クリーン・アップ・アルゴリズムでは、この設定を使用してキャッシュ・ファイルをどの程度削減するかを判断します。したがって、実際のスペース上限は、物理的なストレージの最大使用可能サイズです。

このパラメータは、値としてバイト数を取ります。

古いバージョンでは、このパラメータはtotal_sizeと呼ばれ、ORACLE_HOME/Apache/modplsql/cfg/cache/cfgの[PLSQL Cache]セクションにありました。

mod_proxy

AJP13FTPCONNECT(SSL用)、HTTP/0.9、HTTP/1.0およびHTTP/1.1用のプロキシ機能が提供されます。

Apache HTTP Server 2.0

Apache HTTP Server 2.0では、FTPおよびHTTPのプロトコル処理が個別のモジュールに分割されています。これにより、ORACLE_HOME /Apache/Apache/conf/httpd.confに次の変更が必要です。

LoadModule proxy_module modules/mod_proxy.so 
LoadModule proxy_http_module modules/mod_proxy_http.so 
LoadModule proxy_connect_module modules/mod_proxy_connect.so 
ProxyPass

このディレクティブは、ローカル・サーバーの領域にリモート・サーバーをマッピングします。ローカル・サーバーはリモート・サーバーのミラーとして機能します。

カテゴリ   

構文 

ProxyPass [path] ! |url

pathはローカルの仮想パスの名前です。urlはリモート・サーバーの部分URLであり、問合せ文字列を含めることはできません。 

例 

ProxyPass /mirror/xxx http://remote/proc.com 

ProxyPassReverse

このディレクティブを使用すると、Oracle HTTP Serverにより、HTTPリダイレクト・レスポンスのLocationヘッダー内のURLが調整されます。これは、リバース・プロキシの構成において、リバース・プロキシの背後に存在するリモート・サーバー上のHTTPリダイレクトによるリバース・プロキシの回避を防ぐために必要です。

カテゴリ   

構文 

ProxyPassReverse [path] ! |url

pathはローカルの仮想パスの名前です。urlはリモート・サーバーの部分URLであり、問合せ文字列を含めることはできません。 

例 

ProxyPassReverse /mirror/xxx/ http://remote/proc.com/ 

ProxyPreserveHost

このオプションは、着信リクエストのproxypass行で指定されたホスト名のかわりに、Host:行をプロキシ対象ホストに渡します。通常、このディレクティブはOffに設定されています。リモート・サーバーで元のホストのヘッダーを評価する必要のある構成に便利です。

カテゴリ   

構文 

ProxyPreserveHost On|Off 

デフォルト 

ProxyPreserveHost Off 

関連資料

 

mod_rewrite

Oracle HTTP Serverでは、URL操作ツールとしてmod_rewriteが提供されます。mod_rewriteでは、リクエストされたURLをリライトするために正規表現パーサーに基づくリライト・エンジンが使用されます。URL操作の粒度は、サーバー変数、環境変数、HTTPヘッダーおよびタイム・スタンプの書式の影響を受ける場合があります。

このモジュールは、サーバー単位のコンテキスト(httpd.conf)およびディレクトリ単位のコンテキスト(.htaccess)の両方でURL全体(path-info部を含む)に対して動作し、結果のquery-string部を生成できます。

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

mod_rewriteのルール処理

ApacheではHTTPがフェーズ単位で処理されます。これらの各フェーズ用のフックは、Apache APIにより提供されます。mod_rewriteでは、このうちの2つのフックを使用します。一方はURL-to-filename変換フックで、HTTPリクエストが読み取られてから認可が開始される間に使用されます。他方はFixupフックで、認可フェーズの後、およびディレクトリ単位の構成ファイル(.htaccess)が読み取られてからコンテンツ・ハンドラが有効になるまでにトリガーされます。

mod_rewriteは、構成構造から構成済ルールセットを読み取ります。サーバー・レベルのルールセットは起動時に最適であるように構成されますが、ディレクトリ・レベルのルールセットはカーネルによるディレクトリ・アクセス時に構成されます。

mod_rewriteはルールセット内でルールを1つずつループし(RewriteRuleディレクティブ)、特定のルールが一致すると、対応する条件をループします(RewriteCondディレクティブ)。最初に、URLが各ルールのPatternに対して照合されます。照合できなかった場合、mod_rewriteは対応しているルール条件を検索します。ルール条件が存在しない場合は、URLを文字列Substitutionからなる新規の値に単に置換して、ルールのループを継続します。ただし、条件が存在する場合は、内側のループを開始して各条件をリストされている順に処理します。

条件が存在する場合、変数を拡張して文字列TestStringを作成し、マップ参照を逆参照し、CondPatternを拡張されたTestStringと照合します。パターンが一致しないと、条件および対応するルールのセット全体が失敗します。パターンが一致すると、他に使用可能な条件がなくなるまで次の条件が処理されます。すべての条件が一致すると、処理が続行され、Substitutionを使用してURLが置換されます。

http://yourserver//oldpath/rqstdrsrcなど、複数のスラッシュ(/)を含むURLを求めるリクエストでは、RewriteCondおよびRewriteRuleが正しく記述されていない場合、//oldpathはこの2つのディレクティブをバイパスできます。

たとえば、次のルールがあるとします。

RewriteRule ^/oldpath(.*) /newpath$1 [R]

http://yourserver/oldpath/filesのリクエストはリダイレクトされ、予想どおりのページhttp://yourserver/newpath/filesが返されます。

ただし、http://yourserver//oldpath/filesのリクエストはこのルールをバイパスし、予想していなかったページを提供する可能性があります。ルールで複数のスラッシュ(/)が取得されることを確認することで、この問題を回避できます。この例を解決するには、次のように置換を使用する必要があります。

RewriteRule ^/+somepath(.*) /otherpath$1 [R]

mod_rewriteのディレクティブ

この項では、次のmod_rewriteのディレクティブについて説明します。

RewriteEngine

ランタイム・リライト・エンジンを有効または無効にします。Offに設定すると、このモジュールではランタイム処理が実行されません。このディレクティブを使用して、すべてのRewriteRuleのディレクティブをコメント化するかわりにモジュールを無効にします。

リライト構成は、デフォルトで継承されません。つまり、ReWriteEngine Onディレクティブを使用する各仮想ホストに対して指定する必要があります。

RewriteOptions

RewriteOptions 'inherit'を指定すると、親の構成を子に継承させることができます。仮想サーバー・コンテキストでは、これはメイン・サーバーのマップ、条件およびルールが継承されることを意味します。ディレクトリ・コンテキストでは、これは親ディレクトリの.htaccess構成の条件とルールが継承されることを意味します。

RewriteLog

実行するリライト・アクションがサーバーによって記録されるファイルの名前を設定します。このファイル名の先頭にスラッシュ(/)がない場合は、Server Rootに対する相対ファイル名とみなされます。ロギングを無効にするには、RewriteLogディレクティブを削除またはコメント化するか、RewriteLogLevel 0を使用します。ファイル名を/dev/nullに設定して、ロギングを禁止しないでください。このように設定すると、サーバーが低速になり、メリットはありません。

RewriteLogLevel

リライト・ログ・ファイルの詳細レベルを設定します。デフォルト・レベルである0(ゼロ)はロギングなしを意味し、9以上の値を指定すると事実上全アクションが記録されます。

RewriteBase

ディレクトリ単位のリライト用のベースURLを明示的に設定します。リライト・ルールをディレクトリ単位の構成(.htaccess)ファイルで使用できます。新規URLの置換が発生する場合は、サーバー処理にベースURLを追加する必要があります。これを可能にするには、対応するURL接頭辞またはURLベースをモジュールで認識する必要があります。デフォルトでは、この接頭辞が対応するファイル・パスです。ただし、ほとんどのWebサイトでは、URLは物理ファイル名のパスに直接関連付けられていません。このような場合は、RewriteBaseディレクティブを使用して正しいURL接頭辞を指定する必要があります。

WebサーバーのURLが物理ファイルのパスに直接関連付けられていない場合は、RewriteRuleディレクティブを使用する各.htaccessファイル内でRewriteBaseを使用する必要があります。

例7-10    RewriteBaseディレクティブ

次のディレクトリ単位の構成ファイルがあるとします。

## /abc/def/.htaccess - - per-dir config file for directory /abc/def
 # /abc/def is the physical path of /xyz,
RewriteEngine On
RewriteBase /xyz
RewriteRule ^oldstuff¥.html$ newstuff.html

例7-10では、/xyz/oldstuff.htmlのリクエストは物理ファイル/abc/def/newstff.htmlに正確にリライトされます。

リライト・ルールのヒント

表7-4に、リライト・ルールを使用するためのヒントを示します。

表7-4    リライト・ルールのヒント 
  定義 

任意の1文字 

[char] 

大カッコで囲まれた任意の文字 

b* 

任意の数の文字bからなる文字列 

.* 

任意の数の任意の文字からなる文字列 

たとえば、/demo1/demo2および/demo3からのリクエストを/alldemosにリダイレクトするには、次のいずれかのリライト・ルールを記述します。

RewriteRule /demo. /alldemos [R]

または

RewriteRule /demo [123] /alldemos [R]

/DemoA/DemoBおよび/DemoC/alldemosにリダイレクトする場合は、次のように、リライト・ルールにNC(大文字と小文字の区別なし)を追加します。

RewriteRule /demo [123] /alldemos [R, NC]

ピリオド(.)は1文字のみを処理するため、このリライト・ルールは/demonstration1から/demosへのリダイレクトには機能しません。demoで始まるURLすべてを後続の文字に関係なくリダイレクト可能にするには、次のリライト・ルールを使用します。

RewriteRule ^/demo* /alldemos [R, NC]

前述の例では、^は始まりを意味し、*はdemoの後の任意の文字を意味します。

/demo1/not_just_index.htmlに対してリクエストがある場合、前述のすべてリライト・ルールではリクエストは/alldemos/index.htmlにリダイレクトされますが、これは意図した結果でない場合があります。表7-5に示すように、/alldemos内の対応するファイルにリダイレクトする必要があります。

表7-5    リクエストのリダイレクト 
リクエストの内容  リダイレクト先 

/demo1/happy.html 

/alldemos/happy.html 

/demo1/go.jpg 

/alldemos/go.jpg 

/demos1/lucky.jpg 

/alldemos/lucky.jpg 

次のように、リライト・ルールに置換を使用する必要があります。

RewriteRule ^/demos1(.*)$ //alldemos/$1 [R NC]

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

happy.htmlgo.jpgおよびlucky.jpgなど、demo1の後に指定されている式の値を変数($1)として、/alldemos/の後にこれを代入します。

リダイレクションの例

リクエストをDocumentRootからnewrootディレクトリにリダイレクトする場合は、次のmod_rewriteのディレクティブを設定します。

RewriteEngine On
RewriteRule ^/(.*)$ /newroot/$1 [R]

あるディレクトリ(olddir)から別のディレクトリ(newdir)にファイル・リクエストを送信する場合は、次のディレクティブを設定します。

RewriteEngine On
RewriteRule ^/olddir(.*)$ /newdir/$1 [R] 

どちらの場合も、リクエストされたリソースがリダイレクト先で実際に使用可能かどうかを確認する必要があります。mod_rewriteモジュールは、リクエストされたリソースが新しい場所にあるかどうかを確認しません。

HTTP TRACEメソッドを使用してリクエストをすべて無効にする場合は、次のmod_rewriteのディレクティブを設定します。

RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^TRACE
RewriteRule .* - [F]

関連資料

Apache Serverマニュアルの「Module mod_rewrite」 

mod_security

Webアプリケーションを既知または未知の攻撃から保護して、Webアプリケーション・セキュリティを強化します。

関連資料

http://modsecurity.org 

mod_setenvif

リクエストの特性に基づいて環境変数を設定できます。

関連資料

Apache Serverマニュアルの「Module mod_setenvif」 

mod_speling

スペルに誤りがあるURLや、誤って大文字で記述されたURLが訂正されます。

関連資料

Apache Serverマニュアルの「Module mod_speling」 

mod_status

サーバー・アクティビティとパフォーマンスに関するHTMLページが表示されます。

関連資料

Apache Serverマニュアルの「Module mod_status」 

mod_unique_id

リクエストごとに一意のIDが作成されます。このモジュールは、UNIXでのみ使用可能です。

関連資料

Apache Serverマニュアルの「Module mod_unique_id」 

mod_userdir

リクエストがユーザー固有のディレクトリにマップされます。

関連資料

Apache Serverマニュアルの「Module mod_userdir」 

mod_usertrack

ログが作成され、ユーザー・アクティビティが追跡されます。

関連資料

Apache Serverマニュアルの「Module mod_usertrack」 

mod_vhost_alias

動的に構成された大量の仮想ホスト設定が有効になります。

関連資料

Apache Serverマニュアルの「Module mod_vhost_alias」 


戻る 次へ
Oracle
Copyright © 2006 Oracle Corporation.

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