こんばんは。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>"
---ここまで
なにかおかしな点がございましたらご指摘をお願い致します。
No.1ベストアンサー
- 回答日時:
特に知識はないのですが、質問だけさせてください。
cygwin上のgccでコンパイルして、cygwin上で動かすと動くことを確認した、と読みました。
すると、もしコマンドプロンプト(cmd.exe)から動かしたら動くのでしょうか?
gccのオプションを変える、もしくは、cygwinのsetup.exeでインストールするgccの種類を変更するなどして
クロスコンパイル的なことをしないと動かないんじゃないか、ということを考えました。
mingwとか何とか、そんなのを探すと何か進むんじゃないかと思いました
http://www.geocities.jp/turtle_wide/tools/gccwin …
seta_takahiroさんご回答ありがとうございます。
申し訳ないのですが、質問の後も調べておりまして、
先ほど解決してしまいました。
原因はCygwinのgccでコンパイルしたのがいけなかったです。
実はCygwinではいけないのかな?と思って、
VisualC++でもコンパイルしていたのですが、
Debugモードでコンパイルしていたのがいけなかったようです。
Releaseモードでコンパイルしたら問題なく動きました。
あと、seta_takahiroさんにご指摘された
コマンドプロンプトからcygwinで作成したcgiを実行すると、
「cygwin1.dllが見つからなかったため。・・・」と言うエラーが出ました。
Windowsで使用するにはWindows用にコンパイルしないといけなかったんですね。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- CGI CGIで出力するhtmlの<!DOCTYPE html>等のタグは要りますか? 2 2023/02/05 21:26
- CGI htmlからcgiを自動的に起動させたい 1 2023/02/21 19:39
- CGI CGIが読み書きするデータファイルのパーミッションはさくらのインターネットでは何にするべき? 1 2023/05/02 16:44
- CGI (フリーの)ツリー掲示版CGI、昔は多用させてもらいましたが・・今セキュリティ上どうでしょう? 2 2023/06/25 07:18
- ホームページ作成・プログラミング CGIが実行可能なHP領域又はレンタルサーバーでおすすめの所を教えてください 現在ホームページ領域の 1 2023/01/01 11:47
- CGI 古ーくからフリーのtree.cgi掲示板を利用させてもらって来ましたが、最新でなにか復活できないか? 2 2023/04/07 10:43
- Perl Perlのエラーについてご教授ください。初心者です。 CGIを別サーバに移したところ、Perlのバー 5 2023/05/31 10:48
- CGI 「CGIにより定義されていない」とは・・・ ? 3 2023/01/01 12:00
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
apacheでPerl CGIが作動せず、5...
-
フォームを再送信しますか?
-
/bin/awk '{print $5}'ってどう...
-
エクセルで集計したい。
-
htmlからパラメータで、cgiに渡...
-
.htaccessについて
-
CGIで出力するhtmlの<!DOCTYPE ...
-
CGIがサーバーに与える負荷の程...
-
サイト訪問者の情報を取得したい
-
入力フォーム(電話番号)
-
アクセスカウンター(counter.cg...
-
CGIメールフォームの件名について
-
3DCG
-
ホームページにメールフォーム...
-
cgi アクセス制限 エラー
-
CGIの記述について教えてくださ...
-
CGIの設置が分かりません・・・
-
ホームページにCGIを設置したの...
-
ホームページにCGIを設置したの...
-
サーバーのエラーでおしえてく...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Apache2.2でPerlを呼び出すSSI...
-
ファイル間の変数引き継ぎ方法...
-
cgiファイルを実行すると、「開...
-
EXCELファイルに誰がアクセスし...
-
《エクセルVBA》「他の人が該当...
-
URLに~/cgi-bin/~を隠す方法
-
VBAでサーバーにアクセスするに...
-
ラジオボタンのグループ化
-
ASPから既存のexcelブックを開...
-
VBScriptで、ファイルから任意...
-
CGIでソースがそのままでてしま...
-
FTPにて553エラー
-
VBAを使用して、外部サーバのフ...
-
perl 矢印演算子 -> の使い方
-
SFTPなどは使わないホームペー...
-
XサーバーでCGIを使うには??
-
ホームページ上でvlookup関数の...
-
CGIが読み書きするデータファイ...
-
特定のCGIだけ、作動するかわり...
-
cgi アクセス制限 エラー
おすすめ情報