![]() |
インターネットプログラムのビルド | 状態維持ライブラリルーチン |
この章では、アプリケーションを実装して実行する方法について説明します。この章の説明は、次の場合に必要になります。
アプリケーションの実装とは、アプリケーションをインターネットやイントラネットで使用できるように Web サーバに配置することです。この場合の Web サーバは、アプリケーションを開発およびデバックし、予想通りに稼動することを確認するために使用するローカルの UNIX システムである場合と、アプリケーションを使用するユーザのための別の UNIX システムである場合があります。
アプリケーションをプロダクション Web サーバに実装した場合は、次の点を確認する必要があります。
アプリケーションを Web サーバに実装する前に、アプリケーションの配布に関する使用許諾条件を必ず読んでください。使用許諾条件は、標準のテキストファイル license.txt に収録されています。
Server Express では、Web プログラムの CGI インターフェイスに準拠したアプリケーションをビルドすることができます。つまり、これらのインターフェイスに完全に準拠した Web サーバでは、 Server Express アプリケーションを実行することができます。Server Express の発売時には、Server Express を使用して作成した CGI プログラムを次のサーバでテストしてあります。
この項では、インターネットアプリケーションを実行するための Web サーバの設定方法を説明します。正確な方法は、サーバによって異なるため、設定方法の正確な説明については、サーバのマニュアルを参照してください。
Web サーバの設定方法は、次のとおりです。
ターゲットマシンの Web 共有リソースが開発マシンの Web 共有リソースと異なる場合は、『アプリケーションの URL の変更』 の説明にしたがって、アプリケーションのファイルを編集する必要があります。
| Web 共有リソース
|
アクセス権
|
説明
|
|---|---|---|
| bin-share | 実行 | この共有リソースには、アプリケーションの実行可能ファイルを格納します。 |
| form-share | 読み取り専用 | この共有リソースには、アプリケーションのフォームと HTML ページ (.htm ファイル) を格納します。 |
| image-share | 読み取り専用 | アプリケーションに多くのイメージがある場合には、独立した共有リソースに格納し、アプリケーションのメンテナンスを容易にすることができます。 |
注 :
開発システムでアプリケーションを開発している場合に、cgi-bin ディレクトリと、HTML ページのディレクトリの名前が、ターゲットシステムの各ディレクトリ名と異なることがあります。アプリケーションが指すディレクトリを変更する必要がある場合は、次の変更を行う必要があります。
DISPLAY 動詞により出力される HTML フォームのパスを変更する方法は、次のとおりです。
fullpath/htmlfile.htm
この場合、fullpath は、.htm ファイルをインストールする Web サーバの場所を指す完全な物理パスであり、Web 共有リソース名ではありません。
必要な場合は、これらの変更を行った後にアプリケーションを再ビルドしてください。
インターネットアプリケーションをプロダクション Web サーバに実装するには、アプリケーションを構成するファイルをコピーする必要があります。
ページが常に 1 つのサーバ側プログラムから EHTML により出力される場合は、入力フォームの .htm ファイルは、プログラムの実行コードに埋め込まれているため、Web サーバにコピーする必要はありません。
Web 共有リソースは、『Web サーバの設定』 の項で設定したものです。
たとえば、次のスクリプトは実行する必要がある典型的なスクリプトです。このスクリプトは、COBOL 環境を設定して、cgiapp というプログラムを実行します。
# COBDIR および COBPATH を設定して、プログラムを実行する # COBOL 製品を検索します。 # COBOL システムの場所を設定します。 COBDIR=/usr/test/cobol # COBOL プログラムの検索パスを設定します。 COBPATH=:/usr/test/cobol/progs # PATHを設定します。 PATH=$COBDIR/bin:$PATH # ライブラリパスを設定 - SVR4 システムの場合は LD_LIBRARY_PATH にします。 LIBPATH=$COBDIR/lib:$LIBPATH # 次の変数を環境に配置します。 export COBPATH COBDIR PATH LIBPATH # cgiapp を実行します。 cobrun cgiapp $*
/usr/netscape/suitespot/https-machinename/start
『サーバ側のプログラミング』 の章で説明しているサーバ側のサポート機構では、sstate と呼ばれるモジュールを使用します。 これは、COBOL ランタイムシステムの一部ではありません (必要に応じて変更できるようにソースが用意されています)。そのため、sstate を使用するアプリケーションを実装する場合は、CGI の実行可能プログラムとともにアプリケーションを配信する必要があります。
sstate モジュールは、呼び出し可能共有オブジェクト (sstate.so) にコンパイルして、CGI プログラムが保存されているターゲットマシンの同じディレクトリにコピーする必要があります。
インターネットアプリケーションの実行方法は、その他の COBOL アプリケーションの実行方法と同じです。アプリケーションの実行方法の詳細については、『Server Express ユーザガイド』 の 『実行』 の章を参照してください。運用システムの Web サーバにインターネットアプリケーションを実装する方法については、前の項を参照してください。
インターネットアプリケーションの環境を設定した後にアプリケーションを実行するスクリプトを使用してアプリケーションを実行します。スクリプトの例については、前の項を参照してください。
アプリケーションを実行するには、プロダクションマシンにあるスクリプトの名前をフォームが認識している必要があります。
<FORM ACTION="/cgi-bin/script-name"> ... </FORM>
ただし、アプリケーションの開発中は、cobrun トリガを使用して CGI プログラムを開始できます。これらのトリガについては、次の項で説明します。
注 : cobrun トリガはプロダクションマシンで使用できますが、この場合は、システムの実行可能プログラムとして作成された CGI アプリケーションを実行できません。
アプリケーションを開発して実行するには、通常、root または管理者としてアクセスする必要があります。また、環境を設定するシェルスクリプトを作成する必要もあります。Server Express では、CGI アプリケーションの開発を容易にするためのさまざまなトリガと構成ファイルを提供しています。これらのトリガ用の構成ファイルは、アプリケーションへの開発アクセス権を定義するためにも使用できます。
シェルスクリプトを使用する代わりに、cobrun トリガまたは cobrun_t トリガを使用して Web アプリケーションを起動できます。たとえば、次のように記述します。
<FORM ACTION="/cgi-bin/trigger/myuserid/program"> ... </FORM>
パラメータの内容は、次のとおりです。
trigger |
cobrun または cobrun_t |
myuserid |
ユーザ ID |
program |
Server Express の実行可能ファイル。たとえば、.int ファイルや呼び出し可能共有オブジェクトなど。 |
トリガは、システム管理者が Web サーバの cgi-bin ディレクトリにコピーする必要があります。このコピーを行うスクリプトが提供されています。このスクリプトを実行するには、次のように入力します。
sh $COBDIR/bin/cgibin/cobrun.inst
このスクリプトにより、usercgi.cfg という構成ファイルも Web サーバの cgi-bin ディレクトリに配置されます。このファイルは次の内容を定義します。
usercgi.cfg はテキストファイルであり、テキストエディタを使用するか、または、プログラム mfcgicfg を使用して編集できます。
ファイルの各行は次のような形式になっています。
user:user_cgi_directory:access=options
パラメータの内容は、次のとおりです。
user |
ユーザID | ||||||
user_cgi_directory |
ユーザ名に関連付けられた cgi-bin ディレクトリ | ||||||
options |
アクセスオプション。次のいずれかを指定できます。
|
ユーティリティ、 $COBDIR/cgi-bin/mfcgicfg を使用して usercgi.cfg 構成ファイルをチェック、表示、および編集できます。このユーティリティの形式は次のとおりです。
mfcgicfg [option]
パラメータの内容は、次のとおりです。
option |
次のオプションのうちのいずれかです。 |
option パラメータの値は、次のうちのいずれかを指定します。
check |
オプションの誤り、無効なディレクトリ、および環境ファイルの有無をチェックします。 |
list |
内容を読み込んで画面に表示します。 |
delete name |
ユーザを削除します。たとえば、次のように記述します。mfcgicfg delete useridここで、 userid は、自分のユーザ ID です。 |
add name directory options |
ユーザを追加します。たとえば、次のように記述します。mfcgicfg userid www/cgi-bin access=fullここで、 userid は、自分のユーザ ID です。 |
.mfcgienv 構成ファイルにユーザ定義の環境を作成することができます。このファイルは、現在の環境に配置するか、または cgi-bin ディレクトリに配置することができます。ここで定義した環境を現在の環境に追加してから、Web アプリケーションを実行します。
注 : 次のコマンドを入力すると、このファイルをすばやく作成して編集することができます。
env >.mfcgienv
この後で、不要な環境変数を削除します。
cobrun トリガ、または cobrun_t トリガを使用して CGI プログラムを実行すると、次のエラーメッセージが表示される場合があります。
| cobrun: Permission denied | |
このエラーメッセージは、次の場合に表示されます。
|
|
| no file name given | |
| このエラーメッセージは、フォームの action タグにプログラム名が指定されていない場合に表示されます。action タグを修正してください。 | |
| user defined in config file but does not exist on machine | |
| . | フォームの action タグをチェックして、ユーザ名が有効なことを確認してください。たとえば、次のように記述します。/cgi-bin/cobrun/valid-user-name/program
ユーザ名が有効な場合は、管理者がアクセス制御ファイル (usercgi.cfg) にエントリを追加する必要があります。 |
| user defined in config file but does not exist on machine | |
| アクセス制御ファイル (usercgi.cfg) の管理者に、ユーザ ID のエントリを確認するように依頼してください。 | |
| cannot access cgi-bin directory | |
mfcgicfg check を実行して、usercgi.cfg が正しく設定されていることを確認してください。 |
|
| unable to change supplementary group
access list unable to change group id unable to change user id |
|
| トリガの setuid 権限が正しく設定されていること、およびファイルの所有者が root であることを確認してください。 | |
| 正しい権限が設定されていさえすれば、cobrun[_t] トリガを実行することができます。 | |
Web サーバの cgi-bin ディレクトリに対するアクセス権を設定する場合は、次の事項を確認してください。
Copyright © 2002 Micro Focus International Limited. All rights reserved.
本書、ならびに使用されている固有の商標と商品名は国際法で保護されています。
![]() |
インターネットプログラムのビルド | 状態維持ライブラリルーチン | ![]() |