できる?OSSのインストール(2)インストールマニアックス3のWebサーバーでPerlを動かしてみる

インストールマニアックス事務局です。
こんにちは。

phpを動かした後は、これまたたくさんのOSSのプラットフォームとして使われているPerlを動かしてみたいと思います。BBSやカウンターなど昔から公開されているOSSではPerlが使われているものも多いですので、インストールしておきたいものです。

※ここで紹介している方法はあくまで一例です。これ以外にも違うやり方もありますし、これを参考にして正常動作しなかった場合でも事務局では責任を取りかねますので、あらかじめその点ご了承ください。

※(1/5追記:下記の手法でActivePerlを動作させた場合、Hyper-V判定プログラムが正常動作しないことがわかりました。http://d.hatena.ne.jp/installmaniax3/20100105/1262702383 に対応方法を記しておりますので、そちらの方もご確認ください
 
ActivePerlのインストール

まずはPerlを実行するために必要となるActivePerlをインストールすることにします。
 
http://www.activestate.com/activeperl/
 
右上にある「ActivePerl DOWNLOAD NOW」ボタンをクリックすると最新版のインストーラーがダウンロードされます。
最新バージョンは5.10.1のようです。
 

 
インストールは簡単なので詳しくは書きませんが、インストーラーを起動して、基本的に何も考えず「Next」や「Install」ボタンをクリックしているとインストールは終了します。


 

・ISAPI拡張サービスの導入

次にIISにISAPI拡張サービスをインストールする必要があるようですので、インストールします。
 
サーバーマネージャからIISを選び、「役割サービスの追加」を選びます。

次に「役割サービスの選択」ダイアログが現れますので「ISAPI拡張」にチェックを入れ、「次へ」をクリックします。

インストールの確認画面になりますので「インストール」ボタンをクリックします。


・ハンドラーマッピングの設定

次にハンドラーマッピングを設定して、*.cgiで呼び出されたファイルがperlのプログラムとして実行されるようにに設定します。*.cgiと関連づけるのはIIS用に用意されているらしいperlis.dllです。

まずサーバーマネージャの「Default Web Site」を選び、「ハンドラーマッピング」をダブルクリックします。


スクリプトマッピングの追加」をクリックし、図のように要求パス「*.cgi」、実行可能ファイルはperlis.dllを選びます。


次にISAPIおよびCGIの制限の設定です。

まずサーバーを選び機能ビューからから「ISAPIおよびCGIの制限」を開きます。


「機能設定の編集」をクリックし、「ISAPIおよびCGIの制限の編集」ダイアログを開きます。


そして、「特定できないISAPIモジュールを許可する」「特定できないCGIモジュールを許可する」どちらにもにチェックを入れます。


そして、最後に32ビットアプリケーションが動くようにします。

アプリケーションプールの「DefaultAppPool」を選択し「詳細設定」をクリックします。

「詳細設定」ダイアログの「32ビットアプリケーションの有効化」を「True」にします。

これでPerlが動作するようになったはずです。

Perlの動作確認
ということで簡単なプログラムでPerlの動作を確認します。
以下のようなサンプルプログラムを書いてデフォルトルート(C:\inetpub\wwwroot\)にenv.cgiという名前で保存します。
 
foreach my $key( keys %ENV ){print "$key: $ENV{$key}", "<br>\n";}
 
ブラウザーから
http://localhost/env.cgi
にアクセスし、下の図のように環境変数が表示されていると、Perlが正常に動作しています。おめでとうございます。

 
・インストール例

課題の中からyy-boardをインストールしてみました。
これはPerlだけ動けば動作しますが、少しスクリプトを変更する必要があるようです。