TOP > スクリプト制作メモ > CGIのローカルテスト環境を構築しよう

≫CGIを共有サーバでテストするなんて…

CGI、いわゆるPerlスクリプトを制作するに当たってネット上のサーバに毎度アップロードして実行するというのは非常に手間です。十二単を着た後にトイレに行くくらい手間です(着たことねーって)。

さらに、ネット上のサーバスペースは大抵は共有サーバで、スクリプトのテストを行うにはやや危険が生じます。なぜなら、至極簡単なスクリプトでも、一旦暴走をはじめるとサーバを落としかねないからです。

そのような事態になると、共有者全体が迷惑を被ります。規模によっては大変な被害になってしまうので、CGIを作っていく時には常に注意が必要となります。

そうはいっても、スクリプトの制作は楽しいし、フリーで配布されているスクリプトの設置に慣れると、自分で改良してみたくなってきます。

そんな時、スクリプトを自由に実行テストできる環境があるととても便利です。そこで、AN HTTPDの登場と相成るわけでございます。

スクリプトをFTPでサーバにアップして実行テストするのは手間 & 危険
↓↓
自分のPCでテストできればアップロードしなくていいし、落ちても自己責任のみ。
↓↓
AN HTPPDを導入すればOK!


AN HTTPDはWindows用のHTTPサーバ(Webサーバ)です。
公式の紹介コメントから引用すると「Win32(Windows95, Windows98, Windows Me, WindowsNT4.0, Windows2000, WindowsXP)用で、マルチスレッド(最大50スレッド)方式です。 SSI,CGIも使えます。SSI/CGIのサーバ側の処理では標準入出力を用いていますので、Perl等で作った SSI/CGI プログラムがそのまま利用できます」ということになります。

マルチスレッドうんぬんは、わからない人は軽く無視しといてかまわないでしょう。とにかく、フリーウェアでありながら素晴らしい一品です。容量も軽いので気軽に導入できます。アンインストールも簡単なので躊躇する余地はありません。

危ぶむなかれ、AN HTTPDの導入は意外と簡単


さて、AN HTTPDの導入を決めました。
しかし、AN HTTPDはWebサーバなので、Perl実行テストのためにはWin用のPerlを別途入手しなければなりません。ご安心を。Perlもフリーで配布されています。

ただし、PerlスクリプトでUNIX用に書かれたものはWindows用のPerlでは使えない関数があるため、そのままでは動かないことがあります。 しかし、一般的な掲示板スクリプトなどは問題なく動きますので心配ありません。UNIXのコマンドをWinで動かすためのツールも揃ってきているので、もしもの場合はそちらを導入していけばよいでしょう。

AN HTTPD + Perl for Win32でお金をかけずにローカルテスト環境完成\(^o^)/





≫というわけでダウンロード

AN HTTPD公式サイト中段あたり、もしくは窓の杜(AN HTTPDの紹介ページ)から。 Perl for Win32の最新版はACTIVE STATEからですが、英語でよくわからんという人も多いかと思いますので、Vectorからダウンロードするのも手です。

解凍先の選択に迷う方もあるかと思います。わたくしめはハードディスク(C:)の直下にhttpdというディレクトリを作成し、その中にhttpdのファイル群を置いております。httpd内にローカルサイトフォルダを作ってテストしていく都合上、ショートカットの利用もありますが、フォルダを開く回数がかさまないようになるべく上の階層で作った方が吉かと思います。また、フォルダ名も解凍したデフォルトだとバージョン名が含まれているかもしれませんが、のちのちバージョンアップで差し替える時面倒なのでhttpdなど固定した物にしておいた方が楽だと思います。

AN HTTPDはなるべく上のディレクトリに解凍
のちのちのバージョンアップを視野に入れてhttpdなど固定したフォルダ名にしておいた方が楽


 Perlはhttpdディレクトリの中にPerlフォルダを作成してその中に入れてあります。それぞれで扱いやすいフォルダ構成があると思いますが、はじめてでどうしようか迷う方は参考にどうぞ。

C:\─/httpd/
        ┼--/Perl/ [Perl for Win32のファイル群]
        │
        ┼- httpd.exe
        │     :
        │     :
        │  [httpdのファイル群]
        │
        ┼--/hogehoge/ [ローカルの作成ページ保存用フォルダ]
               │      (複数サイトになることを見越してpublic_htmlをトップに出さない)
               ┼---/public_html/
                         │
                         ┼- index.html
                         │      :
                         ┼---/cgi-bin/
                                 │
                                 ┼- testhoge.cgi
                                     ^^^^^^^^^^^^
ANHTTPD でルートを
c:\httpd\hogehoge\public_html\
と設定すると

testhoge.cgiの実行テストURLは
http://127.0.0.1/cgi-bin/testhoge.cgi
となります。

*この構成の場合、ANHTTPD のデフォルトルートを c:\httpd とかしないように。
 Perl.exe に外からアクセスできる設定は危険です(PHPなんかも同じ)。


で、実際の使い方に関しては主要サイトをリンクしておきますのでそちらをご参照下さい。詳細に解説して下さっていますので、十分だと思います。設定自体GUIで簡単ですし。
サイト名解説
公式ReadMe(解説書)まずはここから。よくわからなくてもひと通り読んでみましょう。
設定の解説画像を用いてわかりやすく設定方法を解説してくださっています。
AN HTTP 良くある質問と回答/検索公式サイト内のFAQとその検索ができます。
AN HTTP 良くある質問と回答/検索 再編集版いとさんによるFAQ全文検索サイト。上で見つからない場合にはここで検索してみましょう。


≫蛇足

ちなみに、AN HTTPDはPHPにも対応しており、Perlと同じくPHP for Windows PackageをインストールすればローカルでPHPのテスト環境を作ることができます。英語なんで大変ですが以下の手順でやってみてください(ウィンドウズ98の場合です)。最新バージョンにはインストーラもあるようなので下の手順も必要ないようですが。

  1. パッケージを解凍して適当な場所に置く。(例:C:\http\php)←Perl同様httpd直下推奨
  2. C:\httpd\php\php4ts.dll を C:\Windows\System(システムフォルダ)にコピーします。
  3. C:\php\php.ini-dist を php.ini に名前を変更して C:\Windows(ウィンドウズフォルダ) にコピーします。
  4. php.iniを、
    セッションを使うなら---session.save_path = C:\php\tmp
    PEARを使うなら---include_path = ".;c:\php\includes;c:\php\pear;"
    と書き換えましょう。


TOP > スクリプト制作メモ > CGIのローカルテスト環境を構築しよう
(C) bayashi.net