代替オプション 1 : NSD を使用した Apache API モジュール (mod_csp24.so)
使用するディストリビューションに、事前に構築された共有オブジェクトとして CSP モジュール (mod_csp24.so) が付属している場合は、"実行時の構成" から開始してください。付属のソース・ファイル mod_csp.c から共有オブジェクトを構築する場合は、以下の "方法 1" または "方法 2" を選択してください。方法 1 をお勧めします。
共有オブジェクトの生成については、ご使用の Apache のマニュアルとあわせて、以下の説明もお読みください。以下の説明は、Apache のルート・ディレクトリが /usr/apache であることを前提としています。実際は、多くの場合、このディレクトリ名に Apache のバージョン番号が追加されます。
方法 1 : apxs (APache eXtenSion) ツールを使用した、共有オブジェクトとしての CSP モジュールのビルド
以下のコマンドを実行すると、Apache 拡張ツール apxs を使用して、Apache の /modules ディレクトリに共有ライブラリ mod_csp24.so がビルドおよびインストールされます。モジュールをロードする指示文が、Apache 構成ファイル /conf/httpd.conf に追加されます。
apxs –c –o mod_csp24.so mod_csp.c
生成された共有オブジェクト (mod_csp24.so) をディレクトリ /opt/webgateway/bin にコピーします。
方法 2 : 共有オブジェクトとしての CSP モジュールの手動ビルド
CSP モジュールを共有オブジェクトとして手動でビルドするには、以下の手順を実行します。
-
モジュール・ソース・ファイル mod_csp.c をディレクトリ /usr/apache/src/modules/extra にインストールします。
-
/usr/apache/src ディレクトリに戻り、Configuration ファイルを編集します。このファイルの末尾に近いところから、以下の行を見つけてください。
# AddModule modules/example/mod_example.o
この行の後に、以下の行を追加してください。
ShareModule modules/extra/mod_csp24.so
-
以下のコマンドを実行して、構築プロセスを構成します。
./Configure
-
以下のコマンドを実行して、共有オブジェクトを構築します。
make
共有オブジェクト mod_csp24.so を /usr/apache/src/modules/extra に作成します。
実行時の構成
Apache 構成ファイル httpd.conf を編集します。標準の Apache ディストリビューションでは、このファイルは以下の場所に配置されています。
/usr/apache/conf
Red Hat Linux の場合、httpd.conf の実行時バージョンは以下の場所に配置されています。
/etc/httpd/conf
拡張子 .csp、.cls、または .zen を含む要求されたファイルに対して CSP エンジンを呼び出す場合は、以下のセクションを httpd.conf の最後に追加します。
LoadModule csp_module /opt/webgateway/bin/mod_csp24.so
CSPFileTypes csp cls zen cxw
Alias /csp/ /opt/webgateway/csp/
<Directory "/opt/webgateway/csp">
AllowOverride None
Options MultiViews FollowSymLinks ExecCGI
Require all granted
<FilesMatch "\.(log|ini|pid|exe)$">
Require all denied
</FilesMatch>
<Files CSPnsd>
Require all denied
</Files>
</Directory>
ScriptAlias /csp-bin/ "/opt/webgateway/bin/"
ScriptAliasMatch /csp/bin/Systems/Module.cxw "/opt/webgateway/bin/nph-CSPcgiSys"
ScriptAliasMatch /csp/bin/RunTime/Module.cxw "/opt/webgateway/bin/nph-CSPcgi"
<Directory "/opt/webgateway/bin/">
AllowOverride None
Options None
Require all granted
</Directory>
httpd.conf の変更後に、Apache を再起動します。
接続プーリングの制御
接続プールのサイズは、http.conf で指定されている以下の Apache 構成パラメータで制御できます。
CSPMaxPooledNSDConnections <no>
このパラメータが存在しない場合は、既定値の 32 が内部的に使用されます。これは事実上、以下と同じです。
CSPMaxPooledNSDConnections 32
接続プーリングをオフにするには、以下のようにしてこのパラメータをゼロに設定します。
CSPMaxPooledNSDConnections 0
何らかの理由により、従来の操作モード (非対称モード) の使用 (これにより、Web ゲートウェイ側の接続が閉じられ、応答の送信終了が通知される) が必要になった場合は、このパラメータをマイナス 1 に設定します。
CSPMaxPooledNSDConnections -1
Apache API および NSD を使用した Web ゲートウェイの運用および管理
この接続オプションは、Web ゲートウェイの Network Service Daemon (NSD) に依存します。
-
"NSD の操作" の説明に従って、CSP NSD を起動します。
-
Apache の構成 (httpd.conf) を変更した後、その Apache を再起動する必要があります。
Apache と NSD を起動する順序は重要ではありません。
-
Web ゲートウェイ管理ページにアクセスするには、ブラウザに以下の URL を入力します。
http://localhost:<port_no>/csp-bin/nph-CSPcgiSys
承認されないユーザであることを通知するエラー・メッセージが表示された場合は、"追加クライアント・アドレスからのアクセスの有効化" を参照してください。
代替オプション 2 : NSD を使用した CGI モジュール (nph-CSPcgi)
インターシステムズのファイル・タイプを認識し、それらを Web ゲートウェイに渡して処理するように Web サーバを構成します。
Web サーバ構成ファイル (httpd.conf) は、以下のディレクトリにあります。
/usr/apache/conf
Red Hat Linux の場合、httpd.conf の実行時バージョンは以下の場所に配置されています。
/etc/httpd/conf
以下のセクションを、httpd.conf の最後に追加します。
<LocationMatch "/*\.([Cc][Ss][Pp]|[Cc][Ll][Ss]|[Zz][En][Nn])$">
AllowOverride None
Options FollowSymLinks ExecCGI
Require all granted
</LocationMatch>
ScriptAliasMatch /csp/bin/Systems/Module.cxw "/opt/webgateway/bin/nph-CSPcgiSys"
ScriptAliasMatch /csp/bin/RunTime/Module.cxw "/opt/webgateway/bin/nph-CSPcgi"
ScriptAliasMatch /*\.([Cc][Ss][Pp]|[Cc][Ll][Ss])$ "/opt/webgateway/bin/nph-CSPcgi"
Alias /csp/ instance-installation-directory
<Directory "instance-installation-directory">
AllowOverride None
Options MultiViews FollowSymLinks ExecCGI
Require all granted
<FilesMatch "\.(log|ini|pid|exe)$">
Require all denied
</FilesMatch>
<Files CSPnsd>
Require all denied
</Files>
</Directory>
ScriptAlias /csp-bin/ "/opt/webgateway/bin/"
<Directory "/opt/webgateway/bin/">
AllowOverride None
Options None
Require all granted
</Directory>
上記の構成ブロックは、Apache 環境で利用できる正規表現 (regex) プロセッサに依存しています。このケースに相当しない場合、結果として CSP ファイルは提供されません ("ファイルが見つかりません" というエラーが返されます)。この状況を修復するには、CSP ファイル拡張子で連結を行う代わりに、使用している Web アプリケーションの仮想のルート位置と、CGI モジュールを連結させます。例えば、使用している Web アプリケーションが /csp に含まれているとします。CSP CGI モジュールを /csp にあるファイルに関連付けるには、以下の手順に従います。
<LocationMatch "/*\.([Cc][Ss][Pp]|[Cc][Ll][Ss]|[Zz][En][Nn])$">
AllowOverride None
Options FollowSymLinks ExecCGI
Require all granted
</LocationMatch>
ScriptAliasMatch /*\.([Cc][Ss][Pp]|[Cc][Ll][Ss])$ "/opt/webgateway/bin/nph-CSPcgi"
以下のブロックと置換します。
<Location "/csp">
AllowOverride None
Options FollowSymLinks ExecCGI
Require all granted
</Location>
ScriptAlias /csp "/opt/webgateway/bin/nph-CSPcgi"
これらの指示文は、フォームの URL に対して作用します。
http://localhost:<port_no>/csp/*.csp
この構成ブロックを、他のルート位置で繰り返します。例えば、フォームの URL の /myapps に対して同様の処理を繰り返します。
http://localhost:<port_no>/myapps/*.csp
regex の問題を回避するには、CSP MIME タイプと組み合わせて Action 指示文を使用する方法もあります。ただし、Action は本質的にコンテンツに対するフィルタ技術なので、InterSystems IRIS サーバが別のコンピュータにインストールされている場合でも、CSP ファイルが物理的に Web サーバ・ホストに存在している必要があります。この方法を使用する場合は、最初に新規の MIME タイプを Apache のmime.types ファイルの最後に追加し、それを CSP コンテンツを表すファイル・タイプと連結させます。mime.types ファイルは、httpd.conf ファイルと同じディレクトリにあります。
text/csp csp cls
次に、httpd.conf の CGI 構成ブロックの最後に、Action 指示文を追加します。
Alias /csp/ /opt/webgateway/csp/
<Directory "/opt/webgateway/csp">
AllowOverride None
Options MultiViews FollowSymLinks ExecCGI
Require all granted
<Files CSPnsd>
Require all denied
</Files>
<Files CSP.ini>
Require all denied
</Files>
<Files CSP.log>
Require all denied
</Files>
<Files CSPnsd.ini>
Require all denied
</Files>
<Files CSPnsd.pid>
Require all denied
</Files>
</Directory>
ScriptAlias /csp-bin/ "/opt/webgateway/bin/"
<Directory "/opt/webgateway/bin/">
AllowOverride None
Options None
Require all granted
</Directory>
Action text/csp “/csp-bin/nph-CSPcgi”
httpd.conf の変更後に、Apache を再起動します。
CGI はオープン・スタンダードなので、CSP の CGI モジュールはすべての Web サーバで作動します。
CGI および NSD を使用した Web ゲートウェイの運用および管理
この接続オプションは、Web ゲートウェイの Network Service Daemon (NSD) に依存します。
-
"NSD の操作" の説明に従って、CSP NSD を起動します。
-
Apache の構成 (httpd.conf) を変更した後、その Apache を再起動する必要があります。
Apache と NSD を起動する順序は重要ではありません。
-
Web ゲートウェイ管理ページにアクセスするには、ブラウザに以下のいずれかの URL を入力します。
http://localhost:<port_no>/csp/bin/Systems/Module.cxw
http://localhost:<port_no>/csp-bin/nph-CSPcgiSys
承認されないユーザであることを通知するエラー・メッセージが表示された場合は、"追加クライアント・アドレスからのアクセスの有効化" を参照してください。
代替オプション 3 : NSD を使用した組み込み Apache API モジュール (mod_csp.c)
さらに複雑なこのオプションの設定を開始する前に留意する点があります。それは、現在のほとんどの UNIX® システムでは、共有オブジェクトとして実行時にモジュールをリンクする方法 (オプション 1) に対して、スタティック・リンクを使用する方法が持つパフォーマンス上の優位性はほとんどないという点です。
ご使用の Apache のマニュアルとあわせて、これらの説明をよく読んでください。
生成した Apache バイナリの確認
以下のコマンドを実行して、CSP モジュールが Apache コアに正常に追加されたことを確認します (このコマンドを実行すると、現在 Apache に組み込まれているすべてのモジュールが表示されます)。
./httpd -l
以下に例を示します。
Compiled in modules:
core.c
mod_access.c
mod_auth.c
mod_include.c
mod_log_config.c
mod_env.c
mod_setenvif.c
prefork.c
http_core.c
mod_mime.c
mod_status.c
mod_autoindex.c
mod_asis.c
mod_cgi.c
mod_negotiation.c
mod_dir.c
mod_imap.c
mod_actions.c
mod_userdir.c
mod_alias.c
mod_csp.c
実行時の構成
Apache 構成ファイル httpd.conf を編集します。標準の Apache では、このファイルは以下の場所に配置されています。
/usr/apache/conf
Red Hat Linux の場合、httpd.conf の実行時バージョンは以下の場所に配置されています。
/etc/httpd/conf
拡張子 .csp、.cls、または .zen を含む要求されたファイルに対して CSP エンジンを呼び出す場合は、以下のセクションを httpd.conf の最後に追加します。
CSPFileTypes csp cls zen cxw
ScriptAliasMatch /csp/bin/Systems/Module.cxw "/opt/webgateway/bin/nph-CSPcgiSys"
ScriptAliasMatch /csp/bin/RunTime/Module.cxw "/opt/webgateway/bin/nph-CSPcgi"
Alias /csp/ /opt/webgateway/csp/
<Directory "/opt/webgateway/csp">
AllowOverride None
Options MultiViews FollowSymLinks ExecCGI
Require all granted
<FilesMatch "\.(log|ini|pid|exe)$">
Require all denied
</FilesMatch>
<Files CSPnsd>
Require all denied
</Files>
</Directory>
ScriptAlias /csp-bin/ "/opt/webgateway/bin/"
<Directory "/opt/webgateway/bin/">
AllowOverride None
Options None
Require all granted
</Directory>
Apache に対するすべての要求は、事前に定義されたシーケンス内で実行されるモジュールのセットにより提供されます。CSP モジュールは最初に実行されるモジュールの 1 つです。ただし、その定義が構成ファイルの最後の部分に追加されていることが条件となります。
httpd.conf の変更後に、Apache を再起動します。
Apache API および NSD を使用した Web ゲートウェイの運用および管理
この接続オプションは、Web ゲートウェイの Network Service Daemon (NSD) に依存します。
-
"NSD の操作" の説明に従って、CSP NSD を起動します。
-
Apache の構成 (httpd.conf) を変更した後、その Apache を再起動する必要があります。
Apache と NSD を起動する順序は重要ではありません。
-
Web ゲートウェイ管理ページにアクセスするには、ブラウザで以下の場所のいずれかを指定します。
http://localhost:<port_no>/csp/bin/Systems/Module.cxw
http://localhost:<port_no>/csp-bin/nph-CSPcgiSys
承認されないユーザであることを通知するエラー・メッセージが表示された場合は、"追加クライアント・アドレスからのアクセスの有効化" を参照してください。