新トップページへ | Tip

Windowsのapache(2.2)にてperlのCGIを動かし、CGIを作るための環境を作る方法

LastUpdate : 06/12/24

 1台のwindowsパソコン上でapache2.2.3(win32)とActivePerlを使用し、CGIの開発を行えるようにするための方法についてのメモです。
 別の方法として、最も簡単な方法ではないかと思われる、「AN HTTPD 」( http://www.st.rim.or.jp/~nakata/ )を使う方法がありますが、ここではあえてApacheを使って環境の整備を行ってみたいと思います(単にPerlでCGIを書き、テストが行いたいだけならば、「AN HTTPD」を方を使ったほうが簡単です)。

前提条件

 ローカルでしかApacheを走らせないことを前提にしています。
 ActivePerl(「 http://www.activestate.com/Products/ActivePerl/ 」)がインストールされていること。

インストール方法

 まず、Apacheをダウンロードします。

http://www.apache.jp/misc/download.html
好きなところからwin32用バイナリを入手します。私は「 http://www.apache.jp/dist/httpd/binaries/win32/ 」から「apache_2.2.3-win32-x86-no_ssl.msi」ファイルをDLしました(msi形式とはインストーラーがくっついている、アレです)。

 ファイルをDLして、ダブルクリックすれば、インストーラーが起動してインストールされます。
 インストールが完了したら、設定ファイルをいじります。

設定方法

 インストールされたフォルダ(私の場合[ C:\Program Files\Apache Software Foundation\Apache2.2 ])の中に「conf」フォルダがあります。その中の「httpd.conf」ファイルをエディタで開きます。
 133行目あたりに「 ServerAdmin 」 というところがあります。そこにはE−Mailアドレスを入力します。なにか適当な自分のメールアドレスでも入力しておきましょう。
 137行目あたりに「 ServerName 」というところがあります。「 127.0.0.1 」と入力します(127.0.0.1は特殊なIPアドレスです。自分のパソコンを指します)。
 以上の変更が終わったならばhttpd.confファイルを上書きします。  
 なお、ミスをして内容をぐちゃぐちゃにしてしまった場合は、httpd.confがあるフォルダの中に「default」というフォルダがあります。その中に、初期設定状態のhttpd.confがありますので、それをコピペしてきて、もう一度やり直しましょう。

 そして、apacheを起動します(すでに実行されている場合はrestart)。一緒にインストールされる”Monitor Apache Servers”というツールを使えば、長ったらしいコマンドラインを入力しなくとも、クリック一つで操作可能です。
 httpd.confの編集に失敗していたのならば、立ち上がりませんので、もう一度httpd.confファイルを確認する必要があります。
 そして、ブラウザを立ち上げ、「 http://127.0.0.1/ 」にアクセスしてみます。すると、「It work」と表示されるはずです。
 これは、デフォルトの設定でインストール先のフォルダの「 htdocs 」というフォルダの中のindex.htmlファイルを表示しています(例として、私の環境では[ C:\Program Files\Apache Software Foundation\Apache2.2\htdocs ])。

 そして、次はCGIを動かすテストです。
 Apacheのインストール先フォルダの中に「 cgi-bin 」というフォルダがあります。その中に、printenv.plというサンプル用のスクリプトがおいてあります。このファイルの拡張子をcgiに念のため変更しておきます。
 そして、printenv.cgiをファイルで開き、先頭の一行が、自分のパソコンのperl.exeが有る場所と一致するか、チェックしてください。違う場合は、直します(私は[ #!D:/tmp/f_program/activeperl/bin/perl.exe ]と修正しました。)
 そして、ブラウザから「 http://127.0.0.1/cgi-bin/printenv.cgi 」にアクセスすると・・・、環境変数の一覧が表示されるはずです。

 というわけで、とりあえず、cgi-binフォルダにcgiファイルをコピペして、ブラウザからhttp://127.0.0.1/cgi-bin/スクリプトの名前.cgiとアクセスすれば、実行結果を見ることができるわけです。

フォームタグの中から 
<form method="POST" action="http://127.0.0.1/cgi-bin/スクリプトの名前.cgi">

・・・・・・・・(必要な項目)・・・・・・・・

</form>
とやれば、cgiにPOSTできるはずです(物によってはGETでも別にいいですが)。

とりあえずは、これで動かせるはずです。