動作確認 Web サーバ
Internet Information Server 7.0
c:\inetpub\wwwroot\cgi-bin フォルダを作成します。(以下CGIフォルダ)
解凍された CGI 及び必要な画像ファイル(logo.gif / pmcursor.gif )を CGIフォルダにコピーします。
アイコンを利用する場合は CGI フォルダに「icon」でフォルダを作成しその中にコピーします。
Default Web Site で右クリックをし「アプリケーションの追加」を選択します。
必ずアプリケーションの追加を行ってエイリアスとディレクトリ設定を行って下さい。
\inetpub\wwwroot\cgi-bin を作成した場合、IIS マネージャーにはこのフォルダが直接表示されていますが、物理フォルダに直接CGIの設定を行うと CGI が正しく動作しない場合があります。
エイリアスに「cgi-bin」物理パスに「c:\inetpub\wwwrott\cgi-bin」を入力します。
cgi-bin の物理フォルダと仮想フォルダが重なっていますが、標準FTPサーバ以外を利用する場合を想定しています。物理フォルダは必ずしも c:\inetpub\wwwroot\ 下に無くても構いません。
コンテンツビューに切り替えると先にコピーしてある CGI が見えます。アイコンも仮想フォルダに変わっています。
機能ビューに戻り、先程作成した cgi-bin フォルダを選択後に「ハンドラマッピング」を開きます。
ハンドラマッピングを開くと、拡張子 *.exe が無効になっていますので有効にする必要があります。
Vista 等では CGI-exe が追加されていない(CGIModuleが無い)場合があります。その場合はコントロールパネルの「プログラムと機能」を開き「Windows の機能の有効化または無効化」を選択した後に「World Wide Web Services」「アプリケーション開発機能」「CGI」にチェックを入れ CGIModule のインストールを行って下さい。
「CGI-exe」を選択し右クリックのメニューより「編集」を選択します。
選択後に「モジュールマップの編集」が表示されましたら「要求の制限」ボタンをクリックします。
要求の制限ページの「アクセス」タブを選択肢を選択し「スクリプト」から「実行」に変更し、OKを押して閉じます。
cgi-bin のハンドラマッピングの画面に戻りますと、CGI-exeが有効になっているのを確認し右側の「機能のアクセス許可の編集」をクリックします
「実行」にチェックを入れ OK を押して閉じます。
まだ終わりません。IIS のホームに戻り、「ISAPIおよびCGIの制限」をクリックします。(用語がわかりにくいです)
「追加」をクリックし、CGI の登録を行います。
画面では pmum.exe の登録を行っていますが、必要に応じて pmam.exe やご利用になる他の CGI も追加してください。
以上で、CGI を動作させる設定が完了しました。次に CGI がアクセスするファイルに対してのセキュリティ設定を行います。
CGI がアクセスするファイルは以下になります。基本的に CGI からのファイルアクセスは「インターネットゲストアカウント」として IIS インストール時に自動的にユーザー(アカウント)登録されます。
Web サーバ内の HTML や画像に対してもこのアカウントが利用されますが、CGI の場合は、ファイルへの変更や削除等を行いますのでデフォルトの設定ではアクセスが禁じられています。従ってインターネットゲストアカウントで各ファイルやフォルダへ変更等を行う設定が必要になります。
インターネットゲストアカウントは、管理ツール内のコンピュータの管理を開き、ローカルユーザーとグループの中で確認することが出来ます。
アカウント名はデフォルトで「IUSR_コンピュータの名前」で登録が行われます。
●account.dat(ファイル)や Spool等(フォルダ)へのセキュリティ設定方法適切なアクセス権が設定されていない場合は、CGI をブラウザから実行する際に「内部サーバエラー」が発生したり、メールの削除が出来なかったりします。その場合には再度アクセス権利を見直してください。
セキュリティの為の注意事項
account.dat はアカウント情報が記録されている大切なファイルです。account.dat を盗まれるとそのメールサーバの全てのアカウントのID とパスワードが盗まれることと等しいです。
PMAM/PMUM 共にアクセスする必要がある為、上記の例ではインターネットゲストアカウントからアクセス出来るように説明をしておりますが、アクセス方法に制限が加わりますが安全の為、IUSR_xxxx では無くドメインユーザーを作成し PMAM.EXE/PMUM.EXE と account.dat へのアクセスには下記のように認証を行ってください。
PMAM/PMUM にアクセスした時点でサーバへの認証が行われますのでより安全な運営を行うことが出来ます。
●CGI タイムアウト時間の延長設定(IIS 7.0)
CGI をご利用になる場合に、処理時間が長くタイムアウトになってしまう場合は下記の方法で CGI のタイムアウト時間を延長して下さい。
IIS マネージャを開き、IIS グループにある「CGI」を選択します。
「timeout」に CGI がタイムアウトするまでの時間を設定します。
注意事項
IIS 7.0 では HTTP経由で送信できるサイズが制限されています。
大きなファイルを添付する場合は、以下の箇所を変更してください。
システムフォルダ(OSがインストールされているフォルダ内にある system32 フォルダ)\inetsrv\config\applicationHost.config をメモ帳で開きます。
青色のDenyをAllowに変更し保存します。
次に CGI を置いたフォルダにある web.config をメモ帳で開きます。
HTTP経由でファイルを送信する場合若干ヘッダ等が付くため、想定サイズよりも若干多めに設定すると確実です。
上記のセクションが無い場合は、上の例を参考にして対応する場所に追記してください。