この章では、Oracle HTTP Serverのスタート・ガイド情報を提供します。また、現在の環境でOracle HTTP Serverを構成および使用する際に必要な手順について説明します。
注意: 特に他に記載のないかぎり、このドキュメントに収められている情報は、Oracle HTTP ServerがOracle WebLogic ServerおよびOracle Fusion Middleware Controlにインストールされている場合に適用できます。このドキュメントの対象読者は、『Oracle Fusion Middlewareコンセプト・ガイド』および『Oracle Fusion Middleware管理者ガイド』の説明に従ってOracle Fusion Middlewareの主要概念を十分に理解しておく必要があります。スタンドアロン・モードでのOracle HTTP Serverのインストールについては、『Oracle Fusion Middleware Oracle Web Tierインストレーション・ガイド』のスタンドアロン・モードでのOracle Web Tierのインストールに関する項を参照してください。 |
この章の内容は、次のとおりです。
Oracle HTTP Serverを起動、停止および再起動するには、Fusion Middleware Controlまたはopmnctl
コマンドを使用できます。
次の図に示すように、Fusion Middleware Controlのホームページには、Oracle HTTP Serverを含むすべてのインストール済コンポーネントのステータスが表示されます。
次のようにopmnctl
を使用すると、Oracle HTTP Serverコンポーネントのステータスを確認できます。
> $ORACLE_INSTANCE/bin/opmnctl status Processes in Instance: instance1 ---------------------------------+--------------------+---------+--------- ias-component | process-type | pid | status ---------------------------------+--------------------+---------+--------- webcache1 | WebCache-admin | 19556 | Alive webcache1 | WebCache | 19555 | Alive ohs1 | OHS | 7249 | Alive
Oracle HTTP Serverが起動すると、親httpd
プロセスのプロセスID (PID)がhttpd.pid
ファイルに書き込まれます。このファイルは、デフォルトで次のディレクトリにあります。
ORACLE_INSTANCE
/diagnostics/logs/OHS/component_name
管理者は、デーモンの再起動時と終了時にプロセスIDを使用できます。プロセスが異常終了した場合は、killコマンドを使用してhttpd子プロセスを停止する必要があります。
httpd.conf
のPidFile
ディレクティブで、PIDファイルの場所を指定します。
注意: UNIXおよびLinuxプラットフォームでは、PidFile ディレクティブを編集する場合、ORACLE_HOME/ohs/bin/apachectl ファイルを編集してPIDファイルの新しい場所を指定する必要もあります。 |
この項では、Fusion Middleware Controlおよびopmnctl
を使用してOracle HTTP Serverを起動する方法について説明します。
Fusion Middleware Controlを使用してOracle HTTP Serverを起動するには、次の手順を実行します。
Oracle HTTP Serverのホームページに移動します。
「Oracle HTTP Server」メニューから「コントロール」を選択します。
「コントロール」メニューから「起動」を選択します。
opmnctl
を使用してOracleインスタンス内のすべてのOracle HTTP Serverコンポーネントを起動するには、次のコマンドを使用します。
注意: opmnctl スクリプトは、製品をインストールするために使用されたユーザーIDの下でのみ実行できます。通常、このユーザーIDは「oracle」ですが、任意のIDを決めて使用することもできます。 |
> $ORACLE_INSTANCE/bin/opmnctl startproc process-type=OHS
opmnctl
を使用して、特定のOracle HTTP Serverコンポーネントを起動するには、次を実行します。
> $ORACLE_INSTANCE/bin/opmnctl startproc ias-component=component_name
起動プロセスの詳細情報を確認するには、次のようにコマンドにverboseオプションを含めます。
> $ORACLE_INSTANCE/bin/opmnctl verbose startproc ias-component=component_name
次に、verboseオプションの使用時に表示される情報の例を示します。
HTTP/1.1 200 OK Content-Length: 656 Content-Type: text/html Response: 1 of 1 processes started. <?xml version='1.0' encoding='WINDOWS-1252'?> <response> <opmn id="stadk58:6701" http-status="200" http-response="1 of 1 processes started."> <ias-instance id="inst1"> <ias-component id="ohs1"> <process-type id="OHS"> <process-set id="OHS"> <process id="699033550" pid="11366" status="Alive" index="1" log="/scratch/oracle/product/11110/test090306/instances/inst1/diagnostics/logs/OHS/ohs1/console~OHS~1.log" operation="request" result="success"> <msg code="0" text=""> </msg> </process> </process-set> </process-type> </ias-component> </ias-instance> </opmn> </response>
UNIX/Linuxシステムでは、1024未満のTCP/IPポート番号は、root権限を持つプロセスのみがそれらのポートでリスニングを許可されるという点で特別です。1024未満のポートで実行するように、Oracle HTTP Serverを構成できます。
デフォルトでは、Oracle HTTP Serverはroot以外のユーザー(Oracle Fusion Middlewareをインストールしたユーザー)として実行されます。このため、UNIX/LinuxシステムでOracle HTTP Serverを特権ポート(たとえば、ポート80)で実行する場合は、rootとしてOracle HTTP Serverを実行できるようにする必要があります。
Fusion Middleware Controlを使用するか、opmnctl
コマンドを使用してOracle HTTP Serverを停止します。opmnctl
コマンドは、製品をインストールするために使用されたユーザーIDの下でのみ実行できます。通常、このユーザーIDは「oracle」ですが、任意のIDを決めて使用することもできます。
> $ORACLE_INSTANCE/bin/opmnctl stopproc ias-component=component_name
rootユーザーに変更します。
ORACLE_HOME/ohs/bin
にナビゲートし、次のコマンドを実行します。
chown root .apachectl chmod 6750 .apachectl
これにより、Oracle HTTP Serverをインストールしたユーザーは、特権ポートでプロセスを開始し、結果として、システム上のrootおよびoracleプロセスを確認できるようになると期待されます。oracleプロセスは、httpd.confファイル内のUserおよびGroupディレクティブで指定されたユーザーとグループとして実行されます。4.3.1項「Fusion Middleware Controlを使用したサーバー・プロパティの指定」と「4.3.2項「httpd.confファイルの編集によるサーバー・プロパティの指定」」に注記されているとおり、これらのディレクティブ値の変更はサポートされていません。
rootユーザーを終了して、Oracle HTTP Serverをインストールしたユーザーとして再ログインします。
Fusion Middleware Controlを使用するか、opmnctl
コマンドを使用してOracle HTTP Serverを起動します。
> $ORACLE_INSTANCE/bin/opmnctl startproc ias-component=component_name
この項では、Fusion Middleware Controlおよびopmnctl
を使用してOracle HTTP Serverを停止する方法について説明します。Oracle HTTP Serverが停止すると、他のサービスも影響を受ける場合があります。
Fusion Middleware Controlを使用してOracle HTTP Serverを停止するには、次の手順を実行します。
Oracle HTTP Serverのホームページに移動します。
「Oracle HTTP Server」メニューから「コントロール」を選択します。
「コントロール」メニューから「停止」を選択します。
opmnctl
を使用してOracleインスタンス内のすべてのOracle HTTP Serverコンポーネントを停止するには、次のコマンドを使用します。
> $ORACLE_INSTANCE/bin/opmnctl stopproc process-type=OHS
opmnctl
を使用して、特定のOracle HTTP Serverコンポーネントを停止するには、次を実行します。
> $ORACLE_INSTANCE/bin/opmnctl stopproc ias-component=component_name
停止プロセスの詳細情報を確認するには、次のようにコマンドにverboseオプションを含めます。
> $ORACLE_INSTANCE/bin/opmnctl verbose stopproc ias-component=component_name
Oracle HTTP Serverを再起動すると、Apache親プロセスが子プロセスに対して現在のリクエストの後に終了する(リクエストの処理中でなければ即時に終了する)ように指示します。再起動時に、親プロセスはその構成ファイルを再び読み取り、そのログ・ファイルを再び開きます。それぞれの子プロセスが終了するたびに、親プロセスは、新しく生成された構成ファイルの子プロセスでそれらの子プロセスを置き換えます。新しい子プロセスは即時に新しいリクエストの処理を開始します。
次の項では、Fusion Middleware Controlおよびopmnctl
を使用してOracle HTTP Serverを再起動する方法について説明します。
Fusion Middleware Controlを使用してOracle HTTP Serverを再起動するには、次の手順を実行します。
Oracle HTTP Serverのホームページに移動します。
「Oracle HTTP Server」メニューから「コントロール」を選択します。
「コントロール」メニューから「再起動」を選択します。
opmnctl
を使用してOracleインスタンス内のすべてのOracle HTTP Serverコンポーネントを再起動するには、次のコマンドを使用します。
> $ORACLE_INSTANCE/bin/opmnctl restartproc process-type=OHS
opmnctl
を使用して特定のOracle HTTP Serverコンポーネントを再起動するには、次のコマンドを使用します。
> $ORACLE_INSTANCE/bin/opmnctl restartproc ias-component=component_name
起動プロセスの詳細情報を確認するには、次のようにコマンドにverboseオプションを含めます。
> $ORACLE_INSTANCE/bin/opmnctl verbose restartproc ias-component=component_name
Oracle Web Tierをインストールするときには、次のいずれかの方法を選択できます。
ソフトウェアをインストールし、Oracle HTTP Serverコンポーネントを使用してOracleインスタンスを構成します。
ソフトウェアのみをインストールします。
ソフトウェアのみをインストールすることを選択した場合は、後で構成ツール(UNIXの場合はconfig.sh
、Windowsの場合はconfig.bat
)を実行してOracleインスタンスを構成する必要があります。構成ツールはORACLE_HOME
/bin
ディレクトリにあります。詳細は、『Oracle Fusion Middleware Oracle Web Tierインストレーション・ガイド』を参照してください。
いずれの方法においても、この項の説明に従って、ORACLE_INSTANCE
/bin
ディレクトリにあるopmnctl
コマンドを使用して、Oracleインスタンスで追加のOracle HTTP Serverコンポーネントを作成できます。Fusion Middleware Controlを使用してOracle HTTP Serverコンポーネントを作成できないことに注意してください。
opmnctl
を使用してOracle HTTP Serverコンポーネントを作成するには、次のコマンドを実行します。
> $ORACLE_INSTANCE/bin/opmnctl createcomponent -componentType OHS -componentName component_name
たとえば、ohs2
という名前のOracle HTTP Serverコンポーネントを作成するには、次のコマンドを使用します。
> $ORACLE_INSTANCE/bin/opmnctl createcomponent -componentType OHS -componentName ohs2
Oracle HTTP Serverコンポーネントを作成すると、ポートが自動的に割り当てられます。ただし、次のパラメータを使用すると、手動でポートを指定できます。
-listenPort
: HTTPリスニング・ポート
-sslPort
: HTTPS (SSL)リスニング・ポート
-proxyPort
: Oracle HTTP ServerがFusion Middleware Controlとの通信に内部的に使用するプロキシMBeanポート
Oracle HTTP Serverのサーバー・プロパティを設定する場合、Fusion Middleware Controlを使用するか、Oracle HTTP Serverの構成ファイルを直接編集します。opmnctl
コマンドを使用してサーバー・プロパティを指定することはできません。
Fusion Middleware Controlを使用してサーバー・プロパティを指定するには、次の手順を実行します。
「Oracle HTTP Server」メニューから「管理」を選択します。
「管理」メニューから「サーバー構成」を選択します。「サーバー構成」ページが表示されます。
「ドキュメント・ルート」フィールドに、Webサイトから表示できるメイン・ドキュメント・ツリーを構成するドキュメント・ルート・ディレクトリを入力します。
「管理者の電子メール・アドレス」フィールドに、サーバーがクライアントに送信するエラー・メッセージに挿入する電子メール・アドレスを入力します。
「ディレクトリの索引」フィールドにディレクトリの索引を入力します。これは、クライアントがWebサイトに最初にアクセスしたときに表示されるメイン・ページ(indexページ)です。
「オペレーティング・システム・ユーザー」フィールドにユーザー名を、「オペレーティング・システム・グループ」フィールドにグループ名を入力します。
Oracle HTTP Serverの場合、セキュリティを確保し、統合されたコンポーネントの全体で正常に機能するようにするには、「オペレーティング・システム・ユーザー」および「オペレーティング・システム・グループ」フィールドは、Oracleをインストールしたユーザーとグループである必要があります。
「モジュール」リージョンは、モジュールを有効化または無効化するために使用します。有効化または無効化できるモジュールは、mod_perl、mod_fcgiおよびmod_ossoの3つです。
mod_perlモジュールの構成手順は、「mod_perlモジュールの構成」を参照してください。
必要な場合は、「別名」表に別名を作成します。別名は、指定したディレクトリにマップされます。たとえば、あるグループでコンテンツ・ページの特定のセットを使用するため、そのコンテンツ・ページを含むディレクトリに別名を作成できます。
設定を確認します。設定に問題がない場合、「適用」をクリックして変更を適用します。設定に問題がある場合、または変更を適用しない場合、「元に戻す」をクリックして元の設定に戻します。
4.1.4項の説明に従って、Oracle HTTP Serverを再起動します。
サーバー・プロパティが保存され、「サーバー構成」ページに表示されます。
httpd.conf
ファイルを使用してサーバー・プロパティを指定するには、次の手順を実行します。
テキスト・エディタまたはFusion Middleware Controlの「サーバーの詳細構成」ページを使用して、httpd.conf
ファイルを開きます。(4.4.5項「Oracle HTTP Server構成ファイルの変更」を参照してください。)
ファイルのDocumentRoot
セクションに、Webサイトのメイン・コンテンツを格納するディレクトリを入力します。次に、構文例を示します。
DocumentRoot "${ORACLE_INSTANCE
}/config/${COMPONENT_TYPE
}/${COMPONENT_NAME
}/htdocs"
ファイルのServerAdmin
セクションに、管理者の電子メール・アドレスを入力します。これは、クライアント・ページに表示される電子メール・アドレスです。次に、構文例を示します。
ServerAdmin WebMaster@example.com
ファイルのDirectoryIndex
セクションに、ディレクトリの索引を入力します。これは、クライアントがWebサイトに最初にアクセスしたときに表示されるメイン・ページ(indexページ)です。次に、構文例を示します。
DirectoryIndex index.html index.html.var
Oracle HTTP Serverの場合、セキュリティを確保し、統合されたコンポーネントの全体で正常に機能するようにするには、ユーザーおよびグループ・ディレクティブは、Oracleをインストールしたユーザーとグループである必要があります。
必要に応じて別名を作成します。別名は、指定したディレクトリにマップされます。たとえば、アイコンの特定のセットを使用するため、Webページ用のアイコンを含むディレクトリに別名を作成できます。次に、構文例を示します。
Alias /icons/ "${ORACLE_INSTANCE
}/config/${COMPONENT_TYPE
}/${COMPONENT_NAME
}/icons/" <Directory "${ORACLE_INSTANCE
}/content/${COMPONENT_TYPE
}/${COMPONENT_NAME
}/icons/"> Options MultiViews Order allow, deny Allow from all </Directory>
ファイルを保存します。
4.1.4項の説明に従って、Oracle HTTP Serverを再起動します。
この項の内容は、次のとおりです。
Secure Sockets Layer (SSL)は、インターネット経由でメッセージを安全に送信することを目的に設計された、暗号化された通信プロトコルです。Oracle HTTP Server間のアプリケーション層およびTCP/IP層にあって、クライアントによってセキュアな接続が確立された場合に暗号化と復号化を透過的に行います。
SSLの一般的な用途の1つは、ブラウザとWebサーバー間のWeb HTTP通信を保護することです。この場合、保護されていないHTTPの使用は排除されません。保護されたバージョンは、単純にHTTP over SSL (HTTPS)と呼ばれます。HTTPSではURLスキームとしてhttp://
ではなくhttps
://を使用するという点が異なります。
デフォルトでは、SSLリスニング・ポートはインストール中にデフォルトのウォレットを使用して構成されて有効化されます。ウォレットには、証明書リクエスト、証明書および秘密鍵など、資格証明が格納されます。
Oracle HTTP Serverとともに自動的にインストールされるデフォルトのウォレットは、テスト目的のみに使用されるものです。本番サーバーに対して実際のウォレットを作成する必要があります。デフォルトのウォレットは、ORACLE_INSTANCE
/config/OHS/
component_name
/keystores/default
ディレクトリ内にあります。新規のウォレットをこの場所に格納することも、ORACLE_INSTANCE
/config/OHS/
component_name
/ssl.conf
内のSSLWallet
ディレクティブを変更して実際のウォレットの場所を指し示すこともできます。
変更を有効にするには、4.1.4項の説明に従って、Oracle HTTP Serverコンポーネントを再起動する必要があります。
Fusion Middleware Controlを使用したウォレットとSSLの構成の詳細は、『Oracle Fusion Middleware管理者ガイド』のOracle HTTP Server仮想ホストでのSSLの有効化に関する項を参照してください。
Oracle HTTP Serverでは、Multipurpose Internet Mail Extension (MIME)設定を使用してファイル・タイプ、エンコーディングおよび言語の解析を行います。Oracle HTTP ServerのMIME設定は、Fusion Middleware Controlでのみ指定できます。opmnctl
コマンドではMIME設定を指定できません。
「MIME構成」ページでは、次のタスクを実行できます。
MIMEタイプにより、指定されたコンテンツ・タイプに特定のファイル拡張子がマップされます。MIMEタイプは、拡張子を含むファイル名に使用されます。
Fusion Middleware Controlを使用してMIMEタイプを構成するには、次の手順を実行します。
「Oracle HTTP Server」メニューから「管理」を選択します。
「管理」メニューから「MIME構成」を選択します。「MIME構成」ページが表示されます。
「MIME構成」リージョンの「行の追加」をクリックします。新規の空白行がリストに追加されます。
MIMEタイプを入力します。
ファイル拡張子を入力します。
設定を確認します。設定に問題がない場合、「適用」をクリックして変更を適用します。設定に問題がある場合、または変更を適用しない場合、「元に戻す」をクリックして元の設定に戻します。
4.1.4項の説明に従って、Oracle HTTP Serverを再起動します。
MIME構成が保存され、「MIME構成」ページに表示されます。
MIMEエンコーディングにより、Oracle HTTP Serverでは、ファイル拡張子に基づいてファイル・タイプを判別できます。MIMEエンコーディングは、追加および削除できます。エンコーディング・ディレクティブにより、指定のエンコーディング・タイプにファイル拡張子をマップします。
「Oracle HTTP Server」メニューから「管理」を選択します。
「管理」メニューから「MIME構成」を選択します。「MIME構成」ページが表示されます。
「MIMEエンコーディング」の横にあるプラス記号(+)をクリックして「MIMEエンコーディング」リージョンを開きます。
「MIMEエンコーディング」リージョンの「行の追加」をクリックします。新規の空白行がリストに追加されます。
MIMEエンコーディング(x-gzipなど)を入力します。
ファイル拡張子(.gxなど)を入力します。
設定を確認します。設定に問題がない場合、「適用」をクリックして変更を適用します。設定に問題がある場合、または変更を適用しない場合、「元に戻す」をクリックして元の設定に戻します。
4.1.4項の説明に従って、Oracle HTTP Serverを再起動します。
MIME言語設定により、特定の言語にファイル拡張子がマップされます。このディレクティブは、一般的にコンテンツ・ネゴシエーションに使用されます(クライアントにより設定されたプリファレンスに対する一致度が最も高いドキュメントがOracle HTTP Serverから返されます)。
「Oracle HTTP Server」メニューから「管理」を選択します。
「管理」メニューから「MIME構成」を選択します。「MIME構成」ページが表示されます。
「MIME言語」の横にあるプラス記号(+)をクリックして「MIME言語」リージョンを開きます。
「MIME言語」リージョンの「行の追加」をクリックします。新規の空白行がリストに追加されます。
MIME言語(en-USなど)を入力します。
ファイル拡張子(en-usなど)を入力します。
設定を確認します。設定に問題がない場合、「適用」をクリックして変更を適用します。設定に問題がある場合、または変更を適用しない場合、「元に戻す」をクリックして元の設定に戻します。
4.1.4項の説明に従って、Oracle HTTP Serverを再起動します。
mod_perlモジュールは、Oracle HTTP ServerにPerlインタプリタを埋め込みます。これにより、起動時のオーバーヘッドが排除され、モジュールをPerlで記述できます。デフォルトでは、モジュールは無効です。
Fusion Middleware Controlを使用してmod_perlモジュールを有効化するには、次の手順を実行します。
「Oracle HTTP Server」メニューから「管理」を選択します。
「管理」メニューから「mod_perl構成」を選択します。「mod_perl構成」ページが表示されます。
注意: mod_perlが有効化されていないと、「サーバー構成」ページにリダイレクトされます。mod_perlを選択して「適用」をクリックし、mod_perlを有効化します。確認ページが表示されたら、Oracle HTTP Serverを再起動します。これで、「mod_perl構成」ページに戻ります。 |
「スイッチ」フィールドにスイッチ情報を入力します。
「環境」フィールドに、スクリプトに渡す環境変数を入力します。
「必須」フィールドに必須スクリプト名を入力します。
「行の追加」をクリックして新規行を作成します。
「Perlの場所」表内の場所に対してmod_perlディレクティブを構成します。この場所により、リクエストのURIがこの場所に一致したときにサーバーが準拠する多数のルールが割り当てられます。
「ロケーション」フィールドに、PerlスクリプトのベースURIを入力します。mod_cgiスクリプトに/cgi-bin
を使用することが慣習的に広く受け入れられているように、mod_perlの下で稼働しているPerlスクリプトのベースURIとしては/perl
が慣習的に使用されています。
「オプション」フィールドにオプションを入力します。PerlOptions
ディレクティブは、使用するPerlインタプリタ・プールのクラスに対する制御を提供することにより、ファイングレイン構成を提供します。オプションを有効にするには、そのオプションの前にプラス記号(+)を付けます。無効化するには、前にマイナス記号(-)を付けます。
ヘッダーを送信する場合、「ヘッダーの送信」チェック・ボックスを選択します。PerlSendHeader
ディレクティブは、mod_perl 1.0の後方互換性のために使用します。これを有効化すると、スクリプトが起動されるたびにサーバーがHTTPヘッダーをブラウザに送信します。Non-Parsed-Headers (NPH)スクリプトの場合は、このオプションを無効にしてください。
「環境」フィールドに環境を入力します。PerlSetEnv
ディレクティブを使用すると、システム環境変数を指定してmod_perlハンドラに渡すことができます。
「レスポンス・ハンドラ」フィールドにレスポンス・ハンドラを入力します。PerlResponseHandler
ディレクティブは、ジョブを処理するコールバックをmod_perlに指示します。
「認証ハンドラ」フィールドに認証ハンドラを入力します。PerlAuthenHandler
ディレクティブは、ユーザーの識別資格証明を確認するためのハンドラを設定する場合に使用します。
設定を確認します。設定に問題がない場合、「適用」をクリックして変更を適用します。設定に問題がある場合、または変更を適用しない場合、「元に戻す」をクリックして元の設定に戻します。
4.1.4項の説明に従って、Oracle HTTP Serverを再起動します。
mod_perlモジュール構成が保存され、「mod_perl構成」ページに表示されます。
注意: Fusion Middleware Controlを使用せずにmod_perl構成を手動で編集する場合は、すべてのディレクティブをmod_perl.conf ファイルの<IfModule mod_perl.c> ブロック内に定義する必要があります。このブロックの外で定義されたmod_perl関連ディレクティブは、無視される可能性があります。 |
mod_wl_ohs
を構成するには、Fusion Middleware Controlを使用するか、またはmod_wl_ohs.conf
構成ファイルを手動で編集します。
リクエストをOracle HTTP ServerからOracle WebLogic Serverにプロキシできるようにmod_wl_ohsを構成する際の前提条件と手順の詳細は、『Oracle WebLogic ServerにおけるWebサーバー1.1プラグインの使用』のOracle HTTP Serverのmod_wl_ohsプラグインの構成に関する項を参照してください。
Fusion Middleware Controlを使用してOracle HTTP Serverの構成ファイルを変更するには、次の手順を実行します。
「HTTP Server」メニューから「管理」を選択します。
「管理」メニュー・アイテムから「詳細構成」を選択します。「サーバーの詳細構成」ページが表示されます。
リストから構成ファイル(httpd.conf
ファイルなど)を選択します。
必要に応じてファイルを編集します。
設定を確認します。設定に問題がない場合、「適用」をクリックして変更を適用します。設定に問題がある場合、または変更を適用しない場合、「元に戻す」をクリックして元の設定に戻します。
4.1.4項の説明に従って、Oracle HTTP Serverを再起動します。
ファイルが保存され、「サーバーの詳細構成」ページに表示されます。
デフォルトで、httpd.confファイルを使用すると、サーバーでドキュメントやサンプル・スクリプトなどの追加のコンテンツにアクセスできます。このアクセスには低いレベルのセキュリティ・リスクが存在する可能性があります。
ユース・ケースに合うように固有の環境の追加コンテンツを調整する必要がある場合があります。httpd.confファイルにアクセスするには、4.4.5項「Oracle HTTP Server構成ファイルの変更」を参照してください。
cgi-bin
ディレクトリのコンテンツを調査します。httpd.confファイルから不要なコードを削除できます。または次のDirectoryディレクティブを固有のCGIスクリプト・ディレクトリを指すように変更できます。
... # # "${ORACLE_INSTANCE}/config/${COMPONENT_TYPE}/${COMPONENT_NAME}/cgi-bin" should be changed to whatever your ScriptAliased # CGI directory exists, if you have that configured. # <Directory "${ORACLE_INSTANCE}/config/${COMPONENT_TYPE}/${COMPONENT_NAME}/cgi-bin"> AllowOverride None Options None Order allow,deny Allow from all </Directory> ...
ユース・ケースに応じてhttpd.confファイルのfancy indexingに関する次のセクションを編集します。
... # # IndexOptions: Controls the appearance of server-generated directory # listings. # IndexOptions FancyIndexing HTMLTable VersionSort # We include the /icons/ alias for FancyIndexed directory listings. If # you do not use FancyIndexing, you may comment this out. # Alias /icons/ "${ORACLE_INSTANCE}/config/${COMPONENT_TYPE}/${COMPONENT_NAME}/icons/" <Directory "${ORACLE_INSTANCE}/config/${COMPONENT_TYPE}/${COMPONENT_NAME}/icons"> AllowOverride None Order allow,deny Allow from all </Directory> # # AddIcon* directives tell the server which icon to show for different # files or filename extensions. These are only displayed for # FancyIndexed directories. # AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip AddIconByType (TXT,/icons/text.gif) text/* AddIconByType (IMG,/icons/image2.gif) image/* AddIconByType (SND,/icons/sound2.gif) audio/* AddIconByType (VID,/icons/movie.gif) video/* AddIcon /icons/binary.gif .bin .exe AddIcon /icons/binhex.gif .hqx AddIcon /icons/tar.gif .tar AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip AddIcon /icons/a.gif .ps .ai .eps AddIcon /icons/layout.gif .html .shtml .htm .pdf AddIcon /icons/text.gif .txt AddIcon /icons/c.gif .c AddIcon /icons/p.gif .pl .py AddIcon /icons/f.gif .for AddIcon /icons/dvi.gif .dvi AddIcon /icons/uuencoded.gif .uu AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl AddIcon /icons/tex.gif .tex AddIcon /icons/bomb.gif core AddIcon /icons/back.gif .. AddIcon /icons/hand.right.gif README AddIcon /icons/folder.gif ^^DIRECTORY^^ AddIcon /icons/blank.gif ^^BLANKICON^^ # # DefaultIcon is which icon to show for files which do not have an icon # explicitly set. # DefaultIcon /icons/unknown.gif # # AddDescription allows you to place a short description after a file in # server-generated indexes. These are only displayed for FancyIndexed # directories. # Format: AddDescription "description" filename # #AddDescription "GZIP compressed document" .gz #AddDescription "tar archive" .tar #AddDescription "GZIP compressed tar archive" .tgz ... # # ReadmeName is the name of the README file the server will look for by # default, and append to directory listings. # # HeaderName is the name of a file which should be prepended to # directory indexes. ReadmeName README.html HeaderName HEADER.html # # IndexIgnore is a set of filenames which directory indexing should ignore # and not include in the listing. Shell-style wildcarding is permitted. # IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t ...
不要な場合、httpd.confファイルから次のドキュメント構成セクションを削除できます。
... # # This should be changed to the ServerRoot/manual/. The alias provides # the manual, even if you choose to move your DocumentRoot. You may comment # this out if you do not care for the documentation. # AliasMatch ^/manual(?:/(?:de|en|es|fr|ja|ko|pt-br|ru|tr))?(/.*)?$ "${ORACLE_INSTANCE}/config/${COMPONENT_TYPE}/${COMPONENT_NAME}/manual$1" <Directory "${ORACLE_INSTANCE}/config/${COMPONENT_TYPE}/${COMPONENT_NAME}/manual"> AllowOverride None Order allow,deny Allow from all <Files *.html> SetHandler type-map </Files> # .tr is text/troff in mime.types! <Files *.html.tr.utf8> ForceType text/html </Files> SetEnvIf Request_URI ^/manual/(de|en|es|fr|ja|ko|pt-br|ru|tr)/ prefer-language=$1 RedirectMatch 301 ^/manual(?:/(de|en|es|fr|ja|ko|pt-br|ru|tr)){2,}(/.*)?$ /manual/$1$2 LanguagePriority en de es fr ja ko pt-br ru tr ForceLanguagePriority Prefer Fallback </Directory> ...
$ORACLE_HOME/ohs/binディレクトリにあるapxs
コマンドを使用して、Oracle HTTP Server用のApache拡張モジュールをビルドおよびインストールすることができます。apxsコマンドを使用できるようにするには、次のようにOracle HTTP Server環境を構成する必要があります。
コマンドラインから次の環境変数を設定します。
ORACLE_HOME=~/
oraHome1
ORACLE_INSTANCE=~/
oraInstance1
CONFIG_FILE_PATH=$ORACLE_INSTANCE/
config/
OHS/oraInstance1
LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/ohs/lib:$LD_LIBRARY_PATH
ここで、ORACLE_HOME
およびORACLE_INSTANCE
は顧客にとって適切な値に設定されます。たとえば、次のようになります。
export ORACLE_HOME=/scratch/jjones/PS6/Middleware/Oracle_WT1 export ORACLE_INSTANCE=$ORACLE_HOME/instances/instance1 export CONFIG_FILE_PATH=$ORACLE_INSTANCE/config/OHS/ohs1 export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/ohs/lib:$LD_LIBRARY_PATH
これで、ORACLE_HOME
のapxsを使用して、新しいモジュールをビルド、インストールおよび構成することができます。たとえば、モジュールのソース・ディレクトリからmod_experimentalという新しい拡張モジュールをビルド、インストールおよび構成するには、次のように入力します。
$ORACLE_HOME/ohs/bin/apxs -c mod_experimental.c $ORACLE_HOME/ohs/bin/apxs -i -a mod_experimental.c
apxs
コマンドの詳細は、http://httpd.apache.org/docs/2.0/programs/apxs.html
にあるApache HTTP Serverのドキュメントを参照してください。
注意: apxsは、OHSのUnix/Linuxバージョンでのみ使用可能です。 |
Optionsメソッドにより、クライアントは、Webサーバーでサポートされるメソッドを確認できます。これが有効の場合、HTTPレスポンス・ヘッダーのAllow
行に出力されます。
たとえば、次のようなリクエストを送信するとします。
---- Request ------- OPTIONS / HTTP/1.0 Content-Length: 0 Accept: */* Accept-Language: en-US User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Win32) Host: host123:80
この場合、Webサーバーから次のようなレスポンスが返されます。
---- Response --------
HTTP/1.1 200 OK
Date: Wed, 23 Apr 2008 20:20:49 GMT
Server: Oracle-Application-Server-11g/11.1.1.0.0 Oracle-HTTP-Server
Allow: GET,HEAD,POST,OPTIONS
Content-Length: 0
Connection: close
Content-Type: text/html
一部のソースでは、Optionsメソッドを公開することはセキュリティ上のリスクが低いと考えられます。悪質なクライアントは、このメソッドを使用してWebサーバーでサポートされるメソッドを判断できます。ただし、Webサーバーでサポートされるメソッドの数は限られているため、このメソッドを無効にしても悪質なクライアントに対して時間稼ぎとなるだけで、攻撃をやめさせることはできません。また、Optionsメソッドは、正当なクライアントによって使用されることもあります。
Oracle Fusion Middleware環境にOptionsメソッドを必要とするクライアントが存在しない場合、httpd.conf
ファイルに次の行を追加してこのメソッドを無効化できます。
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_METHOD} ^OPTIONS RewriteRule .* – [F] </IfModule>
NFS(ネットワーク・ファイルシステム)などの共有ファイルシステムでOracle HTTP Serverコンポーネントが作成される際、機能上またはパフォーマンス上の問題が発生する場合があります。特に、OHSで使用されるロック・ファイルまたはUNIXソケットが機能しない、またはそのパフォーマンスが大幅に低下する可能性があります。また、mod_wl_ohsでルーティングされるWLSリクエストが、デフォルト構成のファイルシステム・アクセスが原因で、パフォーマンスが大幅に低下する場合があります。
表4-1に、ロック・ファイルの問題と推奨されるhttpd.conf
ファイルの変更に関する詳細を、オペレーティング・システム別に示します。
表4-1 ロック・ファイルの問題
オペレーティング・システム | 説明 | httpd.confの変更 |
---|---|---|
Linux |
ロック・ファイルは必要ありません。Sys Vセマフォが、推奨されるプロセス間mutexの実装です。 |
LockFileディレクティブをコメントアウトします(3箇所)。 |
Solaris |
ロック・ファイルは必要ありません。プロセス間pthread mutexが、推奨されるプロセス間mutexの実装です。 |
LockFileディレクティブをコメントアウトします(3箇所)。 |
その他のUNIXプラットフォーム |
ローカル・ファイルシステムを示すようにLockFileディレクティブを変更します(3箇所)。 |
|
UNIXソケットの問題 |
|
注意: 様々なオペレーティング・システムでの文字長の制限により、CGIモジュールはScriptsockパスの作成時に次のエラーをスローすることがあります。
Scriptsockパスの文字長が超過していたためにエラーがスローされました。パスがシステムにより切り捨てられ、エラーがスローされました。 この問題を回避するには、オペレーティング・システムの文字長の制限内でScriptsockパスを指定します。文字長の制限はシステムにより異なります。たとえば、AIX 1024、HPIA 98、LinuxおよびSolarisオペレーティング・システムには108文字の制限があります。詳細は、オペレーティング・システムのドキュメントを参照してください。 |
この項では、opmnctl
を使用してOracle HTTP Serverコンポーネントを削除する方法について説明します。Fusion Middleware Controlを使用してOracle HTTP Serverコンポーネントを削除することはできません。
opmnctl
を使用してOracle HTTP Serverコンポーネントを削除するには、次のコマンドを使用します。
> $ORACLE_INSTANCE/bin/opmnctl deletecomponent -componentName component_name
たとえば、ohs2
という名前のOracle HTTP Serverコンポーネントを削除するには、次のコマンドを使用します。
> $ORACLE_INSTANCE/bin/opmnctl deletecomponent -componentName ohs2