ロゴ:

ヘルプの目次
このヘルプについて
 
エンドユーザ向けヘルプ
クライアントヘルプ
Webアクセスヘルプ
スクリーンリーダー
フォーム
用語
コンテナ
 
管理者向けヘルプ 管理者向けヘルプ
サーバの管理
インターネットサービス
カスタマイズツール
 
Advertising banner:
 
 A157
 
スクリプトによるインターネットサービスの拡張



CGIとISAPIによるインターネットサービスの拡張
06092010_122716_1.png注意
CGIスクリプトとISAPIスクリプトについては、FirstClassに関連する内容についてのみ説明します。CGIやISAPIでアプリケーションを作成する方法については説明いたしません。
ご利用のサイトにスクリプト機能を追加すると、サイトの機能を拡張して、より動的な動作を実行できるようになります。インターネットサービスは、以下の2種類のスクリプトに対応しています。
• CGI(Common Gateway Interface)
• ISAPI(Internet Services API)(Windowsのみ対応)
どちらの場合も、アプリケーションを作成および実行する(PerlやPHPなどの)スクリプト言語を、あらかじめご利用のマシンにインストールしておく必要があります。例えば、ActiveState PerlFirstClassの最新バージョンをインストールすると、Cドライブのルートに[Perl]ディレクトリが作られ、Perlの実行ファイルへの絶対パスは「c:\Perl\bin\perl.exe」となります。
FirstClassでCGIまたはISAPIのアプリケーションを使用するには、以下の3つの作業を行う必要があります。
• アプリケーションを作成する
• 作成したアプリケーションを、ハードディスク上の適切な場所に保存する
• WebサイトのHTMLドキュメントに、このアプリケーションへのリンクを作成して利用できるようにする



[cgi-bin]フォルダ
CGIスクリプトとISAPIスクリプトを動作させるためには、スクリプトを[cgi-bin]フォルダに保存する必要があります。[cgi-bin]フォルダ(外部フォルダ)はインターネットサービスの実行ファイルと同じフォルダ内に置きます。デフォルトでは作成されないため、手動で作成してください。スクリプトがたくさんある場合などは、サブフォルダを作成して、スクリプトを種類ごとに分けて保存できます。また、2つのスクリプトに同じ名前を付ける場合は、その2つを[cgi-bin]フォルダ内の異なるサブフォルダに保存する必要があります。
インターネットサービスでは、[cgi-win]フォルダを作成し、(Visual Basicアプリケーションなど)WinCGIプロトコルに準拠した実行ファイルを利用することもできます。[cgi-win]フォルダも、デフォルトでは作成されない外部フォルダであるため、[cgi-bin]フォルダと同じ場所に作成する必要があります。このフォルダは、管理者デスクトップ上の[Internet Services]フォルダではなくインターネットサービスを実行しているマシン上に作成するため、そのマシンに物理的に接続しているユーザだけが実行ファイルを追加または削除できます。



CGIの利用方法
HTMLを利用すると静的なコンテンツを作成できますが、CGIアプリケーションを利用すると動的なコンテンツを作成できます。例えば、Webカウンタや、日付情報のように常時更新されるフィールドなど、インタラクティブなフォームを作成できます。
ご利用のシステム上で実行可能なオブジェクトを作成するCGIスクリプトは、任意の言語で記述できます。例えば、WindowsではC++、Visual Basic、Perlスクリプト、MacではCコンパイラやC++コンパイラ(または標準入力と標準出力の読み書きに対応したコンパイル言語やスクリプト言語)などを使用できます。
作成を行う前に、[cgi-bin]という名のディレクトリが、インターネットサービスの実行ファイルと同じディレクトリ内にあることを確認してください(ない場合は作成します)。このフォルダが、Perlスクリプトの保存先となります。
CGIの基本構文
CGIは、以下の構文を利用してHTMLドキュメントから呼び出すだけで使用できます。
/cgi-bin/実行ファイル名?引数
または
/cgi-bin/フォルダ名/実行ファイル名?引数
このうち、
cgi-bin:フォルダの名前です。
フォルダ名:サブフォルダの名前です。
実行ファイル名 :使用するCGI実行ファイルの名前です。
引数:そのCGI実行ファイルで利用できる追加の引数です。
この実行ファイルへのリンクをWebページに記述できます。
CGIスクリプトの設置
CGIスクリプトを設置するには、以下の操作を行います。
1 FirstClassサーバとインターネットサービスの実行ファイルがあるフォルダ内に[cgi-bin]フォルダを作成します。
2 CGIスクリプトファイル用の[cgi-bin]フォルダ内にフォルダを作成します。
3 このフォルダにすべてのCGIファイルをインストールします。
4 CGI実行ファイルのReadMeドキュメントの指示に従って、実行ファイルを設定します。
5 CGIのReadMeドキュメントに書かれているコードを利用して、Webサイトのトップページ(またはWebサイト上の他のHTMLドキュメント)にリンクを追加します。
6 Webサイトにログインして、CGI実行ファイルをテストします。
あとで説明するように、Aliasesドキュメントを使用して、CGIスクリプトファイルがWebブラウザから見えないようにすることができます。



ISAPIの利用方法
2102006_15909_0.pngWindows
ISAPIはインターネットサービスと緊密に統合されているため、ISAPIを利用すると、従来のCGIプログラムより高速に動作するWebベースのアプリケーションを開発できます。これにより、動的なWebアプリケーション(またはスクリプト)を使用して、FirstClassシステムを拡張できます。ご利用のシステム上で実行できるオブジェクトを作成するISAPIスクリプトは、任意の言語で記述できます。例えば、WindowsではC++、Visual Basic、またはPerlスクリプトを使用できます。
ISAPIプログラムがCGIプログラムと大きく異なる点は、いったんメモリに読み込まれるとサーバに常駐することです。これに対し、CGIプログラムは、ユーザのWebブラウザから各アプリケーションが要求されたときにメモリに読み込まれ、実行されるとメモリから削除されます。ISAPIプログラムがCGIプログラムより高速に動作することが多いのはこのためです。



AddHandlerドキュメントの利用
AddHandlerドキュメントは、インターネットサービスが処理する特定のHTTP要求に対して追加のプログラムを実行する方法を定義するドキュメントです。Webの要求と追加プログラムとの関連付けを定義するには、ファイルによる関連付けとContent-Typeによる関連付けの2つの方法があります。AddHandlerドキュメントで指定したファイルの関連付けは、OSで設定されているファイルの関連付けより優先されます。Content-Typeによる関連付けは、各HTTP要求のContent-TypeヘッダをAddHandlerドキュメントで指定した内容と比較することで行われます。要求URLの最後にあるファイル拡張子は利用しません。
以下のような場合に、AddHandlerドキュメントの利用が推奨または必要とされます。
• インタプリタのインストール時にファイルの関連付けが自動的に設定されない場合
• ファイルの関連付けを簡単に管理できる機能がOSにない場合
• [cgi-bin]フォルダ内にダミーのドキュメントを作成しなくてもHTTP要求が処理される場合
AddHandlerドキュメントは管理者デスクトップの[Internet Services]フォルダ内にあり、新規インストールまたはアップグレード時に自動的に作られます。このドキュメントでは、AddHandlerとAddURLHandlerという2つのコマンドを利用できます。どちらのコマンドでも、複数の行を記述し、コメントと空白行を使用して説明を加えたり読みやすくしたりできます。コマンド内の行は、特定の順序に従って記述する必要はありません。
AddHandlerコマンドの構文は以下の通りです。
<AddHandler .拡張子>
Site:サイト名または*
If-Content-Type:MIMEタイプ/サブタイプ
ISAPI.Ext:読み込むISAPIのDLLファイルのフルパス
exec:実行するCGIのフルパス
Custom-Header:ハンドラの識別子:ヘッダ文字列
</AddHandler>
このうち、
拡張子:処理するファイルの拡張子です。例.php and .pl.
.サイト名または*:[複数サイトと複数言語の設定]フォームなどの設定ドキュメントと同じように機能します。
MIMEタイプ/サブタイプ:HTTP要求内で照合するContent Typeです。
例えば、以下のようになります。
                application/vnd.syncml+wbxml
If-Content-Type」はオプションで、指定すると「.拡張子」拡張子より優先的に適用されます。その場合は、「.拡張子」「.dummy」に設定して、ドキュメントを見やすくすることをお勧めします。
ISAPI.Ext:( サポートされているISAPIフィルタではなくISAPI拡張を実行するときに使用します
exec:実行ファイルを起動するために使用します。Windowsでファイルの関連付けを行わなくても済むようになります。また、(PHPなど)対応していないさまざまな種類のスクリプトを実行するときに使用します。
Custom-Header:HTTPクライアントへの応答としてカスタムのHTTPヘッダを返すときに使用します(例:Custom-Header:X-SpecialHeader:これは特殊なヘッダです)。
06092010_122716_1.png注意
1つのAddHandlerコマンド内ではISAPI.Extまたはexecのはどちらか一方を記述できますが、両方を記述することはできません。
AddURLHandlerコマンドの構文は以下の通りです。
<AddURLHandler /URL/参照先>
Site:サイト名または*
Templates:テンプレートフォルダ名
HTTP-Response-Code:HTTPコード
</AddURLHandler>
インターネットサービスは、このサイトに一致する/URL/参照の要求を受け取ると、指定されたテンプレートフォルダを使用してその要求を処理します。
HTTP-Response-Code:リダイレクトで送信された応答コードを変更するか、特定のURLに対して特定のエラーページを強制的に返すHTTP応答コードを指定できます。このHTTPコードに設定できる値は、以下の通りです。


301
完全に移動
302
発見
303
他を参照
307
一時的にリダイレクト

またはその他の有効なHTTPエラーコード
AddURLHandlerコマンドを利用すると、インターネットサービスで1つのWebサイトに異なる複数の表示方法を簡単に設定できます。例えば、動的な情報だけを提供するオンラインニュースなどのWebサイトで、HTMLではなくRSSでコンテンツを配信するとします。その場合に、RSSリーダーからの要求をHTMLのセットとは異なるテンプレートセットに誘導できます。
また、このコマンドを利用すると、CalDAVおよびCardDAVクライアント接続を簡単に設定できます。ユーザは、ドメイン名またはIPアドレスを指定し、およびユーザIDとパスワードを入力するだけで接続できるようになります。URLを入力する必要はありません。
7202010_20004_0.png注意
この簡易接続を実行できるのは一部のクライアントのみです。他のクライアントでは、「https://ドメイン名/Login/Calendar/」または「https://ドメイン名/Login/Contacts/」を接続先として手動で設定する必要があります。SSLが有効になっている場合は、「http://」から「https://」にリダイレクトできないクライアントがあるため、「https://」を使用する必要があります。
この簡易接続を有効にするには、以下のエントリをAddHandlerドキュメントに追加します。
<AddURLHandler /.well-known/caldav>
Site:*
Rewrite:/Login/Calendar/
HTTP-Response-Code:301
</AddURLHandler>

<AddURLHandler /.well-known/carddav>
Site:*
Rewrite:/Login/Contacts/
HTTP-Response-Code:301
</AddURLHandler>

<AddURLHandler /principals/>
Site:*
Rewrite:/Login/
HTTP-Response-Code:301
</AddURLHandler>

<AddURLHandler ~ /principals/users/(.+)/>
Site:*
Rewrite:/Login/
HTTP-Response-Code:301
</AddURLHandler>

<AddURLHandler /dav/principals/>
Site:*
Rewrite:/Login/
HTTP-Response-Code:301
</AddURLHandler>

<AddURLHandler /calendar/dav/(.+)/user/>
Site:*
Rewrite:/Login/Calendar/
HTTP-Response-Code:301
</AddURLHandler>



Rewriteコマンドの利用
Rewriteコマンドは以下の目的で利用できます。
• 複雑なCGIアプリケーション(ブログ機能を提供するPerl/PHPスクリプトなど)で、CGIファイルを大幅に書き換えることなくURLを変更できるようにする。
• 異なるテンプレートセットを呼び出して、会議室やフォルダに表示設定を追加する。
Rewriteコマンドの構文は以下の通りです。
<AddURLHandler [~] /URL/>
Site:サイト名または*
Templates:テンプレートフォルダ名
Content-Type:<ISAPI拡張機能が返すコンテンツのMIMEタイプ>
Index:Indexページの別名
Rewrite:/置き換えるURL/
</AddURLHandler>
このうち、
• [~]:これはオブジョンの文字で、/URL/がタグを含む正規表現であることを示します。
Content-Type:通常は、CGIまたはISAPIの拡張機能によって設定されます。デフォルトはtext/htmlです。
ただし、Content-typeの値がデフォルトとは異なる場合や、URLの処理にtext/htmlを返さないテンプレートを使用する場合は、Content-typeを指定して、ブラウザが正しく解釈できるようにしてください。
Index /URL/がコンテナを参照するときに、異なる名前のIndexファイルを使用できるようになります。
Rewrite:CGIでLocation:ヘッダを利用する場合と同じように、ブラウザを異なる場所にリダイレクトできるようになります。
例えば、サイト上にある[News]という名の会議室の内容をユーザにRSS配信したい場合、以下のAddURLHandler構文をISAPIドキュメントに追加できます。
<AddURLHandler ~ /News/rss>
Site:*
Templates:.rsstemplates
Content-Type:<RSSのコンテンツタイプ>
Rewrite:/News/
</AddURLHandler>
タグを利用する正規表現のURLがある場合は、置き換えるURLにそのタグ付きテキストを指定できます。これは、サイト上に「仮想の」URL空間を作りたい場合に有効です。
<AddURLHandler ~ /Mobile/(.*)>
Site:*
Templates: mobile.templates
Rewrite:/\1
</AddURLHandler>



エイリアスドキュメントの使用
Aliasesドキュメントを使用すると、Webサーバでさまざまなスクリプトを実行する際にユーザからパスが見えないようにすることができます。
06092010_122716_1.png注意
Aliasesドキュメントはサポートされていますが、AddHandlerドキュメントの方が柔軟性が高く、多くの機能を搭載しているため、AddHandlerドキュメントの使用をお勧めします。
Aliasesドキュメントは以下の目的で利用できます。
• CGIのソースファイルを利用する権限がないか、CGIのソースファイルが複雑すぎて変更できない他のWebサーバ用のCGI(Apacheサーバ用のCGIなど)をインストールする。
例えば、CGIがCやC++などのプログラミング言語で記述され、その実行ファイル(EXEファイル)しか存在しない場合や、CGIがPerlで記述されているものの、Perlのプログラミングについてよく知らない場合などが考えられます。
• 動作させるCGIを仮想の名前で隠す。
これにより、そのCGIのソースが隠され、システム上でCGIが動作していることに気づかれないようになります。
• URLを隠すか、変更する。
これにより、FirstClassシステム上にある一般公開用の会議室の名前を変更できます。古い名前のエイリアスを新しい名前にすれば、ブックマークや検索エンジンから以前のURLにアクセスしてくるユーザに対応できるようになります。
Aliasesドキュメントは、ご利用のシステムにあらかじめ用意されるアイテムではありません。管理者デスクトップの[Internet Services]フォルダ内に作成する必要があります。
Aliasesドキュメントの基本構文
Aliasesドキュメントに記述する各行の基本構文は以下の通りです。
キーワード Webサイト 検索URL 置換URL
このうち、
キーワード:コード行を開始する言葉です(ScriptAliasMatchやAliasなど)。
Webサイト         :「*」にすると、すべてのWebサイトを表します([複数サイトと複数言語の設定]フォームを使用していない場合は、1つのサイトを表します)。また、Webサイトのエイリアス名を記述し、その後ろにピリオドと対応言語を記述することもできます。
検索URL      :(キーワードと)照合するURLです。
置換URL  :検索URLに一致するURLが要求されたときに(内部的に)代替されるURLです。
どの場合でも、ブラウザでこのリンクをクリックすると、検索URL置換URLに誘導されます。
どちらのURL(検索URL 置換URL )でも大文字と小文字が区別されます(また、AliasMatchとScriptAliasMatchに対応する正規表現になります)。
コード行は、ScriptAliasまたはScriptAliasMatchキーワードで開始してCGI処理を行うことも、AliasまたはAliasMatchキーワードで開始して他のすべてのHTTP要求を処理することも可能です。
検索URLは、空白があるか以下の文字が1つ以上ある場合には、二重引用符("")で囲む必要があります。
< > " # { } | \ ^ [ ] ' ` +
また、二重引用符(")と円マーク(\)の前に、円マーク(\を1つ挿入する必要があります。例:「/○○"△△\□□/」というURLは、以下のような形式で検索URL に挿入されます。
/○○\"△△\\□□/
Webページ上でCGIパスを隠す場合
CGI実行ファイルへのエイリアスを作成するには、以下の操作を行います。
1 [Internet Services]フォルダ内にAliasesドキュメントを作成し、以下のコードを1行に入力します。
        ScriptAliasMatch * /[Ll]inks/ /cgi-bin/フォルダ/実行ファイル.pl/引数
このうち、
        [Ll]inks:リンク名を照合するための正規表現で、Linksまたはlinksのように記述します。
        フォルダ:[cgi-bin]フォルダ内にあるこの例のCGIフォルダの名前です。
        実行ファイル.pl:この例のCGI実行ファイルの名前です。
        引数:(該当する場合に)CGIの実行ファイルに必要な引数を追加します。
06092010_122716_1.png注意
正規表現を使用する必要がない場合は、ScriptAliasを使用してください。
2 このドキュメントを閉じます。
3 [インターネットモニタ]の[コントロール]タブにある[全般]タブで[設定の再読み込み]ボタンを押して、この変更が反映されるようにするか、変更が自動的にロードされるまで数分間待機します。
インターネットサービスを再起動する必要はありません。
ご利用のサーバからブラウザが/Links(または/links)のURLを要求すると、その要求は内部的に「/cgi-bin/フォルダ/実行ファイル.pl/引数」に変換され、要求されたURLが「/cgi-bin/フォルダ/実行ファイル.pl/引数」と入力されたものとしてCGIが実行されます。
一般公開用会議室へのURLを変更する場合
FirstClassシステム上にある一般公開用の会議室へのURLパスを隠したり変更したりできます。
例えば、ある企業で、顧客向けに[Sold Product Customer Support(ご購入商品に関する問い合わせ)]という名の会議室を設置しているとします。しかし、この企業は商品の販売を取りやめ、リースでの取り扱いだけを行うことになりました。ただし、以前に商品を購入した顧客に対するサポートは継続したいと考えています。この方針変更のために、FirstClassの管理者は、[Sold Product Customer Support(ご購入商品に関する問い合わせ)]会議室を[Old Product Support(旧商品に関するお問い合わせ)]という他の会議室内に移動することにしました。しかし、問い合わせ窓口を必要としている顧客の大部分は、自分たちが利用するブラウザで以前の会議室のURLをブックマークしています。そのため、顧客がブックマークを変更しなくても以前の会議室にアクセスできるようにする必要があります。
この問題を解決するため、管理者はAliasesドキュメントを使用して、「/Sold Product Customer Support」というURLのエイリアスを作成し、「/Sold Product Customer Support」というURLにリンクされるようにしました。次に、Aliasesドキュメントの基本構文「キーワード Webサイト 検索URL 置換URL」に従って、Aliasesドキュメントに以下の行を記述しました。
AliasMatch * "^/Sold Product Customer Support/" "/Old Product Support/Sold Product Customer Support/"
このコード行によって、古いURLへのブックマークを使用した顧客は、その会議室が置かれている新しい場所に誘導されるようになりました。

 

Copyright(C) 2002-2018 FC Management Co. All Rights Reserved