趣味のプログラム工房

IIS7.5でPerlを実行【Windows2008R2】

大人の事情で、IIS+Perlの環境でプログラムを動かすことになりました。
そのための検証を行ったのですが、意外にメンドクサイ。


IISのインストールは、ISAPI拡張だけあればよさそう。
CGIはおそらく不要です。(必要ならインストールして)


続いて、ActivePerlのインストールですが、64bitOSであっても32bit版のほうがよさそうです。


インストールが完了したら、あとはIISPerlのマッピング。

『ハンドラーマッピング』の設定から、スクリプトマップの追加を行います。
そこで拡張子「*.cgi」にたいし、「perlis.dll」(デフォルトのままだと、C:\perl\binの下にある)を指定します。
ここで、perl.exeは指定しないこと!

マッピングが追加できたら、念のため、「機能のアクセス許可の編集」を選び、実行にチャックが入っていることを確認。


これで、Perlが使えるようなっているはずです。

ただし、注意点として、どうもIISが出力するヘッダがおかしいらしく、perlスクリプトに手を入れる必要があります。

具体的にはヘッダの出力前に、下記の文字列を返す必要があります。何故か。
print "HTTP/1.1 200 OK\n";


この修正が面倒な場合、マッピングとして「perl.exe」を使う方法もありますが、こちらの場合、スクリプト内で呼んでいるライブラリやデータファイルなどのパスを絶対パスで書く必要あります。
おそらく、ヘッダ出力の書き換えより影響範囲が広いと思われるため、私としては、perlis.dllを使うのがお勧め。

あと、perlEx30.dllを使う方法もありますが、こちらも、パスがうまく通らないっぽいです。

2012年09月14日