PC館

イントラ実験室1 イントラネット(IIS)でCGIを!

何をやりたいの?

イントラネット(社内LAN....別に家庭内LANでもよいが)で,ファイル共有や内部向けホームページを使っているけど,もう一段の活用をしたいなぁ。例えば掲示板とかファイル検索,データベースなんかもおもしろそう...いいモノないかねぇ...ちょっとだけ業務館だ?

まずはシステムの再確認だ

え〜と,まずはシステム構成の再確認だ。

サーバーOSWinsows2000ServerなんのかんのいってもMicrosoftは偉大だ,簡単セットアップが嬉しいぞ(^^; それに全体的にはActiveDirectoryで構築されてるみたいだから他のOS入れると浮いてしまう(^^;;
Web
サービス
InternetInformationService
(IIS)
だっておまけで付いてるから(^^; まぁ,外部に公開しなけりゃセキュリティ云々も問題にはならないだろう
クライアントWindows2000
InternetExplorler
上の理由と同じだ(^^)

う〜ん,これに載っけられるモノだよねぇ

じゃぁcgiを動かしてみよう ActivePerlのインストール〜IIS設定

第一目標の掲示板...といえばインターネットのあちらこちらにcgiサンプルが転がっているぞ。これが動くシステムとなるとPerlだから,http://www.activeperl.com/からWindows用のActivePerlをダウンロードしてこよう。無料使用可能だ!

ダウンロード時に注意するのは「どのバージョンを使うか?」だ。現時点ではbuild6xx系とbuild8xx系が並存している。ここが運命の分かれ道だ。実はこの後導入していくモジュールにはバージョン指定のものもあったりする。え〜い,ここはひとつ新しいbuild8xx系で話を進めていこう(^^;

サーバー(ついでに自分用のPCにも入れておこう。開発時に役立つぞ)へのインストールは簡単だ。セットアッププログラムがいろいろと聞いてくるが,何も考えずに「Y」または「Enter」で進めていくデフォルトインストール(c:\perlにインストールされるぞ)で問題なし。

インストールが終われば再起動...おっとその前に最後に表示されるメッセージだけはよく読もう。インターネット接続時にプロキシサーバー経由が必要な環境なら,ここをよく読んでシステム環境変数を設定しておかないと後で困るんだ。

変数説明
HTTP_proxyhttp://111.111.111.111:8080/プロキシサーバーのIPアドレス:ポート番号
HTTP_proxy_userusernameプロキシサーバーに接続するユーザー名(必要なら)
HTTP_proxy_passpasswordプロキシサーバーに接続するパスワード(必要なら)

再起動したら,一応は動作確認だ。コマンドプロンプトで
  c:\>perl -v
を入力。バージョンなどが表示されれば動作OKだ。

これでActivePerlのインストールは完了...って,どうやって使うんだ? とりあえず,c:\perl\html\index.htmlを開いてブラウザのお気に入りに登録しておこう。これがマニュアルだ。 とはいっても全部英文だ(^^; そんなの読めるかっ!って人におすすめなのが,http://perldoc.jp/だ。和訳してくれてるのがとってもありがたい。

さて次はIISの設定をおこなおう。ActivePerlをインストールしただけではcgiプログラムはIIS上で動作しない。そこで,「インターネットインフォメーションサービス」の「規定のWebサイト」のプロパティ,「ホームディレクトリ」-「構成」で,

拡張子実行ファイルのパス動詞
.pl
.cgi
c:\perl\bi\perlis.dllGET,POST

を設定する。ん?この設定がどこにあるかわからない? って,IISを動作させるためにはこのあたりの設定もできてるはずだけど... では,簡単なcgiサンプルなど。

#!/usr/local/bin/perl
print "Content-type: text/html\n\n";
print <<"END"
<html>
<head>
<title>Takachの道楽倶楽部PC館 イントラ実験室1 cgiサンプル</title>
<meta http-equiv="content-type" content="text/html;charset=euc-jp">
</head>
<body>
これはcgiサンプルだ
</body>
</html>
END

これを例えばsample.cgiとしてc:¥Inetpub¥Scriptsフォルダに保存する(IISデフォルトインストールの場合)。このファイルにホームページ上からリンク

<a href="/Scripts/sample.cgi">サンプルへのリンク</a>

を貼ればできあがり。問題なく動作すればこんな感じで表示されるはずだ。

※注意点1
新しいcgiをいきなりブラウザ経由で実行するのはやめた方が無難。cgiがエラーを出して終了した場合(エラー処理ルーチンを組み込んでなかったら),IISが暴走(?)してCPU負荷率が高くなったままになるぞ。とりあえずはコマンドプロンプトから,
  c:¥>perl c:¥Inetpub¥Scripts¥sample.cgi
で動作確認しよう。
※注意点2
アクセス権とかセキュリティについては一切ふれてない。接続する人間が不特定多数で信じられない場合はもっとまともなサイトを参考にするように(((((((((((^^;

掲示板だ

う〜ん,何を書こう。フリーなcgi掲示板を公開しているサイトを巡って一番気に入ったモノを探してこよう。それを,c:¥Inetpub¥Scripts(IISデフォルトインストールの場合)内に入れて適切なアクセス権を設定しよう。できたらそこにリンクを貼れば,ほーらできた。(サンプル?...大嘘...これはIISでは動いてないはずだ