〜Windows XP でお手軽 CGI〜
Windows XP ユーザが、ローカル上で手軽に CGI/Perl を動かすまでのガイド。
Last modified: 2002/07/29
この文書の目的は、サーバ管理経験の無い方が、あなたの Windows XP/2000 に IIS を導入して、あなたのマシンでお手軽に CGI/Perl スクリプトの動作チェックが行えるようにすることです。IIS は、Windows XP/2000 に標準で付属する HTTP サーバです。
この文書は、UNIX などの他環境で既に CGI スクリプトを開発したことのある Windows XP ユーザを対象としています。
この文書を作成するときに用いた環境です。必ずしもこの環境でないといけないというわけではありません。
この文書では、セキュリティに関する知識を何も提供しません。読者自身で習得することを期待しています。Web サーバである IIS をセットアップするのですから、Microsoft のサイト及びセキュリティーホールの報告サイトをまめにチェックすべきでしょう。また、IIS を必要のないときに「停止」しておくことを、強く推奨します。
IIS は標準ではインストールされません。管理者権限のあるユーザーで Windows XP にログオンし、Windows XP の CD を挿入して自動再生された画面の中から「Windows のオプションコンポーネントをインストールする」を選んでください(CD が自動再生されない場合は、CD-ROM の setup.exe を実行して、同様に進めてください)
Windows コンポーネントの追加画面になりますので、一覧から
インターネット インフォーメーション サービス (IIS)
を選んでインストールして下さい。IIS がインストールされます。
IIS のインストールが済んだら、次は CGI の実行に必要な Perl 言語をインストールします。次のサイトから、Windows 用の最新版の Perl をダウンロードして下さい。ActivePerl は、Windows 環境でもっとも広く用いられている Perl です。
http://www.activestate.com/Products/ActivePerl/Download.html
ダウンロードが済んだら、インストーラを実行して、インストールして下さい。インストール場所は適当でかまいません。セットアップオプションの選択を求められたら、デフォルトで全てチェックされていると思いますので、そのまま全てチェックしたままインストールして下さい。
さて、Active Perl のインストーラは Windows XP に対して、拡張子 .pl に勝手に関連付けを行ってしまいます。今後 .pl ファイルをダブルクリックすると、perl.exe に引き渡されて実行されるようになってしまいました。これが嫌な方は、拡張子 .pl にテキストエディタを割り当てるなりして戻してください。そのままでもかまいません。
この章では、CGI の導入の前に、あらかじめ IIS の管理についての知識を学びます。
さて、インストールが終わった時点で、すでに IIS が起動していると思いますので、ためしにブラウザから http://localhost/ にアクセスしてみましょう。
この画面は、すでにあなたの IIS が起動し、何らかの HTML を表示している証拠です。この画面の URL は http://localhost/localstart.asp となっていますが、実体のファイルは、C:\Inetpub\wwwroot\localstart.asp にあります (Windows XP が C ドライブにインストールされている場合)。
このように、
となっておりますので、C:\Inetpub\wwwroot ディレクトリに HTML ファイルをコピーしたり、ディレクトリを作成したりすることにより、直ちにホームページの公開ができるようになりました。
さて、適当な HTML を作成して、IIS 上にアップロードしてみましょう。アップロードといっても、C:\Inetpub\wwwroot ディレクトリに作成するだけです。ためしにメモ帳などのテキストエディタで、次の内容の HTML ファイルを作成します。
<HTML> <BODY> <H1>わたしのホームページへようこそ</H1> <hr> ここはテストページです。 </BODY> </HTML> |
このファイルを、C:\Inetpub\wwwroot\test.html に保存してみましょう。それから http://localhost/test.html へアクセスしてみると、見事このホームページが表示されるはずです。
ここで勘違いしやすいことがあります。次の、
この両者は、まったく同じ表示画面になると思いますが、前者は単にファイルを開いただけ、後者はブラウザーが IIS と通信を行った結果が表示されています。たんに test.html をダブルクリックしただけでは IIS は無関係なことを覚えて置いてください。
そしてもうひとつ重要なことがあります。あなたがインターネットに接続している間は、世界中の人が、http://(あなたがプロバイダより与えられたIPアドレス、またはホスト名)/ というアドレスで、IIS にアクセスすることができます。意識していないかもしれませんが、今の時点で test.html も全世界に公開しています。特に実験・練習用に IIS を導入する場合は、不要なときは IIS を停止しておくようにしましょう。次の項から、IIS サーバーの管理について学びます。
IIS には、HTTP サーバの管理環境「IIS スナップイン」が付属しています。これからずっとお世話になるはずです。まずはこれを開きましょう。
ここで出てきた画面を「IIS スナップイン」と呼びます。画面のどこにもそんなことは書いていないのですが、IIS のドキュメントにはそう書いているので、私たちもそう呼ぶことにします。
IIS の起動と停止の操作を覚えます。IIS は必要の無いときには停止しておいたほうが安全です。
IIS スナップインを開き、左ツリー上の [既定の Web サイト] を右クリックすると、[開始] [停止] というメニューが並んでいますので、ここで IIS を起動したり、停止させたりします。停止すると、もはや http://localhost/ にアクセスしても何も出てこないことを確認して下さい。
先ほども述べたように、
となってしまいましたが、これを変更することが可能です。
変更は、IIS スナップインを開き、左ツリー上の [既存の Web サイト] を右クリックし、[プロパティ] を選択し、[ホームディレクトリ] タブを選択する画面で設定します。
この画面中のローカルパスを変更することで、ホームディレクトリが変更されます。ここでは変更しないものとします。
ここまではうまくいったでしょうか? いよいよ、CGI スクリプトを動かすためのステップに入ります。
通常のコンテンツと CGI スクリプトはディレクトリを分けておいたほうが安全です。したがって、これから CGI スクリプトのためのディレクトリを作成しましょう。
作成ウィザードは、次の順序で問い合わせがあります。
以上で cgi-bin ディレクトリが作成されました。
さて、次の CGI スクリプト(テキストファイル)を作成し、C:\Inetpub\cgi-bin\env.pl として保存してみましょう。
#!/usr/local/bin/perl
print "Content-type: text/html\n\n";
print "<HTML><BODY>";
while (($v1, $v2) = each %ENV){
print "$v1 = $v2<br>";
}
exit;
|
このスクリプトは環境変数を全て表示するスクリプトです。作成したら、http://localhost/cgi-bin/env.pl へアクセスしてみましょう。見事、結果が表示されるはずです。CGI の起動に成功しました!
先ほどの env.pl を env.cgi とリネームし、http://localhost/cgi-bin/env.cgi にアクセスしてみましょう。うまく動くでしょうか? 残念ながら「%1 is not a valid Win32 application. 」などのエラーメッセージが表示されてしまい、動かないと思います。これは、Perl のインストーラが 拡張子 .pl には関連付けを行ったのに、拡張子 .cgi には何もしてくれなかったのが原因です。
これでは不便なので、拡張子 .cgi にも IIS の関連付けを行いましょう。IIS スナップインから、cgi-bin 仮想ディレクトリのプロパティを表示させます。[仮想ディレクトリ] タブで表示される [構成] ボタンを押します。
すると、拡張子リストが出てくるでしょう。おそらく拡張子 .cgi は表示されていないはずなので、[追加] タブをクリックし、拡張子 .cgi を追加します。設定内容は、拡張子 .pl を参考に、まったく同様にして下さい。
設定がすんだら、もう一度 http://localhost/cgi-bin/env.cgi にアクセスしてみましょう。今度はうまく動くはずです。
ハードディスクが NTFS でフォーマットされている場合、Unix 同様にファイルのアクセス許可(パーミッション)の設定が必要になることがあります。
たとえば、アクセスカウンターなどファイルの書き込みが必要になる CGI の場合、ログファイルに書き込み許可が与えられていないために、エラーが発生します。書き込みが必要なファイルには、Unix 同様に書き込み許可を与えましょう。
たとえば、log.txt に対して「書き込み」の権限を与えたい場合は、
これで、Users ユーザー( CGI スクリプト )が log.txt を書き込み可能になります。
次に、当研究所製の CommuniCa をインストールしてみましょう。 https://mikenekolab.org/~lab/cgi/communica/pub/から、最も新しいバージョンのアーカイブを入手し、解凍します。
とりあえず掲示板に必要なファイルは、次の5つです。
この5ファイルを、c:\Inetpub\cgi-bin\communica\ ディレクトリにコピーし、http://localhost/cgi-bin/communica/mikeboard1.cgi にアクセスしてみましょう。「談話室」と書かれた掲示板が表示されると思います。
HDD が NTFS でフォーマットされている場合、このままでは書き込み権限が無いために、掲示板に書き込みことができません。「4.4. NTFS でのアクセス許可」を参考にしながら、log.txt と color.txt に Users ユーザに対する「書き込み」アクセス許可を追加してください。これで掲示板へ投稿することができます。
■ このページについて
このページに書いてある情報の正しさを保証しません。この文章を読んだことで生じる責任は、読者自身にあるものとします。
このページはリンク自由です。必ずしもTOPへのリンクでなくてもいいですし、連絡も不要です。
You are th visitor since 2001/08/11. Thank you.