PCでcgiやってみる?

Windows 2000 前提

このページは2001年5月に作成した物です.2003.09.03に補稿しました.


CGIには気をつけましょう 2001.05.08
最近,巷で噂のCGIですが,このCGIってやつは,へたをするとサーバーを重くしてしまうばかりか,サーバーをダウンさせようものなら,賠償問題ってなことにもなりかねない,危険を伴ったプログラムです.

CGIというのは,掲示板などのように,刻々と変化するページをブラウザで見るための仕組みです.

したがって,このCGIというやつは四六時中サーバー上で動いているわけですから,ある程度はサーバーのストレスの原因になりうるものと考えてもおかしくはないと思います.動作が複雑になればなるほど重くなる.
(実際はそれほどでもないかもしれませんが,そう思っておいてもいいように思います.)

ほんなら,CGIってやったらあかんのか?というと.さにあらず.
暴走させなければいいのです.それとプロバイダで禁止されている動作をさせない.この2つはきっちり守りましょう.
CGIはサーバーで動作テストするもの? 2001.05.08
答えはNOです.

私も最初知らずにサーバーにアップして,実際に動作確認をしていましたが,これは危険です.暴走でもしたらえらいことです.

たいていは「サーバーエラー」となって,CGIは止まるそうですが,それにしても無謀です.できるものなら自分のPC上で動作確認したいですね?

というわけで,自分のPCでCGIは動くのか?という問題を解決すべく,私が自ら実験台となり,荒波逆巻く大海原に船出します.
まず,Perlが必要! 2001.05.08 2003.09.03
まず解ったこと.

CGIを動かすにはPerlといいうものが必要であるということ.また,さらに,自分のPCをローカルサーバーにする必要がある.
この2点です.

まずPerlを求めてあっちへふらふら,こっちでうろうろ.ちょっと解りました.どうやらここでいうPerlとは,ActivePerlのことらしい.
そこで今度はこのActivePerlを探します.
あった,あった,ありました.早速そのページにジャンプ!

ここでActivePerlをダウンロードできます.メール登録必須ですが,無料です.現在の最新は5.6.1.633です(2003/09/03現在)
次ページにある表の「ActivePerl 5.6.1 build 635」の「MSI」というやつをインストールします.
ここで,ファイルをHDDに保存します.
保存し終わったらダウンロードしたファイルを確認します.

  ファイル名:「ActivePerl-5.6.1.635-MSWin32-x86.msi」ファイル容量:8,644kb(8.44Mb)

間違いなければ,インストールを開始します.インストールはエクスプローラーでファイルダブルクリックで始まります.
インストールする場所はどこでもいいと思いますが,階層を持たない方がいいと思います.
たとえば  D:/perl  なんかにするほうがいいと思います.
もし,インストールがうまくいかない場合,私にはわかりません.あしからず.

で,インストールされたかどうかの確認ですが,「アプリケーションの追加と削除」に ActivePerl Build 626 と,あればOKです.

さて,ちょいと動かして見ましょう.うひひ

ActivePerlはWindowsアプリケーションではないので,アイコンなどありません.
動かすには「DOS窓」を開きます.

まずカレントドライブをPerlを置いたドライブに移動します.(おぉ〜いいですね.コマンド操作です.嬉しいです)

まず,「DOS窓」を開いた状態では,カレントはC:ドライブになっています.
D:にPerlがあるなら,D:と入力し,Enterします.
これでカレントドライブがD:に移動しました.

ここで,D:\>のあとに perl _-v といれてEnterします.(ここで ”_” はスペースを表します)

画面に

  This is perl,v5.6.1 build for MSWin32-x86
  なんたらかんたら・・・・

と出ればOKです.

これでPerlのインストールは完了しました.
ほんじゃ次はWebサーバー! 2001.05.08
さて,Perlがインストールされれば,次は自分のPCをローカルサーバーに仕立てましょう.

次にダウンロードしてインストールするのは,中田昭雄氏のフリーウェアである「AnHTTPd」です.当然「Apache」でも結構です.
でも,こっちは嬉しいことに日本語が通じます.

今回の目的はCGIプログラムをPC上で動作確認するということが目的ですから,何も設定しなくても「light.cgi」などは動作します.(確認しました)

これも D:\www としてインストールしてください.

インストールすると D:\wwwにhttpd.exeができます.これを起動するだけです.
起動すると,タスクトレイに黄色いアイコンが出現します.ここにマウスを持っていくと「待機中,httpd−接続要求待ち」と表示されます.
また,このアイコンをクリックするとウィンドウが開き,ここでも動作を確認できます.

ここで,「オプション」−「一般」でダイアログを開き,下の方にある「CGI出力を検査」にチェックを入れておくと,CGIにエラーが出た時に,エラーメッセージが出るようになります.ちょっと役に立ちます.

さて,動作確認テストをしてみましょう.

まず,D:\www\homeを新規作成してください.
ここに,テストするhtmlファイルを格納します.

手始めに以下のタグをメモ帳に貼り付けて,test.htmlとして今作った\homeに保存してください.

<HTML>
<BODY>
<H1>This is localhost HTMLだっせ(^^ゞ</H1>
</BODY>
</HTML>

ここでhttpdが起動していなければ起動してください.
つぎにブラウザを立ち上げます.
下のURLを開いて見てください

http://localhost/home/test.html

いかがですか?文字が表示されましたか?

ここで,「ソケットが作成できません」というエラーが出た場合は,Windows2000がIISを起動しているのが原因です.Windowsのヘルプなどを参考にしてこれを一旦停止させてもう一度試してみてください.

ここでlocalhostというアドレスを使いますが,これが自分のPCを示すIPアドレスです.「127.0.0.1」でもかまいません.

htmlの表示がOKであれば,CGIもテストしておきます.

同様にして,以下のソースをtest.cgiとして\homeに保存してください.

#!/usr/bin/perl

print "Content-Type: text/html\n\n";
print "<HTML><BODY>\n";
print "<H1>This is localhost CGIでおます</H1>\n";
print "</BODY></HTML>\n";
exit;

exit;

次にこのURLで開きます.

http://localhost/home/test.cgi


いかがでしょう?
あとは適当にフォルダを作ってもよし,HTMLの表示テストや,CGIの動作確認ができます.
完璧に動作するのを確認してサーバーにアップしましょう.
Cgiプログラム側の設定!2003.09.03
ダウンロードしたcgiプログラムをPCで動かす時には,perlのパスの設定を確認する必要があります.
たいてい1行目に 

#!/usr/local/bin/perl

があります.これを

#!D:/perl/bin/perl.exe

と書き換えます.
注意点 2001.05.08
ローカルサーバーの場合,パーミッションの設定の必要はありません.
サーバーにアップしたあとは,各ファイルやフォルダのパーミッション設定を忘れないようにしてください.

これは素人が作ったページですので,各自自己責任でお願いいたします.私の環境では何事もなく動作していますが,
必ずしも問題がないとは言い切れません.また,このことが原因で,生じたPCの不具合等については,当方は責任を負いかねます.
それだけはご了承願います.
また,私で解る範囲なら質問にお答えできるかもしれませんが,くれぐれもご自分で問題解決を目指してください.

なお,このページはトクトクのDMを参考にして私が追加補足して作成しました.
補足 2001.05.09

こんな説明じゃな〜んもわからんわい! と思われた方も多いことと思います.私もそいうです・・・・

そんなあなたには,こちらをご紹介します.KENTさんち

はたまた,わしゃやっぱりapacheだ.というあなたにはこちら

どちらも,ここよりはう〜んとためになることでしょう.