------------------------------------------
■IISでPerl CGIを動かす
------------------------------------------
1.ActivePerlをインストール
http://www.activestate.com/activeperl
→コマンドプロンプトでインストール状況を確認 :perl -v
2.cgiファイルを配置するフォルダ作成
「アクセス許可」:Everyone"に"フルコントロール"
3.IIS有効化
「役割サービスの選択」>「アプリケーション開発」を開き、"CGI"、"ISAPI拡張"にチェック
4.IISマネージャー
(1)IISの設定で.cgi拡張子をPerlに関連づける
①「ホーム」>"ISAPIおよびCGIの制限">「追加」
"C:\Perl\bin\perl.exe" "%s" %s
②「ホーム」>"ISAPIおよびCGIの制限">「機能設定の編集」「ISAPIおよびCGIの制限の設定の編集」>
"特定できないCGIモジュールを許可する"
"特定できないISAPIモジュールを許可する"にチェック
(2)アプリケーションの追加
「サイト」 >"Default Web Site"右クリック>「アプリケーションの追加」
エイリアス:Scripts
物理パス C:\inetpub\Scripts
(3)ハンドラーマッピング
「/Scriptsホーム」画面>ハンドラーマッピング」>右メニュー「機能を開く」>
右メニュー操作から「機能のアクセス許可の編集」>「機能のアクセス許可の編集」画面
"読み取り"のチェックは解除
"スクリプト"&"実行"にチェック
→CGI-exe、ISAPI-dllが"有効"になったことを確認
5.設置するCGIに書かれている各種パスを変更する
UNIX系
#!/usr/bin/perl
Win系
#!C:\Perl\bin\perl
6.必要に応じてアクセス権限を設定する
------------------------------------------
■サンプルコード
------------------------------------------
□0.cgi
------------------------------------------
#!C:\Perl\bin\perl -w
use HTML::Template;
# open the html template
my $template = HTML::Template->new(filename => 'C:\inetpub\mysite\script\0.tmpl');
# fill in some parameters
$template->param(HOME => $ENV{HOME});
$template->param(PATH => $ENV{PATH});
# send the obligatory Content-Type and print the template output
print "Content-Type: text/html\n\n", $template->output;
------------------------------------------
□0.tmpl
------------------------------------------
<html>
<head><title>Test Template</title>
<body>
<h1>My Home Directory is <TMPL_VAR NAME=HOME></h1>
<p>
<b>My Path is set to</b> <TMPL_VAR NAME=PATH></p>
</body>
</html>
------------------------------------------
●参考サイト
------------------------------------------
CGI スクリプトから HTML テンプレートを使うための Perl モジュール
http://perldoc.jp/docs/modules/HTML-Template-2.6/HTML/Template.pod
それ多分IIS7でできるよ
http://perl-users.jp/articles/advent-calendar/2010/win32/13
IIS7.5のPerlが動かない場合の確認事項
http://www.never-giveup.net/2013/09/checklist-when-perl-does-not-work-iis7-5