準備1(Windows Vista or Windows Server 2008 + Internet Information Server 7.0 を使用した場合)

動作確認 Web サーバ
Internet Information Server 7.0

  1. c:\inetpub\wwwroot\cgi-bin フォルダを作成します。(以下CGIフォルダ)

  2. 解凍された CGI 及び必要な画像ファイル(logo.gif / pmcursor.gif )を CGIフォルダにコピーします。
    アイコンを利用する場合は CGI フォルダに「icon」でフォルダを作成しその中にコピーします。

  3. Default Web Site で右クリックをし「アプリケーションの追加」を選択します。
    必ずアプリケーションの追加を行ってエイリアスとディレクトリ設定を行って下さい。
    \inetpub\wwwroot\cgi-bin を作成した場合、IIS マネージャーにはこのフォルダが直接表示されていますが、物理フォルダに直接CGIの設定を行うと CGI が正しく動作しない場合があります。

  4. エイリアスに「cgi-bin」物理パスに「c:\inetpub\wwwrott\cgi-bin」を入力します。

    IIS7.0 アプリケーションの追加

    cgi-bin の物理フォルダと仮想フォルダが重なっていますが、標準FTPサーバ以外を利用する場合を想定しています。物理フォルダは必ずしも c:\inetpub\wwwroot\ 下に無くても構いません。

  5. コンテンツビューに切り替えると先にコピーしてある CGI が見えます。アイコンも仮想フォルダに変わっています。

    IIS7.0 アプリケーションの追加 - コンテンツビュー

  6. 機能ビューに戻り、先程作成した cgi-bin フォルダを選択後に「ハンドラマッピング」を開きます。

    IIS7.0 ハンドラマッピング

  7. ハンドラマッピングを開くと、拡張子 *.exe が無効になっていますので有効にする必要があります。
    Vista 等では CGI-exe が追加されていない(CGIModuleが無い)場合があります。その場合はコントロールパネルの「プログラムと機能」を開き「Windows の機能の有効化または無効化」を選択した後に「World Wide Web Services」「アプリケーション開発機能」「CGI」にチェックを入れ CGIModule のインストールを行って下さい。

    IIS7.0 ハンドラマッピング2

  8. 「CGI-exe」を選択し右クリックのメニューより「編集」を選択します。
    選択後に「モジュールマップの編集」が表示されましたら「要求の制限」ボタンをクリックします。

    IIS7.0 モジュールマップの編集

  9. 要求の制限ページの「アクセス」タブを選択肢を選択し「スクリプト」から「実行」に変更し、OKを押して閉じます。

    IIS7.0 アクセスの変更

  10. cgi-bin のハンドラマッピングの画面に戻りますと、CGI-exeが有効になっているのを確認し右側の「機能のアクセス許可の編集」をクリックします

    IIS7.0 アクセス許可の編集

  11. 「実行」にチェックを入れ OK を押して閉じます。

    IIS7.0 アクセス許可の編集2

  12. まだ終わりません。IIS のホームに戻り、「ISAPIおよびCGIの制限」をクリックします。(用語がわかりにくいです)

    IIS7.0 ISAPIおよびCGIの制限

  13. 「追加」をクリックし、CGI の登録を行います。
    画面では pmum.exe の登録を行っていますが、必要に応じて pmam.exe やご利用になる他の CGI も追加してください。

    IIS7.0 CGIの追加


以上で、CGI を動作させる設定が完了しました。次に CGI がアクセスするファイルに対してのセキュリティ設定を行います。

CGI がアクセスするファイルは以下になります。

基本的に CGI からのファイルアクセスは「インターネットゲストアカウント」として IIS インストール時に自動的にユーザー(アカウント)登録されます。
Web サーバ内の HTML や画像に対してもこのアカウントが利用されますが、CGI の場合は、ファイルへの変更や削除等を行いますのでデフォルトの設定ではアクセスが禁じられています。従ってインターネットゲストアカウントで各ファイルやフォルダへ変更等を行う設定が必要になります。 インターネットゲストアカウントは、管理ツール内のコンピュータの管理を開き、ローカルユーザーとグループの中で確認することが出来ます。

iuser2008.gif

アカウント名はデフォルトで「IUSR_コンピュータの名前」で登録が行われます。

●account.dat(ファイル)や Spool等(フォルダ)へのセキュリティ設定方法
  1. 対象のファイル又はフォルダのプロパティを開き、セキュリティページを開きます。
  2. 追加ボタンを押し、インターネットゲストアカウントを登録します。(コンピュータの管理からアカウント名をコピー&ペーストすると楽です)
  3. 「変更」にチェックを入れ「適用」をクリックします。
  4. Users を選択し、「変更」にチェックを入れ「適用」をクリックします。
  5. iuser2008b.gif
    上記の設定は一例です。お使いのサーバの環境にあわせて適切なアクセス権を設定して下さい。

適切なアクセス権が設定されていない場合は、CGI をブラウザから実行する際に「内部サーバエラー」が発生したり、メールの削除が出来なかったりします。その場合には再度アクセス権利を見直してください。

セキュリティの為の注意事項
account.dat はアカウント情報が記録されている大切なファイルです。account.dat を盗まれるとそのメールサーバの全てのアカウントのID とパスワードが盗まれることと等しいです。
PMAM/PMUM 共にアクセスする必要がある為、上記の例ではインターネットゲストアカウントからアクセス出来るように説明をしておりますが、アクセス方法に制限が加わりますが安全の為、IUSR_xxxx では無くドメインユーザーを作成し PMAM.EXE/PMUM.EXE と account.dat へのアクセスには下記のように認証を行ってください。

PMAM/PMUM にアクセスした時点でサーバへの認証が行われますのでより安全な運営を行うことが出来ます。


●CGI タイムアウト時間の延長設定(IIS 7.0)
CGI をご利用になる場合に、処理時間が長くタイムアウトになってしまう場合は下記の方法で CGI のタイムアウト時間を延長して下さい。

  1. IIS マネージャを開き、IIS グループにある「CGI」を選択します。 CGI タイムアウト

  2. 「timeout」に CGI がタイムアウトするまでの時間を設定します。
    CGI タイムアウト設定

デフォルトの値は 15分になっています。処理が15分以内に終わらない場合はこの値を増やして下さい。具体的な数値はお使いになっている回線環境、サーバスペック等で調節して下さい。

注意事項


●アップロードサイズ制限の変更(IIS 7.0)

IIS 7.0 では HTTP経由で送信できるサイズが制限されています。
大きなファイルを添付する場合は、以下の箇所を変更してください。

  1. システムフォルダ(OSがインストールされているフォルダ内にある system32 フォルダ)\inetsrv\config\applicationHost.config をメモ帳で開きます。

    青色のDenyAllowに変更し保存します。

  2. 次に CGI を置いたフォルダにある web.config をメモ帳で開きます。

  3. HTTP経由でファイルを送信する場合若干ヘッダ等が付くため、想定サイズよりも若干多めに設定すると確実です。
    上記のセクションが無い場合は、上の例を参考にして対応する場所に追記してください。