IISでCGIを動かす | ’もっさ’のテスターブログ

’もっさ’のテスターブログ

更新情報お騒がせしてすみませんm(_ _)m
これはテスト用のブログです。
リンク先は、ほとんどがダミーリンクです。
ブログデザインの確認などにご覧ください。

------------------------------------------
■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