自分のPCでCGIを使用する


CGIを自分のPCで使用してみたい!、しかし、自分で自宅サーバー(鯖)でもやらない限り実際は必要ない・・・、いやCGIのデバッグには使用できる・・・、それをあえてやることにしました。OSは最適と思われるWindows2000/XP(ディスクはFAT32)、WebサーバーはIISでやってみました。(ASPも使用可能です)
(パーソナルWebサーバー、IIS3.0の方はWindows98でCGIを動かすもご参照ください)

IISのインストールPERLインタープリターをケ゜ットPCにPERLをインストール前準備.cgiのマッピングCGIを実行するディレクトリー/cgi-binまたは/script以外を使の場合実行逆流Windows98でCGIを動かす(Windows95も可)IIS関連サイト

IIS(インターネットインフォメーションサーバー)が設定されてなければコントロールバネル→アプリケーションの追加削除→Wndowsコンポーネントの追加削除でインストールします。

WebサーバーはWindows2000/XPのIISを使用しました。この方法だとASPも使用できる利点があります。

何故か、IISではdefault.htm、default.aspがディホルトです。通常のindex.html、index.htm、index.shtmを設定する場合下記の設定をします。

コントロールパネル管理ツールインターネットサービスマネージャーを実行します。
規定のWEBサイトを右クリック→プロパーティ(R)をクリック
ドキュメントタブより、追加ボタン(D)を押します。
規定のドキュメントの追加で、index.html、ないしはindex.htmを追加します。

FTPによりアプロードしてコンテンツを修正する場合は、
規定のFTPサイトを右クリック→プロパーティ(R)をクリック
ホームディレクトリータブより、ローカルバス(O)のC:\InetPub\ftprootを、
WEBサイトと同じC:\InetPub\wwwrootに変更します。
規定のFTPサイトを右クリック→プロパーティ(R)をクリック
セキュリティアカウントタブより、匿名アカウントを許可する(O)にチェツクされていないことをしましょう。

Windows2000の仮想メモリーのページングフアイルの初期設定は少なめのようです。
マイコンピュータ右クリック→プロパティ(R)→システムのプロパティで詳細タブ
パフオーマンス(P)ボタン→変更(C)ボタン→仮想メモリー画面
初期サイズ、最大サイズをメモリーの2倍ぐらいの値を入力し、設定(S)ボタンを押します。
個々のPCにより事情は違いますが、増やすことにより、より安定すると思われます。

連続運転を行う場合、1〜2週間に1回ぐらい再立上げしてあげましょう。さらに安定します。

Unix系でよく使用されているApache(アパッチ)や、日本語で説明のあるAN HTTPを使用する方法もあります。それぞれ一長一短があります。

アパッチをゲットする場合

AN HTTPをゲットする場合

TOP↑

PERL(パール)インタープリターをケ゜ット

CGIを動かすためのPERLインタープリターが必要です。PERLはC言語に似たインタープリターです。

http://www.activestate.com/ ここから無料ActivePerlを仕入れてきます。

ダウンロードの方法は目まぐるしく変わっています。文章をよく確認し、ダウンロードしてください。下記のURLがよく使用されます。

http://www.activestate.com/Products/Download/Download.plex?id=ActivePerl

ActivePerl-5.6./5.8のWindowsのMSIをダウンロードします。

TOP↑

PCにPERLをインストール

ダウンロードしたフアイルをダブルクリックしてインストールします。

インストール先のディレクトリーはC:\PEARLになってます(その場合#!C:/perl/bin/perl)。自分のPCでテバッグし、UNIXにアプロート゜する場合は、ソースでの互換性を保つため、C:\usr\localまたは、C:\usrにすることをお勧めします。(動作は関係付けで動きますので、単にソース互換だけの問題ですが!)

TOP↑

前準備.cgiのマッピング

なぜか、拡張子〜.cgiフアイルは設定されていません。Perl5.6では〜.plフアイルは設定されます。そのため、

コントロールパネル管理ツールインターネットサービスマネージャーを実行します。
規定のWEBサイトを右クリック→プロパーティ(R)をクリック
ホームディレクトリタブより、構成(G)ボタンを押し、アプリケーションの構成のアプリケーションのマッピングタブで追加ボタン(D)を押します。
アプリケーションの拡張子マッピング追加/編集画面で下記の内容を入力します。

実行フアイル C:\usr\local\bin\Perl.exe %s %s
拡張子 .cgi
動詞 すべての動詞にしちゃいました
スクリプトエンジン(S) チェツクをはずす
フアイルの存在を確認する(C) チェツク

Perl5.8の場合は.plも設定してください。

TOP↑

CGIを実行するディレクトリー

CGIを動かすディレクトリーは、特定のディレクトリーでないと実行しません。つまり、下記のように記述します。

cgi-binディレクトリーがすでに有り、そこで実行したい場合(NT4.0)

http://mypc/cgi-bin/〜.cgi

scriptsディレクトリーで実行する場合(XP,2000,NT4.0)

ルートディレクトリーの下に実際には存在しない仮想ディレクトリー scriptsがすでにセットされています。こちらがおすすめです。ここに、サブディレクトリーを作っていきます。

実際のディレクトリーは全く違う場所の c:¥inetpub¥scriptsにあります。
下記の記述で動作させます。これはセキュリティのための処置だそうです。

http://mypc/scripts/〜.cgi

TOP↑

/cgi-binまたは/script以外のディレクトリーを使用する場合

c:¥inetpub¥scripts¥にディレクトリーを作成 例 count

ディスクがNTFSの場合は、エクスプローラーで該当ディレクトリーを右クリックし、セキュリティタブより、アクセス権(P)ボタンを押し、Everyoneをフルコントロールに設定します。WindowsXPの場合、Userをフルコントロールにしてください。

インターネットインフオメーションマネージャーで、
   規定のWEBサイト(ルート)を右クリックして
     新規作成(N)仮想ディレクトリー
     仮想ディレクトリーの作成ウィザードが起動したら下記をセットします。

エイリヤス名(A) 例 count
デイレクトリー(D) 例 C:\InetPub\scripts\count
アクセス件 読み取り
ASP等のスクリプトを実行する

その仮想ディレクトリーを右クリックし、プロパティ(R)→仮想ディレクトリタブ
アプリケーションの実行で下記のセットをします。

実行アクセス権(P) スクリプトおよび実行可能フアイル
アプリケーション
保護(N)
低(IISプロセス)

さらに、特にディスクがNTFSの場合に必要なのが、ディレクトリーのアクセス権等の設定です。
設置するCGIのマニュアルを見て、UNIXのアクセス権を参考にして、さらに、書き込み(R)、ディレクトリの参照(B)にチェツクを付けます。
不明でしたらそこにチェツクをつけて、動かした後チェツクをはずすのも良いでしょう。

ディレクトリの参照(B)にチェツクを付けた場合、ブラウザーで見ると、ディレクトリが丸見えになってしまう場合があります。その場合、空のindex.html等を置いておくとブブラウザーからディレクトリが見えません。(ディレクトリ丸見え現象)

空のindex.htmlの例

<html>
<body>
</body>
</html>   

Windows2000/XPの認証画面を出したい場合、ディレクトリーを右クリックし、プロパティ(R)→ディレクトリセキュリティタブ
匿名アクセスおよび認証コントロールの編集(E)ボタンを押し、認証方法画面の匿名アクセス(A)のチェツクをはずすと、ホムペの該当部をアクセスする時、Windows2000/XPの認証画面を出すことができます。
もちろん、コントロールパネルのユーザーパスワードで登録し、エクスプローラーで該当ディレクトリーにアクセス権の登録が必要です。

実行の記述例は http://mypc/scripts/count/〜.cgi です。

TOP↑

いよいよ実行。CGIのスクリプトを持ってきます。

KENTさんのオフラインでCGIを動かそうの巻よりaska.cgiを連れてきました。
マニュアルではディレクトリーは/bbsですが、最初にある/cgi-binまたは/scriptにインストールするとスムーズです。つまり、

http://mypc/cgi-bin/aska.cgi

または、

http://mypc/scripts/aska.cgi

です。

これで、自分のPCのCGI対応WWWサーバー化完了です。

もちろん、掲示板は、G−LIGHTYY−BORDでも動きます。その場合はフアイルロックの設定をします。

フアイルロック $lickkey = 2
$lickkey = 2の設定がない場合、不明な場合そのまま$lickkey =0

TOP↑

逆流(クライアントがサーバーに)

KENTさんの自宅マシン開局の巻にありました逆流をやります。
インターネットに接続して、逆流(クライアントがサーバーになり、情報の流れがまったく逆になる)させれば、りっぱな自宅サーバーになれます。セキュリティには気をつけてください。

MyServerDoor-HTTPD 自宅WWWサーバー入り口

ここに登録すると、簡単にサーバーとして開放することができます。

最近、ハッカーの不穏な動きがあり、特にコンテンツのバックアップ、マイクロソフトの情報を仕入れる。セキュリテイの修正プログラム(パッチ)で強化。設定を少し変えてみる(例C:\InetPub\wwwroot を D:\InetPub\wwwmyroot とか)。十分注意してください。

Windows98でCGIを動かす。(Windows95も可)

パーソナルWebサーバーは、Windows2000のIISとよく似ています。そちらもご参照ください。

パーソナルWebサーバーが設定されてなければコントロールバネル→アプリケーションの追加削除→Wndowsコンポーネントの追加削除でインストールします。
さらにCD−ROMのd:add-one\pws\setup.exeをダブルクリックして追加をインストします。c:\windows\options\cabs\pws\setup.exeでインストできるパソコンもあります。
パーソナルWebマネージャーをうごかしてインストールされていることを確認します。

PERLをインストールします。IISのPERLインタープリターをケ゜ットPCにPERLをインストールを参照してください。(Windows95の場合は、DCOM95 for Windows95をインストしておく必要があります)

パーソナルWebマネージャーを動かします。(右下のトレイにアイコンがありjまます。)
詳細をクリック
 詳細オプションで
  ディレクトリーの参照を許可(W)にクリック
  規定のドキュメント(D)に index.html等を追加
  仮想ディレクトリーより、Scripts ないしは cgi-binディレクトリーを選択
  プロバティの選択ボタンを押します。
   ディレクトリー編集画面で
    アクセスの 読み取り(R)、実行(X)、スクリプト(S)にチェツク OKボタンを押します。
    UNIXのアクセス権を参考にして、設定します。

レジストリーのセットをします。(注意して行ってください)

 スタートボタンを押し、フアイル名を指定して実行(R)で、REGEDITと入力して
  OKボタンを押し、動かします。

左側の窓のマイコンピュータより、ダブルクリックすることにより、下記のディレクトリーScript Mapまでたどります。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters\Script Map

メニューの編集(E)より、新規(N)選択、文字列(S)選択し
名前を新規数値#1から .cgiに変え、ダブルクリックし
文字列の選択画面で
 文字列にperlをインストールしたところを指定します。


 
  名前 .cgi 文字列 C:\usr\local\bin\perl.exe %s %s
  名前 .pl  文字列 C:\usr\local\bin\perl.exe %s %s (ついでに)


念のためOSの再立ち上げを行います。

以上て、Scripts ないしは cgi-binディレクトリーにCGIをセットすれば動きます。IISの実行を参照してください。

TOP↑

IIS関連サイト

Microsoft Internet Infomation Server

IISのオンラインマニュアル

自宅マシン・メール送信計画 KENTさん

TOP↑

もどる

IEの戻るボタン
の方が速いです