CGI(Perl)をApacheで使用するときの設定

Apacheの設定、つまりhttpd.confを変更しないと、標準ではCGIは使えません。
またhttpd.confの変更を反映させるには、Apacheの再起動が必要になります。

[参考記事]WindowsでCGI(Perl)を使う方法
[参考記事]EclipseでCGI(Perl)を使う方法

ApacheでCGIを使用するには、モジュールとしてCGIの機能をApacheに追加する必要があります。


モジュールを読み込む

LoadModule cgi_module modules/mod_cgi.so

mod_cgiモジュールがコメントアウトされておらず、有効になっていることを確認します。

拡張子cgiやplのファイルをCGIとして実行させる

AddHandler cgi-script .cgi .pl

またOptionsディレクティブにExecCGIを追加します。

<Directory "/">
  Options +ExecCGI
</Directory>

次のように

<Directory "/">
  Options ExecCGI
</Directory>

としてもよいのですが、『 + (プラス)』を付けると、『既存のOptionsの設定にExecCGIを追加する』という意味になります。
AddHandlerとOptionsを指定しなくてもScriptAliasで指定されたディレクトリ以下のファイルはCGIとして動作します。

ScriptAlias /cgi-bin/ /usr/local/apache2/cgi-bin/

ドメインのみやディレクトリまでのURLでアクセスされたときにindex.cgiを使用するように設定するには、DirectoryIndexにindex.cgiを追加します。

DirectoryIndex index.html index.cgi

これで〜.cgiや〜.plのファイルがCGIとして動作します。


CGIファイルの先頭にはperlまでのパスを指定する必要があります。

#!/usr/local/bin/perl

#!/usr/bin/perl

このパスはサーバによって異なりますが、Linuxでどちらのパスでも実行できるようにするにはシンボリックリンクを設定します。

ln -s /usr/bin/perl /usr/local/bin/perl

httpd.confの保存場所

Linux

/usr/local/apache2/conf/httpd.conf

Windows

C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf

LinuxでのApacheの再起動方法

/usr/local/apache2/bin/apachectl restart

httpd.confの指定が正しいかどうかはconfigtestでチェックできます。

/usr/local/apache2/bin/apachectl configtest

関連記事

スポンサーリンク

DATE_PART関数 日付要素を数値で求める

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る