平成15年 3月 1日(土)
最終更新 : 平成20年10月19日(日)
Windows2000 Pro上でのCGI実行設定
仕事上や自宅において何回か設定することはあるのですが、そのたびに忘れてネット上を検索しまくり設定してしまいます。
非常に時間と労力の無駄なので、同じような機会に会った時スムーズに作業すべくこのドキュメントを作成しました。
なお、イメージ・ファイルは設定したマシンのディスプレイが256色だったので、実際と少し色が違っています。
Windows2000やIISのインストール・設定方法は省略しています。
参考にしたサイト:
■Perlについて
UNIXのコマンドにあるawkやsedなどに似たインタプリタ(コンパイルなどしないでソースコードを判断して実行する)型の言語です。
webの開発でCGIスクリプト内部でperlを使用したり、CGIそのものとして簡単に作るれるので非常に人気があります。
(でも最近では、データベースとの連携などに優れたphpが多く採用されているようですね!)
ただし、多くの事が簡単にできる反面、多少慣れるまでに時間がかかります。(まぁ、何でもそうですけどね!)
perlの詳しい事は、書籍やネットで検索してみてください。
■ActivePerlについて
UNIXやLinuxでは、perlを簡単(?)にインストールすることができますが、Windowsマシンの場合は、perlを使う前にちょっとした設定(動作環境)が必要です。それの一つがActivePerlです。
ActivePerlのサイトへ行きダウンロードします。ファイル・サイズは8Mbyteとか10Mbyteとかで大きいです。
(途中E-mailアドレスの入力とかのページがありますが、無視してNextを指定すればOKです)
■このサーバーの動作環境
・Windows2000 Professional sp3 (CPU:133MHz MEM:46Mbyte HDD:1.5Gbyte)
(WindowsNTの場合は、msiファイルを認識させるための、Windowsインストーラをインストールしなければなりません。)
・IIS 5.0
・ActivePerl - 5.6.1 Build 635
■インストールについて
・事前にIISをインストール・設定し動くことを確認しておきます。
・ダウンロードしたファイルを実行します。
↓
・前記で「OK」をクリックすると下の画面を表示しインストーラが起動します。
↓
・少し待つと次の画面を表示するので「Next」をクリックします。
↓
・使用認証を求めてきますので、I accept the terms in the Licence Agreement ラジオボタンにチェックし、「Next」ボタンを押します。
↓
・インストールするディレクトリを求めてきますので、何処にインストールするかを指定し、「Next」ボタンを押します。
Location:に表示するインストール先は、複数にドライブがある場合最後のドライブをディフォルトでセットするそうです。
変更したい場合は "Disk Usage" で各ドライブの空容量を確認し "Browse" で変更先を指定します。
↓
・Programer's Package Managerうんたら・・・・ですけど、このまま「Next」をクリックしました。
↓
・4つのチェックボックスがありますが、デフォルトで問題ないので、「Next」ボタンを押します。
↓
・ここまできて、インストールしない人はいないでしょうけど・・・。「Next」ボタンを押します。あとは、勝手にインストールします。
↓
・こんな感じでインストールが始まります。ここらで一服です。
↓
・無事インストールが完了しました。「Finish」をクリックすれば終わりです。(関係無いと思うけど念のためWindows再起動しました)
↓
・無事インストールされたかどうか、コマンドプロンプトから確認します。以下のようだったらOKですね。
■拡張子の指定について
・cgiやperlなどが実行できるように拡張子を指定します。
・『インターネットサービスマネージャ』を起動して、『既定のサイト』のプロパティを開きます。
・ダイアログが開いたら『ホームディレクトリ』タブを開いて『アプリケーションの設定』の『構成ボタン』を押します。」
・『アプリケーションの構成』ダイアログの『アプリケーションのマップ』のところで次の拡張子を登録します。
・『追加』ボタンを押してダイアログを開きます。
※.plと.plxはすでに登録されていました。
・.cgiの分を下のように登録します。
実行ファイル: C:\Perl\bin\perl.exe %s %s
拡張子: .cgi
動詞: 制限(GET,HEAD,POST)
スクリプトエンジンのチェックを外す
「ファイルの存在を確認する」にチェック
・下のようになっていればOKです。
■仮想ディレクトリの設定について
・一応これでPerlでCGIを動かすことは出来るようになったから次は実行させるフォルダの作成です。
・「仮想ディレクトリ」というのは、別のところのディレクトリをあたかもWeb上からはそこにあるように見せかける機能のことです。
・これを使えば別のドライブ、果ては別のコンピュータの共有フォルダもWebに公開できます。
・サービスマネージャから割り当てたいディレクトリで右クリックして、『新規作成→仮想ディレクトリ』を選びます
・今回はドキュメント・ルートの直下に作るから『既定のWebサイト』で右クリックです。
・ウィザードを開き次のように入力します。
エイリアス cgi-bin コンテンツのパス 実際にファイルを保存するディレクトリ
(今回は C:\InetPub\cgi-bin・・・あらかじめ作っておきます。)アクセス許可 ・読み取り ・ISAPIアプリケーションやCGI等を実行する
にチェックを入れる(残りはチェックしない)
・cgi-binができてますね!
・IISAdminやIISSamplesとアイコンが違うのは、今回はC:\InetPubの下に作ったからですね。
これをC:\InetPubと違う別のところに作ればIISAdminやIISSamplesと同じになります。
■稼動実験
・下のリンクをクリックしてください。(Armadaが稼動中[仕事に行っている間と毎週金曜日 21:00 〜 07 : 00]でないと見れません)
・CGIのテスト(cgitest.cgi)
#!/usr/bin/perl
# ソースです。
print "Content-type: text/html\n\n";
print "<html>";
print "<head><title>CGI</title></head>";
print "<body>";
print "<h1>CGI TEST<h1>";
print "</body>";
print "</html>";
■注意
・今回は「とりあえず動かす」事が前提ですので、セキュリティ関連にはほとんど触れていません、必要であればリソースキット(7)を参照するか、Microsoftのサイトで該当するページをお読みください。
・Unixでは機能するのにNT/2000に持ってくるとちゃんと動作しないスクリプトがある場合は、両者のPerlの実装している機能差の可能性があります、リリースノートやリファレンスを読んで期待通りの動きをするか確認しましょう。