CGI サポートの有効化

埋め込み HTML を使用するアプリケーションを生成するには、CGI サポートを有効にする必要があります。

埋め込み HTML を使用するには、次のものを準備する必要があります。

プロジェクト仕様

  • コンソール アプリケーションの出力タイプまたはテンプレートを使用して、ネイティブ COBOL プロジェクトである Visual Studio プロジェクトを用意する必要があります。
  • プロジェクトのプロパティで、[COBOL Link Settings] タブの [Run-time Model] を [Dynamic] に設定します。

サーバー仕様

Apache サーバー:

サーバーを次のように構成する必要があります。この例は Apache 2.4 のものです。

  • mod_cgi を有効にします。
    LoadModule cgi_module modules/mod_cgi.so
  • mod_env を有効にします。
    LoadModule env_module modules/mod_env.so
  • /cgi-bin スクリプト エイリアスを指定します。次に例を示します。
    <IfModule alias_module>
     ScriptAlias /cgi-bin/ "${SRVROOT}/cgi-bin/"
    </IfModule>
  • cgi 実行可能ファイルを含むディレクトリに対して ExecCGI を有効にします。次に例を示します。
    <Directory "${SRVROOT}/cgi-bin">
        AllowOverride None
        Options None
        Require all granted
    </Directory>
  • Micro Focus ライセンス仕様
    最新の Enterprise Developer に付属の COBOL ランタイム システムよりも前のバージョンを使用している場合は、ces.ini ファイルをポイントするように MFCES_INIT_LOCATION 環境変数を設定する必要があります。次に例を示します。
    SetEnv MFCES_INIT_LOCATION "c:\programdata\micro focus\ces.ini"

IIS サーバー:

次の手順では、Internet Information Services Manager (IIS) 10.0 および Windows 10 を使用しています。

IIS のデフォルトの場所である C:\inetpub\wwwroot\cgi-bin にディプロイできます。または、プロジェクトでサイトのディレクトリ構造を作成するように構成し、その場所を使用するように IIS サーバーを構成することもできます。「埋め込み HTML を使用した CGI アプリケーションのディプロイ」およびサンプル ブラウザーで利用可能な CGI のサンプルを参照してください。

制限がない CGI アプリケーションは、システムにとってセキュリティ上のリスクとなります。そのため、CGI プログラムを実行できるように IIS を構成する必要があります。IIS は特別なユーザー名 IUSR で実行され、このユーザーにサイトのディレクトリ構造に対する権限を付与する必要があります。

IIS は Windows システムで有効にする必要があります。手順については、Microsoft のドキュメントを参照してください。次のように、CGI サポートを手動で有効にする必要があります。

  1. コントロール パネルを開き、[Programs] を選択します。
  2. [Turn Windows features on or off] をクリックします。
  3. [World Wide Web Services > Application Development Features > CGI] を有効にします。

デフォルトのインストール場所以外の実行可能ファイルを使用するように IIS を構成するには、次の手順を実行します。

  1. IIS を起動します。
  2. [Connections] ペインで、マシン名のノードを展開します。
  3. [Sites] を右クリックして [Add Website] をクリックします。
  4. [Site name] を指定します。
  5. [Physical path] ボックスに、Visual Studio ソリューションで作成された site ディレクトリのフル パス (pathtosolution\site) を入力します。
  6. デフォルトのサイトとの競合を避けるために [Port] を変更することをお勧めします (たとえば 81 に変更します)。デフォルトのサイトが稼働していなければ、ポート番号 80 を使用して問題ありません。
  7. [OK] をクリックします。

さらに、サイトのディレクトリ構造で CGI プログラムを実行できるように、IIS のいくつかのセキュリティ機能を構成する必要があります。

  1. IIS の [Connections] で、最上位のマシン名のノードをクリックし、[ISAPI and CGI Restrictions] をダブルクリックします。
  2. [Actions] ペインの [Add] をクリックします。
  3. [ISAPI or CGI path] テキスト ボックスで、プロジェクトの実行可能ファイルのフル パス名およびファイル名を指定します (例:pathtosolution\site\cgi-bin\app.exe)。
  4. [Allow extension path to execute] をオンにし、[OK] をクリックします。
  5. [Sites] を展開し、追加した Web サイトを右クリックして [Edit Permissions] をクリックします。
  6. [Security] タブを選択します。
  7. [Edit] をクリックし、[Add] をクリックします。
  8. [Locations] をクリックしてマシン名を選択し、[OK] をクリックします。
  9. テキスト ボックスに「IUSR」と入力し、[OK] をクリックします。

    IUSR が [Security] ペインに表示され、[Read and & execute]、[List folder contents]、および [Read] の権限が有効になります。

  10. 各ダイアログで [OK] をクリックして一連のダイアログを閉じます。
  11. これらの変更をすべて適用するために、[Actions] ペインの [Restart] をクリックしてマシン ノードを再起動します。

    これで、Visual Studio ソリューションから CGI アプリケーションをデバッグできるようになります。

また、サイトの IIS web.config ファイルを有効にする必要があります。このファイルは、ディレクトリの Web サーバーに許可されるアクションを制御します。

  1. 管理者権限でコマンド プロンプトを起動します。
  2. 次のコマンドを実行します。
    %windir%\system32\inetsrv\appcmd.exe unlock config /section:system.webServer/handlers

    次のメッセージが表示されます。Unlocked section "system.webServer/handlers" at configuration path "MACHINE/WEBROOT/APPHOST"