ヘッダーをスキップ
Oracle® Fusion Middleware Oracle HTTP Serverの管理
12c (12.1.2)
E48019-03
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

2 Oracle HTTP Serverモジュールの理解

この章では、Oracle HTTP Server (OHS)で使用されるオラクル社が開発したモジュール(つまりプラグイン)の概要について説明します。この章では、OHSで使用されるその他のすべてのApacheおよびサード・パーティ製のモジュールのリストについても説明します。

モジュール(mod)は、Oracle HTTP Serverの基本機能を拡張し、Oracle HTTP Serverとその他のOracle Fusion Middlewareコンポーネントとの統合をサポートします。

この章では、オラクル社により特にOracle HTTP Server向けに開発されたモジュールについて説明します。この章の内容は、次のとおりです。

2.1 含まれるモジュールのリスト

この項では、Oracle HTTP Serverにバンドルされているすべてのモジュールを示します。

オラクル社が開発したOracle HTTP Server用のモジュール

次のモジュールは、オラクル社により特にOracle HTTP Server向けに開発されたものです。

Oracle HTTP Server内のApache HTTP Serverおよびサード・パーティのモジュール

Oracle HTTP Serverには、表2-1に示すApache HTTP Serverおよびサード・パーティのモジュールも即時利用できるように組み込まれています。これらのモジュールは、オラクル社が開発したものではありません

表2-1 Oracle HTTP Server内のApache HTTP Serverおよびサード・パーティのモジュール

モジュール 詳細は、次の資料を参照してください。

mod_actions

http://httpd.apache.org/docs/2.2/mod/mod_actions.html

mod_alias

http://httpd.apache.org/docs/2.2/mod/mod_alias.html

mod_asis

http://httpd.apache.org/docs/2.2/mod/mod_asis.html

mod_auth_basic

http://httpd.apache.org/docs/2.2/mod/mod_auth_basic.html

mod_authn_alias

http://httpd.apache.org/docs/2.2/mod/mod_authn_alias.html

mod_authn_anon

http://httpd.apache.org/docs/2.2/mod/mod_authn_anon.html

mod_authn_default

http://httpd.apache.org/docs/2.2/mod/mod_authn_default.html

mod_authn_file

http://httpd.apache.org/docs/2.2/mod/mod_authn_file.html

mod_authz_default

http://httpd.apache.org/docs/2.2/mod/mod_authz_default.html

mod_authz_groupfile

http://httpd.apache.org/docs/2.2/mod/mod_authz_groupfile.html

mod_authz_host

http://httpd.apache.org/docs/2.2/mod/mod_authz_host.html

mod_authz_user

http://httpd.apache.org/docs/2.2/mod/mod_authz_user.html

mod_autoindex

http://httpd.apache.org/docs/2.2/mod/mod_autoindex.html

mod_cern_meta

http://httpd.apache.org/docs/2.2/mod/mod_cern_meta.html

mod_cgi

http://httpd.apache.org/docs/2.2/mod/mod_cgi.html

mod_cgid (UNIXのみ)

http://httpd.apache.org/docs/2.2/mod/mod_cgid.html

mod_deflate

http://httpd.apache.org/docs/2.2/mod/mod_deflate.html

mod_dir

http://httpd.apache.org/docs/2.2/mod/mod_dir.html

mod_dumpio

http://httpd.apache.org/docs/2.2/mod/mod_dumpio.html

mod_env

http://httpd.apache.org/docs/2.2/mod/mod_env.html

mod_expires

http://httpd.apache.org/docs/2.2/mod/mod_expires.html

mod_fastcgi

http://www.fastcgi.com/drupal/node/6

mod_file_cache

http://httpd.apache.org/docs/2.2/mod/mod_file_cache.html

mod_filter

http://httpd.apache.org/docs/2.2/mod/mod_filter.html

mod_headers

http://httpd.apache.org/docs/2.2/mod/mod_headers.html

mod_imagemap

http://httpd.apache.org/docs/2.2/mod/mod_imagemap.html

mod_include

http://httpd.apache.org/docs/2.2/mod/mod_include.html

mod_info

http://httpd.apache.org/docs/2.2/mod/mod_info.html

mod_log_config

http://httpd.apache.org/docs/2.2/mod/mod_log_config.html

mod_logio

http://httpd.apache.org/docs/2.2/mod/mod_logio.html

mod_mime

http://httpd.apache.org/docs/2.2/mod/mod_mime.html

mod_mime_magic

http://httpd.apache.org/docs/2.2/mod/mod_mime_magic.html

mod_negotiation

http://httpd.apache.org/docs/2.2/mod/mod_negotiation.html

mod_perl

http://perl.apache.org/

mod_proxy

http://httpd.apache.org/docs/2.2/mod/mod_proxy.html

mod_proxy_balancer

http://httpd.apache.org/docs/2.2/mod/mod_proxy_balancer.html

mod_proxy_connect

http://httpd.apache.org/docs/2.2/mod/mod_proxy_connect.html

mod_proxy_ftp

http://httpd.apache.org/docs/2.2/mod/mod_proxy_ftp.html

mod_proxy_http

http://httpd.apache.org/docs/2.2/mod/mod_proxy_http.html

mod_reqtimeout

http://httpd.apache.org/docs/2.2/mod/mod_reqtimeout.html

mod_rewrite

http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html

mod_security

http://www.modsecurity.org/documentation/

また、mod_securityに関するOracle HTTP Server固有の情報については、付録F「mod_securityの構成」を参照してください。

mod_setenvif

http://httpd.apache.org/docs/2.2/mod/mod_setenvif.html

mod_speling

http://httpd.apache.org/docs/2.2/mod/mod_speling.html

mod_status

http://httpd.apache.org/docs/2.2/mod/mod_status.html

mod_substitute

http://httpd.apache.org/docs/2.2/mod/mod_substitute.html

mod_unique_id

http://httpd.apache.org/docs/2.2/mod/mod_unique_id.html

mod_userdir

http://httpd.apache.org/docs/2.2/mod/mod_userdir.html

mod_usertrack

http://httpd.apache.org/docs/2.2/mod/mod_usertrack.html

mod_vhost_alias

http://httpd.apache.org/docs/2.2/mod/mod_vhost_alias.html


2.2 mod_certheaders

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

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

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

mod_certheadersに使用できるディレクティブのリストおよび説明については、G.1項「mod_certheaders」を参照してください。

2.3 mod_context

mod_contextは、Oracle HTTP Serverによって処理されるリクエストに対して、実行コンテキストID(ECID)を作成または伝搬します。リクエストがOracle HTTP Serverに到達する前に、ECIDがリクエスト実行フローに作成されていた場合、mod_contextは、Oracle HTTP Server内のロギングに対してECIDを使用可能にし、WebLogic Serverなどの他のFusion Middlewareコンポーネントへの伝搬にも使用可能にします。リクエストがOracle HTTP Serverに到達した時点で、ECIDが作成されていなかった場合、mod_contextはECIDを作成します。

mod_contextを構成することはできません。これは、LoadModuleディレクティブを持つサーバーにロードすることで有効化され、このモジュールに対応するLoadModuleディレクティブを削除またはコメントアウトすることで無効化されます。問題の診断の助けになるように、常に有効にしておく必要があります。

2.4 mod_dms

mod_dmsは、FMWインフラストラクチャにOHSのOracle Dynamic Monitoring Service (DMS)データへのアクセスを提供します。

2.5 mod_ossl

mod_ossl (Oracle Databaseで使用されるOracle Secure Sockets Layer (SSL)の実装)によって、Oracle HTTP Serverでの強力な暗号化が可能になります。mod_osslは、サーバーでのSSLの使用を可能にするOracle HTTP Serverへのプラグインで、OpenSSLモジュール(mod_ssl)によく似ています。mod_osslはSSLバージョン3およびTLSバージョン1をサポートし、Certicom社およびRSA Security社のテクノロジに基づいています。

mod_sslはサポートされなくなりました。mod_sslからmod_osslへの移行およびテキスト証明書のOracleウォレットへの変換を可能にするツールが提供されています。

mod_osslでは次のことが実行されます。

mod_osslのディレクティブ

mod_osslで使用できるディレクティブのリストおよび説明は、G.2項を参照してください。


関連項目:

詳細は、『Oracle Fusion Middlewareの管理』のWeb層のSSLの構成に関する項を参照してください。


2.6 mod_perl

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

デフォルトでは、モジュールは無効です。mod_perlを有効化するには、4.6.3項「mod_perlの構成」の手順に従ってください。

2.6.1 データベースでのmod_perlの使用

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

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

Perlスクリプトは、Oracle用のDBI/DBDドライバを使用してデータベースにアクセスします。DBI/DBDドライバはOracle Fusion Middlewareに含まれています。このドライバは、Oracle Call Interface (OCI)をコールしてデータベースにアクセスします。

mod_perlを有効化した後、機能させるためにはmod_perl.confファイル内のDBIを有効化する必要があります。DBIを有効化するには、次の手順を実行します。


注意:

次の手順では、Fusion Middleware Controlと管理対象サーバーを使用していることを想定しています。構成ファイルの編集の全般的な情報は、1.6.2項「構成の編集」を参照してください。


  1. mod_perl.confファイルを編集します。

    1. Fusion Middleware Controlで、Oracle HTTP Serverの「サーバーの詳細構成」ページに移動します。

    2. メニューからmod_perl.confファイルを選択し、「実行」をクリックします。

    3. mod_perl.confファイルに次の行を追加します。

      PerlModule Apache::DBI

  2. 「適用」をクリックして、ファイルを保存します。

  3. 4.3.4項「Oracle HTTP Serverインスタンスの再起動」の説明に従って、Oracle HTTP Serverを再起動します。

実行するPerlスクリプトをDOMAIN_HOME/config/fmwconfig/components/OHS/instances/componentName/cgi-binに配置します。

例2-1 Perlスクリプトを使用したデータベース・アクセス

#!ORACLE_HOME/perl/bin/perl -w 
  use DBI; 
  my $dataSource = "host=hostname.domain;sid=orclsid;port=1521";
  my $userName = "userid";
  my $password = "password";
  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スクリプトを実行する場合、URLは次のようになります。

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

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

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

例2-2は、データベース接続をテストするためのサンプルPerlスクリプトを示しています。connect文のインスタンス名、ユーザーIDおよびパスワードは、ターゲット・データベースの適切な値で置き換えてください。

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

use DBI;
print "Content-type: text/plain\n\n"; 
$dbh = DBI->connect("dbi:Oracle:instance_name", userid/password, "") ||
            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 "can't log off Oracle";

2.6.1.3 SQL NCHARデータ型の使用

SQL NCHARデータ型(NCHAR、NVARCHAR2およびNCLOB)は、信頼性の高いUnicodeデータ型です。SQL NCHARデータ型を使用すると、Unicode文字をデータベースの文字セットに関係なく格納できます。これらのデータ型の文字セットは、各国語文字セット、つまりAL16UTF16またはUTF8で指定します。

例2-3は、SQL NCHARデータにアクセスする場合の例を示しています。

例2-3 SQL NCHARデータにアクセスするためのサンプル・スクリプト

# 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;

例2-3に示したとおり、標準のDBI funcメソッドで起動できるプライベート・ファンクションとして、set_formファンクションが提供されています。set_formファンクションでは、パラメータの文字構成を設定できる匿名ハッシュを使用します。

文字構成の有効値は、ORA_IMPLICITまたはORA_NCHARのいずれかです。文字構成をORA_IMPLICITに設定すると、アプリケーションのバインド・データはデータベースの文字セットに変換され、ORA_NCHARに設定すると各国語文字セットに変換されます。デフォルトはORA_IMPLICITです。

この定数は、DBD::Oracleではora_formsとして使用できます。

set_default_formでは、データベース・ハンドルのデフォルトの文字構成を設定します。次の例では、その構文を示しています。

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

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

例2-4 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' );

2.7 mod_plsql

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

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

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

mod_plsqlのディレクティブ

mod_plsqlで使用できるディレクティブのリストおよび説明は、G.3.1項を参照してください。

2.7.1 DADの作成

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

  1. dads.conf構成ファイルを開きます。

    mod_plsql構成ファイルの場所については、表2-2を参照してください。


    注意:

    4.6.5項「Oracle HTTP Server構成ファイルの変更」の説明に従って、Oracle HTTP Serverの「サーバーの詳細構成」ページでOracle Fusion Middleware Controlを使用して、dads.confを開いて編集することもできます。


  2. 次を追加します。

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

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

      <Location /myapp>
      

      注意:

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


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

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

      Order deny,allow
      Allow from all
      
    4. 1つ以上の特定のmod_plsqlディレクティブ。例:

      PlsqlDatabaseUsername        scott
      PlsqlDatabasePassword        tiger
      PlsqlDatabaseConnectString   orcl
      PlsqlAuthenticationMode      Basic
      
    5. <Location>要素をクローズする</Location>タグ。

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

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


    関連項目:

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


  5. 4.3.4項「Oracle HTTP Serverインスタンスの再起動」の説明に従って、Oracle HTTP Serverを再起動します。

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

DADの例

次のDADは特定のユーザーとして接続し、デフォルトのホームページを持ちます。

<Location /pls/mydad>
SetHandler pls_handler
Order allow,deny
Allow from All
PlsqlDatabaseUsername scott
PlsqlDatabasePassword tiger
PlsqlDatabaseConnectString prod_db
PlsqlDefaultPage scott.myapp.home
</Location>

次のDADはHTTP Basic認証を使用し、ドキュメントのアップロードおよびダウンロード操作をサポートします。

<Location /pls/mydad2>
SetHandler pls_handler
Order allow,deny
Allow from All
PlsqlDatabaseConnectString prod_db2
PlsqlDefaultPage scott.myapp.my_home
PlsqlDocumentTablename scott.my_documents
PlsqlDocumentPath docs
PlsqlDocumentProcedure scott.docpkg.process_download
</Location>

2.7.2 mod_plsqlの構成ファイル

表2-2で説明されているように、mod_plsql構成パラメータは、構成ディレクトリ(通常、DOMAIN_HOME/config/fmwconfig/components/OHS/componentName/)にある構成ファイル内に記載されています。

表2-2 システム・コンポーネント・インスタンス内のmod_plsql構成ファイル

ディレクトリ名 目次

CONFIG_DIR/moduleconf

plsql.conf

CONFIG_DIR/mod_plsql

dads.confおよびcache.conf


これらの.confファイルの編集の詳細は、1.6.2項「構成の編集」を参照してください。

次の各項で、mod_plsql構成パラメータについて説明します。

2.7.2.1 plsql.conf

plsql.confファイルは、CONFIG_DIR/moduleconfディレクトリ内にあり、Oracle HTTP Server によって、すべての.confファイルが自動的にこのディレクトリにロードされます。plsql.confファイルには、mod_plsqlモジュールをOracle HTTP ServerにロードするLoadModuleディレクティブ、mod_plsqlモジュールのグローバル設定、およびdads.confとcache.confのインクルード・ディレクティブが含まれています。

plsql.conf内のmod_plsqlのディレクティブ

plsql.conf内で使用されるディレクティブのリストおよび説明は、G.3.1項を参照してください。


関連項目:

plsql.confの詳細は、ORACLE_HOME/ohs/mod_plsqlにあるplsql.READMEファイルを参照してください。


2.7.2.2 dads.conf

dads.confファイルには、PL/SQLのデータベース・アクセス・ディスクリプタの構成パラメータが含まれています。(ファイルの場所については、表2-2を参照してください。)DADは、mod_plsqlモジュールがデータベース・サーバーに接続してHTTPリクエストを実行する方法を指定する値のセットです。

dads.conf内のmod_plsqlのディレクティブ

dads.conf内で使用されるディレクティブのリストおよび説明は、G.3.2項を参照してください。

2.7.2.3 cache.conf

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

cache.conf内のmod_plsqlのディレクティブ

cache.confで使用されるディレクティブのリストおよび説明は、付録Gを参照してください。

2.7.3 構成ファイルとパラメータの使用

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

PlsqlNLSLanguage "TRADITIONAL CHINESE_TAIWAN.UTF8"

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

2.7.4 その他のドキュメント

PL/SQLでのOracle HTTP Serverの関連情報は、次のドキュメントを参照してください。

  • Oracle® Fusion Middleware mod_plsqlユーザーズ・ガイド

  • 『Oracle® Fusion Middleware PL/SQL Web Toolkitリファレンス』

2.8 mod_wl_ohs

mod_wl_ohsにより、Oracle HTTP Server 12c (12.1.2)からOracle WebLogic Serverへのリクエストをプロキシ処理できます。このモジュールは一般的にWebLogicプロキシ・プラグインと呼ばれます。

mod_wl_ohsを構成する際の前提条件と手順の詳細は、『Oracle WebLogic Serverプロキシ・プラグイン12.1.2の使用』のOracle HTTP ServerのWebLogicプロキシ・プラグインの構成に関する項を参照してください。このモジュール用のディレクティブは、前述のドキュメントのWebサーバー・プラグインのパラメータに関する項に示されています。


注意:

mod_wl_ohsは、Apache HTTP ServerからOracle WebLogic Serverへのリクエストをプロキシ処理するために使用できる、mod_wlプラグインに似ています。ただし、Apache HTTP Server用のmod_wlプラグインは別途ダウンロードしてインストールする必要があるのに対し、mod_wl_ohsプラグインはOracle HTTP Serverにバンドルされています。