68user's page 掲示板

Prev< No. 1081〜1089> Next  [最新発言に戻る] [過去ログ一覧]
No. 1081 # にゃ 2000/08/17 (木) 00:55:35
はじめまして。にゃと申します。

@ふくし さん
おそらく接続がKeep-aliveのままに
なっているのではないかと思います。
Connection: close
というヘッダを追加して試してみてください。
ローカルでCGIのテストをするときはLinuxでApacheを動かしていますが、
こちらではCGIを動かすと自動的にこのヘッダを付けてくれるようです。
あとskel.103M さんも指摘されてますがヘッダの部分は
改行コードを"\r\n"にしたほうが良いかもしれません。
ヘッダの部分だけ書くとこんな感じかな?
print "Connection: close\r\nContent-type: text/html\r\n\r\n"

No. 1082 # ふくし [E-mail] 2000/08/18 (金) 22:37:20
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 改行にした方がいいということですか?
これも合わせてよろしくおねがいします。

質問ばかりで申し訳ありませんが、ご無理のない範囲でどうぞよろしくお願いします。

No. 1083 # 68user 2000/08/18 (金) 22:57:32
> これからしばらくは書き込まないと思います。
と言いながら、早々に復帰してみたり。

Windows も cygwin も詳しくありませんが、スクリプトの最後に
    close(STDOUT);
を入れるとどうなりますか?

でもまぁ、どの方法で解決したとしても挙動が変なわけで、
> 肝心のApacheがどうしてもインストールできません。
> 具体的な現象でいうと、makeで「no rule for targat all. stop」
をなんとかするか、別の WWW サーバを入れるのが
正しい道のような気もします。

No. 1084 # ふくし [E-mail] 2000/08/19 (土) 00:02:31
68userさん>
お忙しいところ、お返事ありがとうございます。
close(STDOUT); を早速入れてみましたが、ダメでした。

うーむぅApache以外のhttpdかー、考えませんでした。
どんなもんがあるんでしょうね(自分でも調べますが)

とまれ、どうもありがとうございましら。

No. 1085 # 68user 2000/08/19 (土) 00:13:29
@gongo さん
作成したプログラムをそのまま投げてデバッグしてもらおうと
するのはやめましょう。回答者の負担が大きすぎます。

例えば、color.dat を書き換えるとか、10個のウィジェットを使う、
なんてのは Xt の理解とは関係ないはずです。問題が発生する
最小限のプログラムを作ってから質問して下さい。

また、最小限のプログラムを作る過程で、自力で解決してしまう
ともあるはずです。例えば前の fscanf の件は、ファイル操作部分を
切り離して定数化しようとしていたなら、自力で原因を突き止められて
いたかもしれません。

あと、web にプログラムを置く際、改行コードを 0x0D に直しておくとか、
文字コードを EUC にしておくなどの気遣いがあるといいですね。

本題ですが、WidgetChoice の中に
    DrawOnWidget(label1,client_data,NULL);
と書いてみるといかがですか。当方の環境では、選択したウィジェットの
色が label1 に反映されていました。

No. 1086 # gongo [E-mail] 2000/08/19 (土) 01:33:10
@68user様
本当に面倒ばかりおかけして申し訳ございませんでした。
今まで状況をどうやって伝えたらよいのかわからず
全部お見せするという形をとってしまいましたが、
これからは良く考えます。

で、プログラムについてですが、結局、68user様のご返事を
いただく前に自分で試した方法でなんとかなりました。

方法としてはWidgetChoice()内でChangeColor()をやった後に
Color()をやって、あとは再描画したいウィジェットについて
XtUnmapWidget()とXtMapWidget()を行いました。
これによって新しい色が有効になってExposeイベントが
発生し再描画できました。

68user様がご提案してくださった方法についても実行してみます。

とにかく本当に御忙しいところすみませんでした。
何卒これからも宜しくお願い致します。

No. 1087 # Yuuki [E-mail] 2000/08/19 (土) 02:44:05
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

No. 1088 # ふくし [E-mail] 2000/08/19 (土) 05:57:25
>Yuukiさん
情報ありがとうございます。
これも知っていて、インストールしてみたんですが、結局Cygwinとは共存できないんですよね?
(Cygwin の / から始まるファイルシステムにDocumentRootを乗せてCygwinのPerlを実行することができない)

会社でFreeBSDのApacheを使っていて、もうだいぶUNIX用のCGIスクリプトを書いていて、
プログラム内のパス名とか全部UNIX風に書いてしまっているし、flockやsystemなどのUNIXコマンドも使っているので、
できればCygwinにApacheを入れたいんです。
あるいは、Windows用のApacheをCygwinで使う方法があるんでしょうか?

今は別のPCにLinuxを入れてハブでつないで作業してるんですけど、
やっぱりどうしてもノートに入れて出先でデバッグとかしたいので、
またmakeから再挑戦しています。

いずれにせよ、ありがとうございます。

No. 1089 # T.T. 2000/08/19 (土) 10:34:07
はじめまして

> 肝心の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
  
---- △ここまで

Prev< No. 1081〜1089> Next  [最新発言に戻る] [過去ログ一覧]