ドキュメントルート以下の任意のディレクトリでCGIを実行する

Apache から CGI を実行する場合、 ScriptAlias ディレクティブを使って専用のディレクトリにスクリプトが記述されたファイルを設置する場合が多いですが、例えばユーザー用のディレクトリなどドキュメントルートの下にある任意のディレクトリで CGI を実行できるようにすることもできます。ここでは ドキュメントルート以下の任意のディレクトリで CGI を実行できるようにする手順について解説します。

(Last modified: )

指定のディレクトリにCGIの実行を許可する

指定したディレクトリで CGI を実行できるようにするには、ディレクトリに対して Options ディレクティブを使って ExecCGI を追加します。例えばドキュメントルートの下にある mydir ディレクトリで CGI を実行できるようにするには次のように記述します。

<Directory c:/pg/Apache24/htdocs/mydir>
  Options +ExecCGI
</Directory>

これでこのディレクトリで CGI で記述されたスクリプトの実行が可能となります。

※ Option ディレクティブについて詳しくは「Optionsディレクティブ:ディレクトリで使用可能な機能を設定する」を参照されてください。

指定の拡張子をCGIスクリプトとして扱う

次に .pl や .cgi の拡張子を CGI として実行するスクリプトが記述がされたファイルとして扱うように AddHandler ディレクティブを使って設定します。

<Directory c:/pg/Apache24/htdocs/mydir>
  Options +ExecCGI
  AddHandler cgi-script .cgi .pl
</Directory>

これで .cgi または .pl の拡張子のファイルは CGI で記述されたスクリプトのファイルと認識され、クライアントからこのファイルへのアクセスがあった場合はスクリプトを実行しその結果をクライアントへ返されるようになります。

httpd.conf ファイルを開き、任意の場所に上記を追加してください。

指定の拡張子をCGIスクリプトとして扱う(1)

httpd.conf ファイルの更新が終わりましたら Apache を再起動して新しい設定を反映させておいて下さい。これで指定のディレクトリで CGI を利用するための設定は完了です。

CGIが利用できるか確認する

Apache から CGI を利用できるように設定ができたかどうかを確認するために、簡単なスクリプトを作成して動作確認を行います。テキストエディタを開き次のように記述します。

#!C:/perl

print "Content-type: text/html;\n\n";
print "<html><body><p>Test CGI</p></body></html>\n";

上記のファイルを c:/pg/Apache/Apache24/htdocs/mydir ディレクトリに配置します。ファイル名は test.pl としました。(スクリプトファイルの 1 行目は Perl の実行ファイルがある場所です。ご自分の環境に合わせて変更して下さい)。

CGIが利用できるか確認する(1)

ブラウザを起動し http://localhost/mydir/test.pl へアクセスして下さい。次のように test.pl が実行されて結果がブラウザに表示されれば Apache から CGI を利用できるようになっています。

CGIが利用できるか確認する(2)

.htaccessを使って設定する

httpd.conf に設定するのではなく .htaccess ファイルを使って設定する場合には、次の設定を .htaccess ファイルに記述したあと、対象のディレクトリに .htaccess ファイルを設置してください。テキストエディタで次の内容を記載し、ファイル名として .htaccess という名前で保存してください。

Options +ExecCGI
AddHandler cgi-script .cgi .pl

.htaccessを使って設定する(1)

次に該当のディレクトリで Options ディレクティブの設定を変更できるように httpd.conf ファイルで次の設定を記述してください。

<Directory c:/pg/Apache24/htdocs/mydir>
  AllowOverride Options FileInfo
</Directory>

.htaccessを使って設定する(2)

ブラウザを起動し http://localhost/mydir/test.pl へアクセスして下さい。次のように test.pl が実行されて結果がブラウザに表示されれば Apache から CGI を利用できるようになっています。

.htaccessを使って設定する(3)

-- --

ドキュメントルート以下の任意のディレクトリで CGI を実行できるようにする手順について解説しました。

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。