技術資料 TSPB970001
題名 Windows NT + IIS におけるPerlのCGIの使用法
著者(著作権者) (c)竹中 誠
作成 1997年1月13日(最終改訂 1997年1月28日)
ファイルサイズ 4KB((max)80 Bytes x 115行)
要旨 Webサーバー計算機のOSがWindows NTで、Webサーバーソフトが
IIS(Internet Information Server)の場合に、Perlというプログ
ラム言語でかかれたCGIを動かすための設定等をまとめた。
価格 個人的に利用するのは無料。商業的利用はE-mailにて御相談下さい。
目次 1.はじめに
2.Perlの入手と準備
3.IIS設定
4.NT設定
5.CGI設定
6. HTMLファイルの設定
7.まとめ
改訂 Rev.0 97/01/13 Draft作成
Rev.1 97/01/15 BGMさんからの御指摘を反映して修正
Rev.2 97/01/16 BGMさんからの2回目のメールを反映して修正
Rev.3 97/01/16 [4]のWebページの情報を反映して修正
Rev.4 97/01/28 NTとIISのバージョン追記
---------------------------------------------------------------------
1.はじめに
以前は、インターネットのWebサーバー計算機のOSはUNIXで、サーバーは
、NCSA, CERN, Netscape Commerce Server, Apacheという場合が多かったの
です。最近はこのほかに、OSが Windows NT(3.51, 4) で, サーバーが
IIS(1, 2)の場合も増えてきたようです。この場合には、設定が少し他と異
なるようですので、設定法の情報を集めてまとめてみました。ただし、私自
身は、いま、NTを使える状況にないので、この資料は、完璧なものではあり
ません。不備や間違っているところは、是非御連絡下さい。少しずついいも
のにしたいと思います。
IISは、すでにルートディレクトリにインストールされて
いるとします。
2.Perlの入手と準備
まず、Perlをダウンロードするディレクトリとして、例えば、
c:\perl
というディレクトリを作りここにPerlのアーカイブ(圧縮)ファイルをダウ
ンロードします。
Perlとしては、Windows 95で使えるPerlがWindows NTでも使える
ようです。私が、Windows 95で使っているPerl Ver.5.001mは、次のところ
から入手しました。
ftp://ftp.lab.kdd.co.jp/CPAN/ports/win32/Perl5/perl5.001m/
CurrentBuild/110-i86.zip
表示の都合上改行しています。サイズは、1.1MBです。zipで圧縮されていま
すので、zipを展開できるソフトが必要です。ここの他に、
http://www.perl.hip.com/
からもダウンロードできるようです。
ダウンロードしたファイルを展開(解凍)すると
c:\perl\PERL5
というディレクトリができ、その下のNTT(または、bin)に、PerlのEXEファイ
ルとDLLファイルが配置されます。
3.IIS設定
ディレクトリのアクセス権を次のようにします。
c:\inetsrv\wwwroot <ホーム> 読みとり(R) on 実行(X) off
c:\inetsrv\Scripts /scripts 読みとり(R) off(?) 実行(X) on
c:\perl\PERL5\NTT(perl.exeのあるディレクトリ,binの場合あり) 実行(X) on
4.NT設定
拡張子"pl"のファイルと"c:\inetsv\Scripts\perl.exe"の実行ファイルを
関連づけるようレジストリエディタ(regedt32.exe)でレジストリの設定を行
う。
HKEY_LOCAL_MACHINE
->System
->CurrentControlSet
->Services
->W3SVC
->Parameters
->ScriptMap
に値を追加する
名前: .pl
タイプ: REG_SZ
文字列: c:\perl\PERL5\NTT\PERL.EXE %s %s
(c:\perl\PERL5\NTTにPERL.EXEがある場合)
この設定を有効にするため、この操作後IISをリスタートさせる必要がありま
す。
PerlのCGIの拡張子をcgiにしたい場合は、上の名前の".pl"を".cgi"にする
といいようです。ただし、こうするとcgiの拡張子のスクリプトは、必ずPerl
としてコンパイルされ実行されますので、事情を知らないユーザーが、UNIX
のshell script のCGIを実行しようとする可能性もあります。PerlのCGIは、
".pl"とする方が後の混乱が少ないように思います。
5.CGI設定
PerlのCGIの拡張子を"pl"とする。例えば、"test.cgi"なら、"test.pl"と
する。そして、このCGIのソースを
c:\inetsrv\Scripts
に置く。CGIで直接使うファイル名は、例えば
c:\inetsrv\wwwroot\gb\book1.html
というように指定する必要があると思います。"\"は、Perlでは、エスケープ
文字なので、このファイルの文字列を変数に入れて、それを解釈される場所
(二重引用符の中など)に入れるとおかしくなる場合があります。
c:/inetsrv/wwwroot/gb/book1.html
でもうまく行くかもしれません(Windows95 + OmniHTTPdの場合これでうまく
行きました)。これなら、解釈されておかしくなることはありません。
ブラウザから使うURLを指定する場所では、"c:\inetsrv\wwwroot"を"/"とする
指定方法か、Perlのソースは、"c:\inetsrv\Scripts"を"/scripts"とする指定
方法を使ってみて下さい。
6. HTMLファイルの設定
例えば、test.plというPerlのCGIをWebページから実行するようにするに
は、次のいずれかのタグを使用します。
(1)リンクタグ(その1)(4の"pl"と"perl.exe"の関連づけがされている場合)
test.pl
(2)リンクタグ(その2)(4の"pl"と"perl.exe"の関連づけがされていない場合)
PERL.EXE, PERLIS.DLL, PERL100.DLLを”c:\inetsrv\Scripts”の下に
コピーしている場合は、次の指定でtest.plを実行できます。
7.まとめ
Windows NT + IISのWebサーバーで、PerlのCGIを使用する際の注意事項をま
とめました。ただし、まだドラフト段階でこの通りにしてもうまく行かない場
合もあるかもしれません。この資料のミスやなおした方が良い点はメールにて
御連絡お願いします。
[謝辞]
松林さん、永村さん、LOGを一部引用させていただきました。坂本さん、
メールの一部を引用させていただきました。BGMさん、本資料をみて、まちが
いや、4の詳細な設定方法をお教えいただきありがとうございました。
[文献等]
[1]Nifty FINETAP MES 4 LOG #674-675, 1996.9.18.
[2]坂本, 私信, 1996.11.27.
[3]BGM, 私信, 1997.1.15.
[4]BGM, 私信, 1997.1.16.
[5]http://www.t3.rim.or.jp/~nog/pcpage/iisj.html(このWebページは、
Netscape Navigator 2.02では見えないが、Internet Explorer 2.0では見え
ます)