Geek-Side

このエントリーをはてなブックマークに追加  

2004/08/15
Apache-2.0.54-r8

ApacheでのCGIの設定と設置

このページでは,自宅でサーバーを構築するうま味のひとつであるCGIの設定と設置について解説します。

CGIの設定

Gentoo Linux において、Apacheをインストールした直後には、/var/www/localhost/cgi-bin
がCGIの設置場所となっています。
これ以外に、CGIが動作するディレクトリを作成したい場合は、
/etc/apache2/conf/apache2.confを編集します。
例えば、/var/www/localhost/htdocs/cgiをCGIが動作するディレクトリに設定する
場合は下記の記述を追加します。
<Directory /var/www/localhost/htdocs/cgi>
Options +ExecCGI
</Directory>
Apacheを再起動すると、この設定が有効になります。
/etc/init.d/apache2 restart

CGIの設置

設置したファイルに対して実行権限を与えます。
以下の例では、hoge.cgiに実行権限を与えています。
$ chmod 755 hoge.cgi

実行権限を与えたCGIファイルをコンソール上で実行する事で、エラーの有無を確認する事が出来ます。
$ ./hoge.cgi

設置した hoge.cgiにブラウザからアクセスした時に、 Internal Server Error と表示され、
Apacheのエラーログ上で Premature end of script headers:hoge.cgi
と出力される場合は、改行コードの問題や、perlのパスの指定に誤りがある可能性が
あります。
設置したファイルの改行コードが CRLF(キャリッジリターン・ラインフィード) であった場合は、CGIは
正しく動きません。Windows上では改行コードは CRLFですが、Linux上では LF のみとなります。
改行コードをCRを除去したLFだけのファイルに変換し、設置しなおしてください。
CGIファイルの先頭行に記述のあるPerlのパスが違う場合も、同様の現象がおきます。
Perlコマンドのパスを調べます。
$ which perl
/usr/local/bin/perl

出力されたパスを、CGIの先頭に記述します。
上記の場合、CGIファイルの先頭に以下の記述を行ないます。
#!/usr/local/bin/perl
Index
Apacheのインストールと基本設定
ApacheでのCGIの設定と設置
Apacheでのバーチャルホストの設定
ApacheでのWEBDAVの設定
Basic認証の設定(ファイル認証)
Basic認証の設定(DB認証)
ApacheでのSSLの設定
SSIの設定と利用

このエントリーをはてなブックマークに追加   ツイート