C言語で作成したCGIにて「Internal Server Error」
こんばんは。CGIについて質問させて下さい。
現象:
C言語でCGIを作成し、ローカルで動作しているApacheで
動作確認をしようとしたところ、
「Internal Server Error」が出てしまいました。
質問:
上記の現象が起こったのですが、C言語でCGIを実行するには
なにが足りないでしょうか?
環境:
OS:WindowsXP
Webサーバ:Apache 2.0.61
Cコンパイラ:gcc 3.4.4(cygwin)
状態:
○「http://localhost:8080/」にアクセスすると「あなたの予想に反して・・・」画面は見れます。
○「http://localhost:8080/cgi-bin/test.cgi」にアクセスすると、「Internal Server Error」が表示されます。
○httpd.confの設定値(デフォルトから修正した部分)
・ServerName 127.0.0.1:8080
・<Directory "C:/Program Files/Apache Group/Apache2/cgi-bin">内
Options none → Options ExecCGI
・#AddHandler cgi-script .cgi → AddHandler cgi-script .cgi
○Apacheのerror.log
~[error] [client 127.0.0.1] Premature end of script headers: test.cgi
○test.cgiのコンパイル前ソース
---ここから
#include <stdio.h>
int main(void){
printf("Content-Type: text/html\n\n");
printf("<html><body>Hello, World!</body></html>");
return 0;
}
---ここまで
○test.cgiはcygwinにて標準出力を確認済み。
・・・ちなみにperlでCGIを作成すると表示されます。
(ActivePerlインストール済み)
perl側のソース
---ここから
#! c:/perl/bin/perl
print "Content-Type: text/html\n\n";
print "<html><body>";
print "Hello, CGI!";
print "</body></html>"
---ここまで
なにかおかしな点がございましたらご指摘をお願い致します。
お礼
お返事非常に遅くなってしまい、申し訳ありません。 しばらく、パソコンから遠ざかっていました。 CGIは、ややこしい。 結局、初歩的なミスなんですが、 スクリプトによっては、cgi-binに入れなくても動く ものや動かないものがあったのです。 これにはまいりました。 無精者ですが、これからもよろしくお願いします。