|
はじめまして。にゃと申します。 @ふくし さん おそらく接続がKeep-aliveのままに なっているのではないかと思います。 Connection: close というヘッダを追加して試してみてください。 ローカルでCGIのテストをするときはLinuxでApacheを動かしていますが、 こちらではCGIを動かすと自動的にこのヘッダを付けてくれるようです。 あとskel.103M さんも指摘されてますがヘッダの部分は 改行コードを"\r\n"にしたほうが良いかもしれません。 ヘッダの部分だけ書くとこんな感じかな? print "Connection: close\r\nContent-type: text/html\r\n\r\n" |
|
skel.103Mさん、にゃさん、お返事ありがとうございました。 \r\n も、\n\r も、\r\n\r\n も、\n\r\n\r もダメでした。(;.;) ちなみに httpd.conf で KeepAlive Off にしています。 Telnet でたたいてみると(この発想がなぜかありませんでした ^^;)、 $ telnet localhost 80 Trying 127.0.0.1... Connected to tokumei.kibou.catv.ne.jp. Escape character is '^]'. GET http://localhost/cgi-bin/test.cgi HTTP/1.0 HTTP/1.1 200 OK Date: Fri, 18 Aug 2000 13:25:42 GMT Server: Apache/1.3.12 (Cygwin) Connection: close Content-Type: text/html <html>どうなんでしょうね</html> とここまで表示して端末の動きが固まってしまい、 Ctrl-Z を押すと、 Connection closed by foreign host. $ と出て終わります。 (ふつうの html を表示させるときは固まりません) また、上のように、Connection: close は Cygwin でも挿入されるようですねー。 (KeepAlive On にしてみても挿入されました) とまれ、どうもありがとうございます。 引き続き何かありましたらよろしくおねがいします。 ちなみに、勉強用に使っているのはオライリーの「ねずみの本」ですが、 これでは \n\n になっているんですが、\r\n が正式なんでしょうか? あるいは Cygwin だから Windows 改行にした方がいいということですか? これも合わせてよろしくおねがいします。 質問ばかりで申し訳ありませんが、ご無理のない範囲でどうぞよろしくお願いします。 |
|
> これからしばらくは書き込まないと思います。 と言いながら、早々に復帰してみたり。 Windows も cygwin も詳しくありませんが、スクリプトの最後に close(STDOUT); を入れるとどうなりますか? でもまぁ、どの方法で解決したとしても挙動が変なわけで、 > 肝心のApacheがどうしてもインストールできません。 > 具体的な現象でいうと、makeで「no rule for targat all. stop」 をなんとかするか、別の WWW サーバを入れるのが 正しい道のような気もします。 |
|
68userさん> お忙しいところ、お返事ありがとうございます。 close(STDOUT); を早速入れてみましたが、ダメでした。 うーむぅApache以外のhttpdかー、考えませんでした。 どんなもんがあるんでしょうね(自分でも調べますが) とまれ、どうもありがとうございましら。 |
|
@gongo さん 作成したプログラムをそのまま投げてデバッグしてもらおうと するのはやめましょう。回答者の負担が大きすぎます。 例えば、color.dat を書き換えるとか、10個のウィジェットを使う、 なんてのは Xt の理解とは関係ないはずです。問題が発生する 最小限のプログラムを作ってから質問して下さい。 また、最小限のプログラムを作る過程で、自力で解決してしまう ともあるはずです。例えば前の fscanf の件は、ファイル操作部分を 切り離して定数化しようとしていたなら、自力で原因を突き止められて いたかもしれません。 あと、web にプログラムを置く際、改行コードを 0x0D に直しておくとか、 文字コードを EUC にしておくなどの気遣いがあるといいですね。 本題ですが、WidgetChoice の中に DrawOnWidget(label1,client_data,NULL); と書いてみるといかがですか。当方の環境では、選択したウィジェットの 色が label1 に反映されていました。 |
|
@68user様 本当に面倒ばかりおかけして申し訳ございませんでした。 今まで状況をどうやって伝えたらよいのかわからず 全部お見せするという形をとってしまいましたが、 これからは良く考えます。 で、プログラムについてですが、結局、68user様のご返事を いただく前に自分で試した方法でなんとかなりました。 方法としてはWidgetChoice()内でChangeColor()をやった後に Color()をやって、あとは再描画したいウィジェットについて XtUnmapWidget()とXtMapWidget()を行いました。 これによって新しい色が有効になってExposeイベントが 発生し再描画できました。 68user様がご提案してくださった方法についても実行してみます。 とにかく本当に御忙しいところすみませんでした。 何卒これからも宜しくお願い致します。 |
|
Yuukiです。 ふくしさん > 肝心のApacheがどうしてもインストールできません。 > 具体的な現象でいうと、makeで「no rule for targat all. stop」 ここのバイナリを使うっていうのはどうですか? 一番楽だと思います。 http://www.apache.org/dist/binaries/win32/ http://www.apache.org/dist/binaries/win32/apache_1_3_12_win32.exe |
|
>Yuukiさん 情報ありがとうございます。 これも知っていて、インストールしてみたんですが、結局Cygwinとは共存できないんですよね? (Cygwin の / から始まるファイルシステムにDocumentRootを乗せてCygwinのPerlを実行することができない) 会社でFreeBSDのApacheを使っていて、もうだいぶUNIX用のCGIスクリプトを書いていて、 プログラム内のパス名とか全部UNIX風に書いてしまっているし、flockやsystemなどのUNIXコマンドも使っているので、 できればCygwinにApacheを入れたいんです。 あるいは、Windows用のApacheをCygwinで使う方法があるんでしょうか? 今は別のPCにLinuxを入れてハブでつないで作業してるんですけど、 やっぱりどうしてもノートに入れて出先でデバッグとかしたいので、 またmakeから再挑戦しています。 いずれにせよ、ありがとうございます。 |
|
はじめまして > 肝心のApacheがどうしてもインストールできません。 > 具体的な現象でいうと、makeで「no rule for targat all. stop」 この件ですが、試しにソース(1.3.12)を持ってきてコンパイルしてみました。 結果、多少の問題があるものの、以下手順でインストールまで出来ました。 ・./configure --prefix=/usr/local/apache ・以下のパッチを当てる ・make EXTRA_LIBS=-lcrypt ・make install INSTALL=install.exe ただ、「no rule for targat all. stop」ってエラーには遭遇しませんでした。 Makefileの作り方を間違えていませんか? >ふくしさん また、下のhello.cgiも動いているようです。(^^; ---- ▽パッチ ここから diff -ru old/apache_1.3.12/src/main/http_main.c new/apache_1.3.12/src/main/http_main.c --- old/apache_1.3.12/src/main/http_main.c Sat Feb 5 21:01:54 2000 +++ new/apache_1.3.12/src/main/http_main.c Sat Aug 19 07:29:30 2000 @@ -116,7 +116,7 @@ #endif #ifdef WIN32 #include "../os/win32/getopt.h" -#elif !defined(BEOS) && !defined(TPF) && !defined(NETWARE) && !defined(OS390) +#elif !defined(BEOS) && !defined(TPF) && !defined(NETWARE) && !defined(OS390) && !defined(__CYGWIN__) #include <netinet/tcp.h> #endif #ifdef HAVE_BSTRING_H diff -ru old/apache_1.3.12/src/support/logresolve.c new/apache_1.3.12/src/support/logresolve.c --- old/apache_1.3.12/src/support/logresolve.c Wed Jan 26 13:36:02 2000 +++ new/apache_1.3.12/src/support/logresolve.c Sat Aug 19 09:09:00 2000 @@ -101,7 +101,7 @@ * statistics - obvious */ -#ifndef h_errno +#if !defined(h_errno) && !defined(__CYGWIN__) extern int h_errno; /* some machines don't have this in their headers */ #endif ---- △ここまで |