AN HTTPD ゲストブック/コメント集(2004年11月22日18:42)


IKU iku7241@aol.com 2004/11/27 12:54

中田さん

わかりました、ありがとうございます。
また何かありましたら、その時はどうぞよろしくお願い致します。


中田昭雄 nakata@st.rim.or.jp 2004/11/25 21:07

IKU さん、
(1)Windows での運用に限れば特にメリットはないと思ってもらってもよいでしょう。
.exe で実行できるのは Windows の場合だけです。また、.exe で「一般パスでも実行」にするのはセキュリティ上の危険度が増すといえるかもしれません。

(2)可能です。そのためのオプションが「EXE形式の実行」です。Perlスクリプトか Windowsの実行形式かを自動判定して実行します。


IKU iku7241@aol.com 2004/11/25 17:11

中田さん、ご回答ありがとうございます。

おっしゃるとおり、オプションの設定にミスがありました。今は、.exeでも.cgiでも表示できるようになりました。http://homepage1.nifty.com/yito/anhttpd/options.htmlをよく読むと分かりました。ところで、あと2点ほど質問があります。

(1)拡張子をわざわざ .exe から.cgiに変えるメリットは何なのでしょうか?

(2)例えば、test0.html→test1.cgi→test2.cgi→test3.cgiといった流れのシステムを
   構築した場合、部分的に(例えば、test2.cgiだけを)C言語で記述するということは
   可能でしょうか?(test1.cgiおよびtest3.cgiはPerlで記述する。)

以上、よろしくお願い致します。


中田昭雄 nakata@st.rim.or.jp 2004/11/24 21:14

IKU さん、
「拡張子を変えるとファイルを使えなくなります。」というのは Windows が(親切心から)出しているメッセージなので無視してかまいません。

ダウンロードになるのは設定の問題でしょう。
チェックを入れたところだけでなく、CGI関係の設定で、今どこにチェックが入っているのかを一通り説明してくれないと、ちょっとわかりません。


IKU iku7241@aol.com 2004/11/24 14:39

中田さん、ご回答ありがとうございます。

すみません、この前のはパス間違いでした。ですが、URL(http://127.0.0.1/test.exe)あるいはURL(http://127.0.0.1/test.cgi)を指定しても「ファイルのダウンロード」というメッセージがでてきて、ブラウザには何も表示されません。
ちなみにオプションは、

(1)拡張子を .cgi にした場合
拡張子 .pl,.cgi の「EX」にチェック。

(2)拡張子を .exe のままにした場合
拡張子 .exe の「般」にチェック。

としています。
ところで、コンパイルしたファイル(.exe)の拡張子を.cgiにするとは具体的にどうすればいいのですか?単純に名前を変えるだけでいいのですか?そうすると、「拡張子を変えるとファイルを使えなくなります。」みたいなメッセージがでてくるのですが。


中田昭雄 nakata@st.rim.or.jp 2004/11/23 20:25

IKUさん、
「ページが見つかりません」というのは 404エラーのことですよね?
URLパスの /test.cgi が存在しないということぐらいしか思いつきません。
パスが間違っているか、拡張子が間違っているかではないかと思います。

test.exe を test.cgi にして /test.cgi でアクセスできるところに置いていますか?


IKU iku7241@aol.com 2004/11/23 15:56

中田さん、早速のご回答ありがとうございます。

はい。これまではPerlを使ってCGIの作成を行っていたのですが、処理速度の問題から
今回C言語を使ってやってみました。PerlでやっていたときはHTMLの表示は普通に
できていました。


中田昭雄 nakata@st.rim.or.jp 2004/11/23 07:26

IKU さん、
普通の HTML の表示はできているのでしょうか?
また、PerlのCGIは使ったことはありますか?


IKU iku7241@aol.com 2004/11/22 18:42

はじめまして、IKUと申します。

今回、C言語を使ってCGIの作成を試みましたが、ブラウザからCGIの実行を確認しようとURL(http://127.0.0.1/test.cgi)を指定すると、「ページが見つかりません」という
エラーメッセージが出てしまいます。

過去ログには、ソースファイル(test.c)をコンパイルして作成したファイルの拡張子を.cgiにするとありましたが、「コンパイルして作成したファイル」というのは、
例えば、test.cを「ソリューションのビルド」→「デバッグなしで開始」とした時に「Debug」フォルダ内にできるtest.exeのことを指しているでしょうか?(コンパイルはmicrosoft.netで行いました。)

ちなみにtest.cは、

#include <stdio.h>
void main(void)
{
printf("Content-type: text/html\n\n");
printf("CGItest\n");
}

です。超初心者なのでとんちんかんなことを聞いてるかもしれませんが、どうぞよろしくお願いします。