翻訳者: Shigeru Gougi (gougi@wingnest.com) [ver.1.0,2000/12/29] |
■ システム要求 |
Note: Enhydra Directorは、TCP/IPネットワークがサポートされている事を要求します。 もし、サポートしていない状況であれば、少なくてもシステムのネットワークインターフェースの一つをTCP/IPで構成してください。
▼ Windows NT
- ハードウェア: Intel 80386 または それ以上のCPU.(Pentium 200Mhz または、それよりも速いものを推奨します)
- オペレーティングシステム: Windows NT 4.0, Service Pack 6 または それ以降.
- Webサーバー:
- IPlanet/Netscape Enterprise Server version 4.0、またはそれ以上.
- Microsoft Internet Information Server, version 4.0、またはそれ以降.
▼ Solaris
- ハードウェア: 64 MB RAM (128 MB 推奨)を搭載したSparc互換システム
- オペレーティングシステム: Sun Solaris version 2.6
- Webサーバー:
- IPlanet/Netscape Web Server version 4.0 またはそれ以上
- Apache Web Server version 1.3.9 またはそれ以降
▼ Linux
- ハードウェア:
- Intel 80386 または それ以降の CPU. (Pentium 200Mhz またはそれ以上を推奨)
- 64 MB RAM以上を搭載したSparc互換システム (128 MB 推奨)
- オペレーティングシステム: glibc Cライブラリの最新のバージョンをサポートしたVersion 2.2 またはそれ以降のkernel. (Redhat 6.1 推奨)
- Webサーバー:
- IPlanet/Netscape Web Server version 4.0 またはそれ以上
- Apache Web Server version 1.3.9 またはそれ以降
■ 準備 |
/demoApp
')
obj.conf
ファイルの場所。C:\Netscape\Server4\<instance>\config\obj.conf
になります。/usr/netscape/server4/<instance>/config/obj.conf
になります。
C:\Netscape\EnhydraDirector
を推奨します。/usr/netscape/EnhydraDirector
を推奨します。/usr/local/apache/conf
になります。
/usr/local/apache/bin
になります。
■ IPlanetサーバーと共にDirectorを使う方法 |
▼ ファイル
NSAPI Extension:libedir.so
(Unix versions) またはEnhydraDirector.dll
(Windows NT version)
これらは、Enhydraへの要求を適切なEnhydraアプリケーションサーバに送る実際の仕事を行うNSAPI extendion DLLです。Enhydra Director 構成ファイル: enhydra_director.conf。
このDLLは、あなたが想定している全てのアプリケーションのURLプレフィックスに対する要求に応対するすべてのIPlanet Web サーバインスタンス上にインストールしなければいけません。
例えば、もしあなたが Webサーバ 'www.myhost.com'を有効にするようにIPlanetをセットアップを行い、あなたのアプリケーションを'http://www.myhost.com/myApp'で特定できるようになることを望むならば、'www.myhost.com' Webサーバインスタンスの'obj.conf'構成ファイルの中で、EnhydraDirector.dll extensionを有効にしなければいけません。
このモジュールの構成に関する詳細については、さらに以下を参照してください。このファイルはEnhydra Directorのための構成を含んでいます。'obj.conf'で行う必要がある設定の1つはこのファイルの位置の指定です。▼ UNIXシステムの為の手順
この説明では、EnhydraDirectorファイルが‘/usr/netscape/EnhydraDirector'にインストールされる事を仮定しています。EnhydraDirectorファイルを他の場所にインストールしたい時には、以下のステップの中で記述されている全ての‘/usr/netscape/EnhydraDirector'をあなたが実際にインストールするディレクトリと置き換えて読んでください。
- NSAPI Enhydra Directorの'tar.gz'形式のソースコードアーカイブをダウンロードし、拡張シェアードオブジェクト(extension shared object) '.so'ファイルをビルドする。
ビルドする時に GNU 'automake'環境が必要です。'automake'環境が整っていれば、'configure'スクリプトを実行させる事によりビルドを始める事ができます。
コマンドラインで'configure --help'とタイプ入力する事により、'configure'スクリプトがサポートしているオプションのリストを得ることができます。
もしNetscapeサーバーを非標準のディレクトリにインストールしている場合は、'--with-netscape-plugin-dir'オプションを使ってあなたのサーバ固有の'plugins'ディレクトリの在る場所を指定する必要があります。
また、'--enable-debugging'オプションは、可能な限り冗長なデバッグ情報の出力を行うマクロをビルドに追加するために使用します。
ビルドを終えると、以下のファイルが手に入るはずです:
./.libs/libedir.so
./enhydra_director.conf.default
./obj.conf.example
- Enhydra Directorファイルのインストール
推奨ディレクトリである'/opt/netscape/EnhydraDirector'を選択しているという仮定では、以下の様にビルドしたファイルをインストールします :
/opt/netscape/EnhydraDirector/libedir.so
/opt/netscape/EnhydraDirector/enhydra_director.conf.default
'obj.conf.example'ファイルは、必要な追加がコメントで強調された'obj.conf'の一つの用例です。
自分用の既存の‘obj.conf'ファイルを編集し同様な(しかし、まったく同じではない)エントリーを同じ場所に置かないといけません。
この事についてその他の詳細な内容は、このドキュメントで後述します。▼ Windows NTの為の手順
この説明では、EnhydraDirectorファイルを‘C: \Netscape\EnhydraDirector'にインストールすると仮定しています。
もし、ファイルを他の場所にインストールすることを考えている場合には、以下の全てのステップの中の'C:\Netscape\EnhydraDirector' を実際のインストールディレクトリに置き換えて読んでください。
- Enhydra Directorファイルを入手しビルドを行うか、コンパイル済みのバイナリ−をダウンロードする。
NSAPI Enhydra Director 'zip'ソースコードアーカイブをダウンロードして拡張シェアードオブジェクト(extension shared object) '.so'ファイルをビルドしてください。
もし、Microsoft Visual C++6.0またはそれ以降を持っていない場合は、EnhydraディストリビューションまたはEnhydra.orgWebサイトからコンパイル済みのNSAPI拡張DLLを入手してください。
NSAPIモジュールのWindows NT版をビルドするには、Visual Studioを起動し、Enhydra Director NSAPIワークスペースを開いてください: <EnhydraSrc>/modules/EnhydraDirector/src/nsapi/EnhydraDirector.dsw- 'EnhydraDirector'をアクティブプロジェクトに設定し、 あなたの必要にあわせて‘デバッグ'か‘リリース'にアクティブな構成する。
デフォルトでない位置にNetscapeサーバをインストールした場合には、ビルド設定(Cプロセッサー)で Netscapeヘッダーファイルを参照するように正しい'include'ディレクトリに編集する必要があります。- ここまで終えたら、'全てビルド'を行いDLLを再構築する。
ワークスペースと同じディレクトリに'enhydra_director.conf.default' と 'obj.conf.example'のコピーがあります。
新しくビルドされたDLLは、通常のVisual Studioの慣習通りに、ワークスペースのサブディレクトリである'Debug'または'Release'のなかで見つけることができます。- Enhydra Directorファイルをインストールする。
最終的にDLLとファイルをどのように入手したかには関係なく、次の場所にインストールします。:
C:\EnhydraDirector\EnhydraDirector.dll
C:\EnhydraDirector\enhydra_director.conf.default
Init fn="load-modules" funcs="edir_init,edir_nsapi_handler,edir_nsapi_name_trans" shlib= "/usr/netscape/EnhydraDirector/libedir.so" Init fn="edir_init" conffile="/usr/netscape/server4/<Instance>/config/enhydra_director.conf"
Init fn="load-modules" funcs="edir_init,edir_nsapi_handler,edir_nsapi_name_trans" shlib="C:\Netscape\EnhydraDirector\EnhydraDirector.dll" Init fn= "edir_init" conffile="C:\Netscape\Server4\<Instance>\config\enhydra_director.conf"Note: 上記の行の入力は‘
obj.conf
'ファイルの中の2つの実際の行だけになっている必要があります。/usr/netscape
にインストールされていない場合、または、'libedir.so
'DLLを推奨の場所にインストールしていない場合は、あなたのインストールした状況に沿うように上記の行を編集してください。<Instance>
をあなたが構成したWebサーバインスタンスと置き換えてください。<Objectname=
default>
'セクションの中へ、次の行を追加する:NameTrans fn=
edir_nsapi_name_trans
NameTrans
fn= document-root root= ....
<Objectname=
default>
の終わりを示す</Object>
の後ろに次のセクションを追加する:<Object
name= enhydra_director> Service fn="edir_nsapi_handler"
method=(GET|HEAD|POST) </Object>
obj.conf.example
'
ファイルは、架空サイトでの'obj.conf
'の例になっていますので参考にしてください。
▼ 問題: Netscapeサーバをスタートした時、NSAPI extension がロードに失敗します。▼ 問題: Enhydra Directorのスタートは成功しますが、私のアプリケーションへの接続ができません。
- 'obj.conf'の構成で'.so'または'.DLL'ファイルが正しいパスになっているか確認してみてください。
確認すべき個所は、'Init ... shlib= ...'ディレクティブになるでしょう。- エラーが起きていないかNetscapeサーバのエラー・ログを確認してみてください。
- enhydra_director.confファイルが存在していて、有効で文法的に正しい構成データを含んいることを確認にしてください。 文法が正しくない場合は、Enhydra Directorは、特定のエラーと行番号をNetscapeサーバエラー・ログに記録します。
▼ 問題:Netscapeサーバはクラッシュしたり、ハングしたり、不意に死にます。
- <Status>セクションを構成(configure)している場合、バックエンドEnhydraサーバに接続が失敗していないかどうかをステータス・プレフィックス(status prefix)をチェックしてください。
- enhydra_director.confで構成されているプレフィックスが、あなたのアプリケーションのためにEnhydraサーバで構成されるプレフィックスと一致していることを確認にしてください。
プレフィックスは、文字の大文字小文字を含め完全に一致しなければなりません! プレフィックスの最後のスラッシュは重要でなくて、無視されます。- enhydra_director.confファイルの中のアプリケーションサーバとポートにより、あなたのアプリケーションのインスタンスが実行されているかを確認にしてください。
- アプリケーションは、'EnhydraDirector'の接続手順で、NSAPI Enhydra Director extension がリクエストをディスパッチするポートを使用しなければなりません。
- ハンドラーの実行時ステータスと構成を調べることができるように、構成ファイルの<Status>セクションを構成する事は非常にお勧めです。
- Lutrisのエンジニアによる対応処置が必要なハンドラーまたはフィルターDLLの中のエラーが起きています。
- バグがNetscapeのどこかほかの場所にある可能性もあります。
- この種のあらゆるバグをwww.enhydra.orgの、Enhydra.orgの人々(folk)に報告してください。 失敗や成功に通じたことの詳細を提供してください。利用しているマシンの情報や構成情報は有益です。
- バグを一貫して再現させることができるならば、そのために必要な手順も記述してください。
■ Microsoft Internet Information Serverと共にDirectorを使う方法 |
▼ ISAPI Filter: EnhydraFilter.dll
これは、EnhydraアプリケーションURLを Enhydra Director ISAPI Handlerアプリケーションへの別ルートに変更するために必要なISAPIヘッダーのプリプロセス処理をするフィルタです。
グローバルISAPIフィルタ、あるいは特定のWeb Serverインスタンス上のローカルのフィルタとして構成(configure)されるかもしれません。
もしローカルのWeb Serverインスタンスとして構成されれば、それは構成されたWeb ServerのためのEnhydra URLを単にルーティングする事になるでしょう。
フィルタがグローバル(globally)に適用される場合、それはシステム上のすべてのIIS Web ServerにあるEnhydra URLを新しい経路でルーティングする事になるでしょう。
フィルタの構成方法の詳細に関しては、下記を参考にしてください。▼ ISAPI Handler Extension: EnhydraHandler.dll
これは、正確なEnhydraアプリケーションサーバーへEnhydraリクエストを転送する実際の仕事を行うISAPI extension DLLです。アプリケーションのURLプレフィックスに対応し実際の処理をするIIS Web Serverインスタンス個々にインストールしなければいけません。
例えば、Web server 'www.myhost.com' を使用可能にするためにIISを構成し、アプリケーションを'http://www.myhost.com/myApp'に配置する場合は、www.myhost.com Web Serverインスタンス上のEnhydraHandler.dll extensionを有効にしなければなりません。
Handlerの構成についての詳細は、下記を参照してください。▼ Enhydra Director 構成ファイル: enhydra_director.conf
このファイルは、Enhydra Directorの構成をするためのものです。
グローバルフィルタとしてEnhydraFilter.dllを構成したならば、すべてのIIS Web Serverインスタンスのための構成をコントロールするシステム上の唯一のファイルとなります。
フィルタが特定のサーバーのために構成されたなら、このファイルの異なるインスタンスは、各サーバーそれぞれのために存在するでしょう。構成ファイルはEnhydraFilter.dllと同じディレクトリーに位置するようにしなければなりません。
- EnhydraFilter.dll EnhydraHandler.dll
- enhydra_director.conf.default
▼ ステップ 1:IISを停止する
[スタートメニュー]->[設定]->[コントロールパネル]の操作手順でコントロールパネルをまず開き、その中にある'サービス'ダイアログをダブルクリックして開きます。
そして、これで、IISは停止します。
- 'World Wide Web Publishing Service'の為のエントリーを探し選択します。
- 次に、[停止]ボタンをクリックして 'World Wide Web Publishing Service'を停止します。
▼ ステップ 2: フィルタをインストールする (global)
フィルタをグローバルにインストールする場合は、この手続きに従ってください。特定のサーバーに対してのみインストールする場合は、次のセクションを参照してください。
- IIS InternetServiceManagerプログラムをスタートする:[スタート]->[プログラム]->[Windows NT 4.0 Option Pack]->[Microsoft Internet Information Server]->[Internet Service Manager]
- フォルダー'コンソール・ルート'を含んでいるツリービューで、サブフォルダー'Internet Information Server'が展開(expand)していな場合は展開してください。(あなたのマシンの名前の隣にある小さなコンピューター・アイコンを見てみてください。)
- あなたのマシンの名前のついたアイコンを右クリックしてください。(「規定のWebサイト」ではありません!) 'Properties'というメニューアイテムの他にも多くの選択可能なメニューアイテムを持ったポップアップメニューが現れるはずです。
- 'Properties'メニューアイテムをクリックしてください。'* <YourServerName> プロパティ'というダイアログボックスが現れます。
- 「マスタプロパティ」フレームの中のセレクション・ボックス(コンボボックス)で'WWWサービス'を選択し、その後、あなたのマシンのマスタIISプロパティを編集するために、[編集]ボタンをクリックしてください。この操作により、'<YourServerName>のWWWサービスマスタプロパティ'ダイアログボックスが現れます。
- このダイアログボックスの中の'ISAPIフィルタ'タブを選択してください。
- もし、'EnhydraFilter'フィルタがすでにインストールしてある場合は、それを削除してください。
- [追加...]ボタンをクリックしてください。この操作で、'フィルタのプロパティ'ダイアログボックスが現れます。
- 'フィルタ名'プロパティに、'EnhydraFilter'と入力してください。
- '実行ファイル'プロパティに'C:\EnhydraDirector\EnhydraFilter.dll'を直接入力するか、 [参照]ボタンをクリックしブラウズを行い設定をしてください。
- フィルタ名と実行ファイルが正しいことを確認し[OK]ボタンをクリックしてください。
- 'WWWサービスマスタプロパティ'ダイアログボックスに戻り、フィルタを追加するために[適用]ボタンをクリックしてください。フィルタは、IISを再起動しないと反映されません。
- 作業を終えるため、'WWWサービスマスタプロパティ'ダイアログボックスの中の[OK]ボタンをクリックしてください。
- フィルターはこれでインストールされましたのでIISを再起動すると反映されることになります。
▼ ステップ 2: フィルタのインストール (固有のサーバのための設定:for a specific server)
- IIS InternetServiceManagerプログラムをスタートする:[スタート]->[プログラム]->[Windows NT 4.0 Option Pack]->[Microsoft Internet Information Server]->[Internet Service Manager]
- フォルダー'コンソール・ルート'を含んでいるツリービューで、サブフォルダー'Internet Information Server'が展開(expand)していな場合は展開してください。(あなたのマシンの名前の隣にある小さなコンピューター・アイコンを見てみてください。)
- あなたのWebサイト・インスタンスへのエントリか、IIS既定のWebサイトインスタンスに関する'既定のWebサイト(Default Web Site)'で右クリックしてください。
- 'Properties'メニューアイテムをクリックしてください。'既定のWebサイトプロパティ'というダイアログボックスが現れます。
- このダイアログボックスの中の'ISAPIフィルタ'タブを選択してください。
- もし、'EnhydraFilter'フィルタがすでにインストールしてある場合は、それを削除してください。
- [追加...]ボタンをクリックしてください。この操作で、'フィルタのプロパティ'ダイアログボックスが現れます。
- 'フィルタ名'プロパティに、'EnhydraFilter'と入力してください。
- '実行ファイル'プロパティに'C:\EnhydraDirector\EnhydraFilter.dll'を直接入力するか、 [参照]ボタンをクリックしブラウズを行い設定をしてください。
- フィルタ名と実行ファイルが正しいことを確認し[OK]ボタンをクリックしてください。
- '既定のWebサイトプロパティ'ダイアログボックスに戻り、フィルタを追加するために[適用]ボタンをクリックしてください。
- 作業を終えるため、'既定のWebサイトプロパティ'ダイアログボックスの中の[OK]ボタンをクリックしてください。
▼ ステップ 3: ハンドラーのインストール
複数のIIS Webサイトで必要に合わせ繰り返してください。
- IIS Internet Service Manager Programを起動する: [スタート]->[プログラム]->[Windows NT 4.0 Option Pack]->[Microsoft Internet Information Server]-> [Internet Service Manager]
- フォルダ'コンソール・ルート'を含んだツリービューで、サブフォルダ'Internet Information Server'が展開されていない場合は、展開してください。 あなたのマシンの名前の小さなコンピュータアイコンが其の下にあるはずです。 この真下に、あなたのWebサイトへのエントリーがあります。 もし、このシステム上に一つのWebサイトしか持たない場合は、それは、「既定のWebサイト(Default Web Site)」として通常セット・アップされるでしょう。- そのWebサイトを展開してください。
- もし、'EnhydraDirector'という名前の仮想ディレクトリがすでに存在する場合は、それを削除してください。
- '既定のWebサイト'(または、代替Webサイトの名前)を右クリックし、ポップアップメニューから'[New]->[仮想ディレクトリ]'を選択してください。 この操作により、'新しい仮想ディレクトリウィザード'が現れます。
- 仮想ディレクトリの'エイリアス'名には'EnhydraDirector'を必ず使用してください。ケース(文字の大文字小文字)は重要です!
- ウィザードの[次へ]ボタンをクリックしてください。
- 物理パスには、'C:\EnhydraDirector'と入力または参照で設定してください。
- ウィザードの[次へ]ボタンをクリックしてください。
- アクセス権の設定は、'実行アクセスを許可する'をチェックし、その他のアクセス権はすべてチェックしないでください。 '実行'アクセス権は、ハンドラーが適切に作動するために、チェックする必要が必ずあります。
- 新しい仮想ディレクトリを追加するために、[終了]ボタンをクリックしてください。
- 選択されたWWWサーバインスタンスの為のハンドラーのインストールはこれで終わりです。 Enhydra Directorを使用するつもりでいる他のWWWサーバでも「ステップ3」を繰り返してください。
▼ ステップ 4: 構成ファイルを生成する
'C:\EnhydraDirector\enhydra_director.conf'ファイルを生成してください。最も簡単な方法は、'enhydra_director.conf.default'ファイルを'enhydra_director.conf'にコピーする事です。構成ファイルにおいて利用可能な命令(directive)のシンタックス及びすべての詳細な説明は、このドキュメントの範囲外です。しかしながら、デフォルト・ファイルは、あなたのサイト・セット・アップに適合させるために容易にコピーすることができる、いくつかの有用な例を含んでいます。さらに、デフォルト・ファイル内のコメントは、ほとんどの利用可能なオプションについて説明されています。注意すべき重要事項としては、構成ファイルがXML DTD(EnhydraDirectorConfig.dtd)に基づき、厳密に検証(validated)されるということです。そのファイルは妥当なXML文書としてDTDに定義されたフォーマットに従う必要がある事を意味します。すべてのセクションとプロパティ名のケース(文字の大文字小文字)は重要であり、様々なセクション中の並びも重要です。▼ ステップ 5: IISを起動する
コントロールパネルから'サービス'ダイアログを開いてください。 ([スタート]->[設定]->[コントロールパネル], 'サービス'をダブルクリック)
'World Wide Web Publishing Service'を探し、それを選択してください。そして、'World Wide Web Publishing Service'を起動するために、[開始]ボタンを押してください。これで、IISは、起動されたはずです。▼ ステップ 6: 正しく起動したか検証する
'イベントビューア'を[スタート]->[プログラム]->[管理ツール(共通)]->[イベントビューア]から起動します。起動したら、EnhydraFilterイベントの'アプリケーションログ'をチェックしてください。構成ファイルの処理に成功したことを示すフィルタからのイベントが、そこに含まれているかを確認します。▼ ステップ 7: 接続性の検証をする
- Webブラウザを起動してください。
- 構成ファイル中の<Status>セクションを構成したのであれば、ハンドラーが機能していることを確認するためにそのURLプレフィックスに接続してみることができます。 <Status>セクションのより詳細な情報は、デフォルト構成ファイルの中を参照してください。
- あなたが構成したアプリケーションのURLプレフィックスの一つに接続してみてください。
- もし、接続エラーが起きていれば、それらはアプリケーションイベント・ログに書き込まれますので'イベントビューア'を使って確認することが出来ます。
▼ 問題: IISを起動すると EnhydraFilter.dllのロードに失敗します
- フィルターDLLのパスが正しく設定されているかIISの構成をチェックしてください。
- フィルターまたはIISからエラーレポートが上がっていないか'アプリケーション'イベントがチェックしてください。
- enhydra_director.confファイルが存在し妥当で文法的に正し構成データであることを確認してください。もし、文法が正しくない場合は、フィルターは、そのエラーとライン番号を詳細にアプリケーションイベント・ログにレポートしているはずです。
▼ 問題: フィルターの起動はOKだけど、アプリケーションに接続できません▼ 問題: イベント・ログ(Event Log)メッセージは新しいラインを含んでいません
- EnhydraHandlerエラーレポートがないかアプリケーションイベント・ログをチェックしてください。
- もし、<Status>セクションを構成したならば、バックエンドのEnhydraサーバへの接続に失敗したstatusプレフィックスをチェックしてみてください。
- enhydra_director.confの中で構成したプレフィックスが、Enhydraサーバー上のアプリケーションのために構成したプレフィックスと一致することを確かめてください。プレフィックスは、ケース(大文字小文字)を含め、完全に一致しないといけません。プレフィックスの最後のスラッシュは、重要でなく無視されます。
- enhydra_director.confファイル中のアプリケーション・サーバー及びポートが、実行中のあなたのアプリケーションのインスタンスを確実に参照することを確認してください。
- あなたのアプリケーションがEnhydraサーバー上で実行していることを確かめてください。
- あなたのアプリケーションは、IISハンドラーがリクエストをディスパッチするポート上で、'EnhydraDirector'コネクション・メソッドを使用しなければなりません。
- ハンドラーの実行状態および構成を検査することができるように、構成ファイル中の'<Status>'セクションを構成することを強く推薦します。
これは、Windows NTの問題です。あなたがイベント・ロガー(event logger)に登録を行うアプリケーションを最初にインストールした直後、その現象が起きます。 Windows NTを再起動すれば、この問題は回避できます。▼ 問題: MSVCRTD.DLL not found
'Debug'コンパイルバージョンのフィルターまたはハンドラーの実行をしようとしていますが、Debugランタイムライブラリがインストールされていません。これらのライブライリは、Microsoft Visual C++に付属しています。▼ 問題: IIS が "Unhandled Exception"でクラッシュ、または、ハンドラーが死んだことを Web Application Managerがレポートします。
- Lutrisのエンジニアによる対応処置が必要なハンドラーまたはフィルターDLLの中のエラーが起きています。
- バグがIISのどこかほかの場所にある可能性もあります。
- この種のあらゆるバグをwww.enhydra.orgの、Enhydra.orgの人々(folk)に報告してください。 失敗や成功に通じたことの詳細を提供してください。利用しているマシンの情報や構成情報は有益です。
- バグを一貫して再現させることができるならば、そのために必要な手順も記述してください。
■ Apache Serverと共にDirectorを使う方法 |
▼ Apache拡張モジュール
Apache拡張モジュールは、mod_enhydra_director.so
です。
このファイルは、Apachelibexec
の中に存在し、httpd.conf
ファイルの中の AddModule と LoadModule 命令(directive) によってロードされます。このモジュールは、アプリケーション要求(request)をEnhydra Serverへ転送し、サーバー要求をクライアントに転送する仕事を行います。▼ Enhydra Director 構成ファイル
このファイル(enhydra_director.conf
)は、Enhydra Directorの構成(configuration)を含んでいます。
Enhydra Director構成ファイルで記述されている初期値では、Apache拡張モジュールは、httpd.conf
ファイルと同じディレクトリーに存在していることを想定した記述が行われています。▼ Enhydra Director デーモン
このプログラム(edir_daemon
)はバックグラウンドで実行し、ロード・バランシングを調整するためにモジュールの子インスタンスから使用されるシェアード・メモリー領域の状態をモニターします。
同時に起こる要求(request)のマルチスレッディングを可能にするために多くの個別のプロセスを使用する為、このデーモンがApacheに必要です。
Apacheが起動(launch)する時、デーモンは自動的に開始され、Apacheが停止する時、自動的にシェアード・メモリーをクリーンナップし終了します。▼ Enhydra Director ステータス ユーティリティ
このユーティリティ(edir_status
)は、シェアード・メモリー領域をEnhydra Directorモジュールを使って直接参照(read)し、構成された各アプリケーションおよびEnhydra Serverの現在の状態を報告します。▼ Enhydra Director スコアボード
スコアボード(enhydra_director.ipc
)は、Enhydra Director要求(request)を扱っている時に、全てのApache 子プロセスから使用されるシェアード・メモリー・データを持っています。
通常は、このスコアボードの内容は、シェアード・メモリー領域に基づくmmap()としてメモリ中で維持され、さらにロック機構に基づいたfcntl()を使用して、スコアボード・ロック・ファイルとしてサービスします。スコアボードの通常インストールされるホームは、Apachelogs
のサブディレクトリであるedir
です。スコアボードは、Apache子ユーザidに通常アクセス可能なだけです。▼ Apache エラー・ログ
Apacheサーバーのための標準エラー・ログは一般的にerror_log
と呼ばれます。
Enhydra Directorハンドラーは、リクエストを扱う間に遭遇したエラーをすべてこのファイルへの記録します。いくらかのスタートアップメッセージも、このファイルに記録されますが、Enhydra Director デーモン(Enhydra Director Daemon)は、システム・ログに対して大部分のスタートアップエラーを記録します。▼ システム・ログ
システム・ログは一般的に/var/log/messages
または/var/adm/messages
の中にあります。
デーモンが初期化している間にエラーに遭遇する場合、Apacheエラー・ログにアクセスは行わず、ログ書き込み用のデーモン('daemon' logging channel)を使用しシステム・ログにエラーを記録します。
▼ ステップ1: Enhydra Directorソースコードの入手
Enhydra Directorソースコードは、Enhydra Public License (EPL) の下で利用する事ができ、完全なEnhydraソース・コードディストリビューションの中に含まれています。Enhydra Directorのソースコードだけを含んでいるより小さなソース・ディストリビューションは、Enhydra 3.0のプリ・ビルト・ディストリビューションに含まれています。
上記のソースのどちらかからEnhydra Directorソースコードを入手し、作業ディレクトリーへ展開してください。Enhydraの完全なソースツリー使用する場合は、カレント・ディレクトリへ'enhydra-src3.0.tar.gz'を展開します。 Enhydra Directorソースは、
Enhydra/modules/EnhydraDirector/src/
の中に展開されます。Enhydraのプリ・ビルと・ディストリビューションを使用する場合は、'enhydra3.0.tar.gz' あるいは 'enhydra3.0.zip' を展開します。Enhydra Directorソース・アーカイブは、
enhydra3.0/director/enhydra-director1.0.tar.gz
あるいはenhydra3.0/director/enhydra-director1.0.zip
です。
enhydra3.0/director
にディレクトリーを変更して、カレント・ディレクトリへ上記のアーカイブのうちの1つを展開してください。展開したソースコードは、Enhydraディストリビューションを展開した
./enhydra3.0/director/enhydra-director1.0
の中の、./enhydra-director1.0
の中にあるでしょう。この時点で、展開したEnhydra Directorソース・コード・ディレクトリー・ルートへディレクトリーを変更してください。ルートディレクトリーは、'common'や'apache'、'nsapi'などのサブディレクトリを含んでいる'src'という名前のディレクトリーです。このディレクトリーを以後'$SRCROOT'と記述します。
▼ ステップ 2: Enhydra Director Apacheモジュールのビルド
もしあなたがSolarisあるいはLinuxのいずれかで既定の位置にApacheをインストールしていれば、このステップは容易に行えます。 './configure'スクリプトを引き数を指定せずに単に実行してください:
cd $SRCROOT/apache
./configure
make
make installこの手順により、Enhydra Director Apacheモジュールを構築し、Apacheディストリビューションの'libexec'ディレクトリーへ'mod_enhydra_director.so'ファイルのインストールが行われます。
'configure'のオプション: --with-apxs=/full/path/to/program/apxs
このオプションは、既定のconfigureスクリプトがApacheの'apxs'スクリプトを見つける事が出来ない場合に、そのスクリプトの位置を指定可能にします。'configure'のオプション: --enable-debugging
ビルド時にデバッグメッセージが出力されます。
このオプションは、モジュールのセットアップに関する問題に遭遇した時に、'httpd.conf'の中の'EnhydraDirectorDebug'オプション、または、'enhydra_director.conf'の中の<Options debug="0xNNNNNN"/>を有効にし、 デバッグが出来る様にします。'make install'を実行後、Apacheのインストールディレクトリの中の'libexec'ディレクトリーに'mod_enhydra_director.so'を確認することができるはずです。さらに'conf'ディレクトリーに'enhydra_director.conf.default'ファイルも確認できるはずです。
Note: 困難な事態をもたらす事を好む場合:
'edir_daemon'や'edir_status'、'enhydra_director.conf'ファイルは、好きな場所にインストールしてかまいません。 'mod_enhydra_director.so'ファイルは、Apacheをインストールしたディレクトリの'libexec'ディレクトリーの中にインストールしてください。'libexec'ディレクトリーは、インストレーションによっては'libexec'と名前付けされていないかもしれませんので注意してください。'./configure' と 'make install'は、'apxs'スクリプトの場所を指定する必要がある時に限り、--with-apxsオプションを使うだけなので、とても簡単です。
Enhydra Director構成ファイルや各種データ・ファイルの位置を指定する場合、以下の'httpd.conf'オプションを使用してください。
'enhydra_director.conf'ファイルへの完全なパスを記述してください。
デフォルトは、Apacheのインストールを行ったディレクトリ直下にある'conf'サブディレクトリの中の'enhydra_director.conf'になっています。
スコアボード(scoreboard)ユーティリティが共有アクセスのロック処理で使用するファイルの位置を記述してください。
このパラメーターをセットした場合は、あなたが開発者である場合や、何をしているかを本当に理解して特殊なプラットフォームへのポーティングをしている時でなければ、'EnhydraDirectorData'オプションをセットする必要はありません。
NFSファイルシステム上にEnhydraDirectorをインストールした場合は、このパラメーターのセットが必要かもしれません。 殆どのNFSインプリメンテーションが抱えるロック処理のバグにより、ロック・ファイルがNFSファイル・システムに置かれる場合、EnhydraDirectorは動作しないでしょう。
デフォルトでは、ロック・ファイルは'logs'ディレクトリーの下に位置しています。 ロード・バランシング・コードがApache子ユーザIDで実行することが可能であるために、実際のロック・ファイルは'logs/edir'の下に位置し、'edir'のパーミッションは、子プロセスが読み書き(Read/Write)可能に設定されます。'logs'ディレクトリのパーミッションは影響を与えません。
あなたが開発者であるか、または、代替シェアード・メモリー・モジュールで実験する場合以外、通常このパラメーターをセットする必要はありません(edir_shmem.hを参照)。
このオプションは、ロック・ファイルとは異なるファイル、あるいはSystme
V
IPC領域をスコアボード共有データ・ファイルとして指定することを可能にします。
デフォルトでは、'mmap'シェアード・メモリー・モジュールは、'filesys'ミューテック・モジュールと同じファイルを使用します。
(参照 edir_mutex.h).
これは、Solaris、LinuxおよびFreeBSDを含む、最も最新のunixインプリメンテーションでロックおよびデータ共有に同じファイルを使用していることを意味します。
あなたが、Apacheの'bin'ディレクトリーとは異なる位置にEnhydra Directorデーモン(edir_daemon)をインストールしなければならない場合、このオプションはデーモン・プログラムへの完全なパスを指定するのに使用することができます。
Enhydra Directorをビルドする時に'--enable-debugging'使用すると、
このオプションは、モジュール中でデバッギング・マスクをセットするために使用する事ができます。
Enhydra
Directorが起動するとき、デバッギング・マスクはさらにデーモンに伝達されます。有効な値の詳細については、edir_debug.hまたはenhydra_director.conf.defaultを参照してください。
値'0xffffffff'を指定し、全てを有効にすると、モジュールとEnhydra間の全通信のヘクサダンプを含む高度で豊富なデバッギングができます。警告しておきますが、これを行うと
Enhydra
Directorパフォーマンスをものすごく制限し、Apacheエラー・ログへのデータ書き込みで幾百メガバイトのダンプが行われるでしょう。
このオプションが最も早く設定され、デーモンを起動するコードと同様にconfigファイルおよびスコアボードをロードするコードのデバッグを可能にするという点を除いて、このオプションはenhydra_director.confの中の<Option
debug="0xNNNNNNNN"/>と同一です。
▼ ステップ 1
'httpd.conf'がApacheをインストールしたディレクトリのどの位置にあるかを確認してください。通常このファイルは、'/usr/local/apache/conf/httpd.conf'になります。
しかしながら、Apacheは非常に柔軟なインストールをすることができますので、異なっているかもしれません。ビルド・スクリプトは、自動的にコンパイルされたモジュールおよびプログラムを'apxs'を使って推奨位置へインストールします。▼ ステップ 2
ApacheがDSOモジュールをどこへ格納するか決めてください。これは通常、Apacheをインストールしたルートの下の'libexec'です。例えば、多くのApacheインストール設定では、DSPモジュール・ディレクトリは、'/usr/local/apache/libexec'です。
'libexec'の位置のノートをとっておいてください。これは、'sbin'または'modules'のような他の何かであるかもしれません。'httpd.conf'の中の'LoadModule'行を構成する時にこれを必要とするでしょう。▼ ステップ 3
Enhydra DirectorモジュールをApache構成(Apache configuration)に追加してください。
- テキストエディタで、'httpd.conf'を開いてください。
- ファイルの最終行に'LoadModule'ではじまる行がないか探してください。 (デフォルトの'httpd.conf'は、少なくともコメント・ラインを持っているべきですが、コメントアウトされたLoadModuleラインさえ見つからない場合、ファイルの終端へただ移動してください。)
- ステップ2で位置決めした'libexec'ディレクトリーの最終的な構成要素を使用して、LoadModules命令のリストに次のような行を追加してください:
LoadModule enhydra_director_module libexec/mod_enhydra_director.so- もし、Apacheインストレーションの'libexec'パスの最終的な構成要素を('modules'といった)他の場所に入れる場合、次のような行を追加してください:
LoadModule enhydra_director_module modules/mod_enhydra_director.so- 他の'LoadModule'行がある場合、それらは通常libexecパスへの正確なパスを持っていますので、ガイドとして他の命令を使用してもかまいません。
Note: 'mod_rewrite'を使う場合、Enhydra DirectorへのURLをリライト(rewrite)するために'mod_rewrite'を使用するつもりであれば、'LoadModule rewrite_module ...'命令が'LoadModule enhydra_director_module ...'命令の前にこないように確認する必要があります。 さらに、'mod_rewrite' '[PT]'タグをリダイレクトされたURLの通り抜け(pass-through)を強制するために使用すべきです。- 次に、'AddModule'で始まる最終行を探してください。 更に、そのような行がコメントアウトされた行として存在しない場合は、ファイルの終端へただ移動してください。 次の行を追加してください:
AddModule mod_enhydra_director.c- 'httpd.conf'ファイルに'EnhydraDirectorDebug'のような任意の希望のEnhydra特有の命令(Enhydra-specific directives)を追加してください。 これらの命令は、ほとんどすべての場合においてオプション扱いです。
- 'httpd.conf'ファイルをセーブしてください。
▼ ステップ 4
Enhydra Director構成ファイルを生成してください。ApacheのためのEnhydra Director構成ファイルは、通常'httpd.conf'と同じディレクトリーに位置します。けれども、異なるファイルを指定するためにhttpd.confにおいて'EnhydraDirectorConfigFile'命令(directive)を指定することもできます。構成ファイルの中で許されているすべてのディレクティブと文法に関する十分な説明は、このドキュメントの範囲外です。けれども'enhydra_director.conf.default'ファイルは、簡単にあなたのサイトのセットアップに合わせてコピーすることが出来るいくつかの有用な例を含んでいます。
また、デフォルトファイルの中のコメントには利用可能な大部分のオプションの説明があります。
注意すべき重要なことは、構成ファイルはXML DTD(EnhydraDirectorConfig.dtd)に基づいて、厳密に正当なものにされることです。これは、構成ファイルが正当なXMLである事と、DTDの中で定義された形式を理解しなければならないことを意味します。ケース(*)はすべてのセクションと属性名で重要で、並びは異なったセクションの中で重要です。(訳注:「ケース」は、綴りの大文字小文字)
▼ Step 5: Apacheサーバーを再起動する
'apachectl'スクリプト、または、あなたが作成したスクリプトを使って、Apacheサーバを再起動してください。簡単な方法は'apachectl restart'です。▼ ステップ 6: 正常に開始されたかを確認する
- 'ps -aef'または'ps -ax'(システムに依存します)を使って、'edir_daemon'が実行しているか確認してください。
- Apache logsディレクトリーの中に、'enhydra_director.ipc'ファイルを持った'edir'と呼ばれるサブディレクトリがある必要があります。このファイルは、ロック・アンド・スコアボードファイル(the lock and scoreboard file)です。
- 'httpd'があるApache'bin'ディレクトリー中で、'edir_status'を実行してください。 これにより、'enhydra_director.conf'の中の構成をダンプします。 もし、これに成功すれば、Enhydra Directorは実行しています。
- エラーが'edir_daemon'プロセス内で発生している場合、エラーは'syslog()'を使用して、システム・ログに記録されます。'daemon'チャネルが使われます。通常、メッセージは、Linuxの上の'messages'ファイル(それはSolaris上では'/ var/adm/messages'である)および「/var/log/messages」に書き込まれます。
- 初期化エラーがモジュール内で発生している場合、エラーはApacheエラー・ログの中にレポートされます。
▼ ステップ 7: 接続性について確認する
- Start up a web browser.
- Webブラウザを起動してください。
- 構成時に<Status>セクションの構成を行った場合は、ハンドラーが機能している事を確実なものとする為にそのURLプレフィックスに接続してみてください。 <Status> セクションに関するより詳細な情報は、デフォルトの構成ファイルを参照してください。
- 構成したアプリケーションプリフィックスの一つに接続してください。
- もし深刻なエラーが発生していれば、Apacheエラーログに記録されています。
▼ 問題: Apacheを起動すると Apacheエクステンジョン(apache extension)のロードに失敗します
- 前のセクションの記述に従った正確なモジュールの構成が行われているか'httpd.conf'をチェックしてください。
- edir_daemonプログラムからレポートされたエラーが書き込まれていないかシステム・ログ・ファイルをチェックしてください。
- Enhydra Directorモジュールからレポートされたエラーが記述されていないかApacheエラー・ログをチェックしてください。
- 'enhydra_director.conf'ファイルが存在し、有効で構文上正しい構成データになっていることを確認してください。 文法が妥当でない場合、Enhydra DirectorはApacheエラー・ログに特定のエラーおよび行番号をレポートします。
▼ 問題: Enhydra Directorの起動はOKだけど、アプリケーションに接続できません
- もし、<Status>セクションを構成したならば、バックエンドのEnhydraサーバへの接続に失敗したstatusプレフィックスをチェックしてみてください。
- enhydra_director.confの中で構成したプレフィックスが、Enhydraサーバー上のアプリケーションのために構成したプレフィックスと一致することを確かめてください。プレフィックスは、ケース(大文字小文字)を含め、完全に一致しないといけません。プレフィックスの最後のスラッシュは、重要でなく無視されます。
- enhydra_director.confファイル中のアプリケーション・サーバー及びポートが、実行中のあなたのアプリケーションのインスタンスを確実に参照することを確認してください。
- あなたのアプリケーションは、Enhydra Directorエクステンジョンがリクエストをディスパッチするポート上で、'EnhydraDirector'コネクション・メソッドを使用しなければなりません。
- ハンドラーの実行状態および構成を検査することができるように、構成ファイル中の'<Status>'セクションを構成することを強く推薦します。
▼ 問題: Apache 子プロセスがコア(core)を吐きます (crash)
- Lutrisのエンジニアによる対応処置が必要なハンドラーまたはフィルターDLLの中のエラーが起きています。
- バグがApache、または、他のモジュールに存在する可能性もあります。可能であれば、その問題がEnhydraモジュールで起きているかどうかを切り分けするために'httpd.conf'ファイルから無用のモジュールをすべて取り除いてください。
- あなたがエンジニアで、私たちにgdbからのスタック・トレース(stack trace)を提供して頂けたならば、私たちはとても感謝します。 特に、'--enable-debugging'オプションをつけてコンパイルされた物から出たスタック・トレースは感激です。:)
- この種のあらゆるバグをwww.enhydra.orgの、Enhydra.orgの人々(folk)に報告してください。 失敗や成功に通じたことの詳細を提供してください。利用しているマシンの情報や構成情報は有益です。
- バグを一貫して再現させることができるならば、そのために必要な手順も記述してください。
■ アプリケーションの構成 |