WindowsXPにPerl!

Updated:


今夜は、 うちのメインマシン(WindowsXP)でCGIを動かしたいために、「 Perl 」を導入してみました。

あくまでも、ローカルでの動作確認用です。 本格的にWindowsでサーバ運用するつもりは(とりあえず)ありません。

導入記録

※前提条件は、 ・WindowsXP(SP3)にWebサーバとしてApache2がインストール済み。 です。ご自分の環境と違う場合は若干異なることがあるかもしれません。 ※※必ずしも、このやり方が正しいとは限りません。 ※※自分の備忘録です。あくまでも参考程度に!

1.インストールファイルのダウンロード

Windows用のActivePerlを こちら( http://aspn.activestate.com/ASPN/Downloads/ActivePerl/ )のページの 「 Download ActivePerl 」へ進み、 「 ActivePerl DOWNLOAD NOW 」のボタンをクリックしてダウンロード。 (ニュースレターの登録画面が出るが「 maybe later 」でスキップ可能) ※当記事執筆時点では「 ActivePerl-5.10.0.1004-MSWin32-x86-287188.msi 」が最新。

2.インストール

先ほどダウンロードしたファイルを実行させる。 途中ライセンス同意にクリックする必要があるが、その他は全てデフォルトでインストール。 インストールが正常に終了するとCドライブに「 perl 」フォルダができるはず。

3.Perlの動作確認

・動作テストのために以下のような簡単なサンプルをテキストエディタなどで作成する。 (例としてファイル名を「 test.pl 」として、適当なフォルダに保存する)

[perl font_size="90%"] printf ("Hello Perl!!"); [/perl]

・コマンドプロンプトより以下のように実行してみる。 (Perlのインストール時に「 perl.exe 」にもPATHが通っているみたいです)

D:\90_Work>perl test.pl
Hello Perl!!
D:\90_Work>

「 Hello Perl!! 」と表示されればOK!

4.ApacheでのCGI動作確認

・Apacheインストールフォルダの「 cgi-bin 」フォルダ (うちの場合、「 C:\Program Files\Apache Software Foundation\Apache2.2\cgi-bin 」) 内にある「 printenv.pl 」をコピーして「 printenv.cgi 」とし、1行目が

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

とPerlをインストールした場所の「 /bin/perl.exe 」となっていることを確認する。 ・Apacheを起動しブラウザより「 http://localhost/cgi-bin/printenv.cgi 」にアクセスし、以下のように表示されればOK!

COMSPEC="C:\WINDOWS\system32\cmd.exe"
DOCUMENT_ROOT="D:/00_MyDocuments/01_WWW/html_work"
GATEWAY_INTERFACE="CGI/1.1"
HTTP_ACCEPT="text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
HTTP_ACCEPT_CHARSET="Shift_JIS,utf-8;q=0.7,*;q=0.7"
HTTP_ACCEPT_ENCODING="gzip,deflate"
HTTP_ACCEPT_LANGUAGE="ja,en-us;q=0.7,en;q=0.3"
HTTP_CONNECTION="keep-alive"
HTTP_HOST="127.0.0.1"
HTTP_KEEP_ALIVE="300"
HTTP_USER_AGENT="Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6"
PATH="C:\Perl\site\bin;C:\Perl\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\system32\WBEM;C:\Program Files\Common Files\Ulead Systems\MPEG;C:\Program Files\Microsoft SQL Server\90\Tools\binn\;C:\php"
PATHEXT=".COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH"
QUERY_STRING=""
REMOTE_ADDR="127.0.0.1"
REMOTE_PORT="1533"
REQUEST_METHOD="GET"
REQUEST_URI="/cgi-bin/printenv.cgi"
SCRIPT_FILENAME="C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin/printenv.cgi"
SCRIPT_NAME="/cgi-bin/printenv.cgi"
SERVER_ADDR="127.0.0.1"
SERVER_ADMIN="webmaster@mk-mode.com"
SERVER_NAME="127.0.0.1"
SERVER_PORT="80"
SERVER_PROTOCOL="HTTP/1.1"
SERVER_SIGNATURE=""
SERVER_SOFTWARE="Apache/2.2.11 (Win32) PHP/5.2.8"
SYSTEMROOT="C:\WINDOWS"
WINDIR="C:\WINDOWS"

5.Apache設定ファイルの確認

上記はApacheのデフォルトのフォルダにCGIを作成していたが、自分のWebページで使うものだからドキュメントルートに変更しないと不都合きわまりない。 従って、Apache設定ファイル httpd.conf( デフォルトなら C:\Program Files\Apache Software Foundation\Apache2.2\conf フォルダ内)を以下のように変更する。。

・・・ 途中省略 ・・・

<Directory "D:\00_MyDocuments\01_WWW\html_work">
・・・ 途中省略 ・・・
    #Options Indexes FollowSymLinks
    Options Includes ExecCGI FollowSymLinks  (< - - - CGIも使えるようにする)
・・・ 途中省略 ・・・
    AddHandler cgi-script .cgi  (< - - - CGIも使えるようにする)
</Directory>

・・・ 途中省略 ・・・

<IfModule alias_module>
・・・ 途中省略 ・・・
    #ScriptAlias /cgi-bin/ "C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin/"
    ScriptAlias /cgi-bin/ "D:/00_MyDocuments/01_WWW/html_work/cgi-bin/"  (< - - - 自分のドキュメントルートに変更する)

</IfModule>

・・・ 途中省略 ・・・

    #AddHandler cgi-script .cgi
    AddHandler cgi-script .cgi .pl  (< - - - .pl ファイルも使えるようにする)

・・・ 以下省略 ・・・

6.ドキュメントルートでのCGI動作確認

ドキュメントルートに「 cgi-bin 」フォルダを作成し、そこにCGIファイル、Perlファイルを置く。 Apacheを再起動後、ブラウザよりCGIファイルにアクセスしてみる。 ※例えば、 ApacheデフォルトのフォルダのCGIが動いているのか、 ドキュメントルートのフォルダに置いたCGIが動いているのかを確認する意味で、 上記の「 4 」で使用した「 printenv.cgi 」を「 printenv2.cgi 」などと名前を変えてドキュメントルート配下の「 cgi-bin 」フォルダに配置し、 「 http://localhost/cgi-bin/printenv2.cgi 」にアクセスして「 4 」と同じような画面が表示されればOK。


これで、Windowsでも CGI(Perl) が使えるようになりました。

本当はFedoraサーバで CGI 使った処理をしたくて。。。 でもその前に思う存分ローカルであれこれとテストしてみたかったんで、 今回Windowsマシンに「 Perl 」を入れた次第です。

では、また。





 

Sponsored Link

 

Comments