AN HTTPD ゲストブック/コメント集(1999年12月1日23:34)


ぴゅあ pure@GalaxyCorp.com 1999/12/14 21:31

>いしもりねこさん
 flyというものがどのように連動しているのか過去にありましたが忘れてしまいましたが。
 単独で画像ファイルを作るものでしたっけ?
 現在予定しているSSIカウンタからの画像カウンタへの改造もCGI処理のつもりですし、ま
ずσ(>_<)がflyを使うことはないのだと思いますが(と言いつつActivePerlとPHPの簡単な
動作テストはしてしまいましたが(汗)。PHPの仕事はどこに行ったんだろう。。。。)

 前置きの余談これくらいとして。。。。
 文章から読み取るとたぶん画像ファイルをオープンしてそれを標準出力に出すんですよね?
(となるとflyは単独で動くものなのかな?)
 どうも画像ファイルのオープンのときと標準出力のオープンのときと別々にバイナリモード
にしているように読み取れるのですが共にバイナリモードにしないといけないと思うので
すがどうでしょうか。
 取り敢えず解りそうな範囲で。。。。


中田昭雄 nakata@st.rim.or.jp 1999/12/14 21:26

いしもりねこさん、
flytest では "$flyprog -q -i $infile |" というパイプを使ってオープンしていますが、このパイプをバイナリモードにすることがうまくできないため、-o オプションを使って、
`$flyprog -q -i $infile -o $outfile`;
とかして、その $outfile をバイナリで読み込んでバイナリで出力としたと思います。
確認したのはだいぶ昔のことでちょっと違うかもしれませんが。。。

# fly は GIF を生成すると思うのですが Unisys の特許の問題はないのでしょうか。。?


いしもりねこ perushaneko@geocities.co.jp 1999/12/14 17:03

中田さんどうも&おさわがせ&ありがとうございました。
Windowsってシステムのカレントにファイルを作って、それを参照してるんですね。
結構単純ですね。
(レジストリに書き込まれているもそれはそれで困るのですが・・・・)

ところで、その後CGIを楽しんでいたところまたしても
疑問が湧いてきましたので、掲示板に書き込みしているところです。
先日、本をひっくり返してた所、
fly
なるものを見つけ、色々と楽しんでみました。
今回はこれについての質問です。
とりあえずコマンドライン周りでの動作はうまくいったので、
早速、添付のflytest.cgiを実行してみました。
ところが、うまく画像が表示されません。
シバラク打ちひしがれていたのですが、
http://p4room.mda.or.jp/fly/ja/FAQ.html
を見て、WinにはBinaryモードというファイルモードが
あることを思い出しました。 ^-^
さっそく
binmode( [FILEHANDLE] );
をよきところに書き込んで動かしてみましたが、
うまくいきません。T-T
binmode(STDOUT);
としましたが、やっぱりうまくいきません T^T

またシバラク打ちひしがれていましたが(笑い)
httpdのカレント直下にある
cgi-bin
をふらふらとdirしてみたところ、
HEX2BIN.EXE
ECHOB.EXE
というのをみつけました。
早速cgi-bin直下の*.batを見て
それらしいCGIを書いて実行して
試してみたのですが、
やはりうまくいflyは画像を生成して
くれないようです・・・


要約すると ^-^;
おそらくflytest.cgiを実行して画像を得るためには、
flyの出力結果をBinaryモードで書き込まなくてはないようなのですが、
どのようにしたら、ANHTTPD+CGIでは行えばいいのでしょうか?

どなたか教えて下さいませ。

flyは、ここのページからWin32のバイナリが取ってこれます。
http://p4room.mda.or.jp/fly/ja/


中田昭雄 nakata@st.rim.or.jp 1999/12/07 21:23

いしもりねこさん、
動かなくなって復旧した理由はわかりませんが、ネットワークの設定がらみのような気はします。
Foreverさんのケースも理由はわかっていませんが、ヘルパープロセスのチェックをはずすことで正常に動いたそうです。

「ホスト名」は、ホスト+ドメイン名です。ホスト名がDNSサーバやhostsファイルに登録されていない場合は、ホスト名はわからないので、IPアドレスと同じになります。
「アドレス」はIPアドレスです。

ダイヤルアップ接続だけの環境の場合、ダイヤルアップ後に AN HTTPD を立ち上げると接続時に割り当てられたIPアドレスとそれに対応する(DNSに登録されている)ホスト名が表示されるはずです。
ダイヤルアップ接続をしていない場合、IPアドレスは 127.0.0.1 で、さらに Windows ディレクトリに hosts ファイルがない場合、ホスト名も 127.0.0.1 となります。hostsファイルで 127.0.0.1 localhost が指定してあればホスト名は localhost になります。 hostsファイルで localhost の別名を指定することもできます。

LAN環境の場合、DNSサーバなどを使っていてホスト名/IPアドレスの対応がつけてある場合はそのIPアドレスに対応するホスト名が表示されます。 DNSなどを使っていなくて hostsファイルもなければホスト名のところはIPアドレスと同じになります。

ネットワークアダプタが複数ある場合、 AN HTTPD のステータスバーに表示されるのはそのうちのひとつだけですが、有効なIPアドレスまたはホスト名でアクセス可能です。
インタフェースとしてはダイヤルアップアダプタ、LANアダプタ、2枚目のLANアダプタなどです。
ついでにWinNTでは、ひとつのLANアダプタに複数のIPアドレスを割り当てることができます。


いしもりねこ perushaneko@geocities.co.jp 1999/12/07 15:06

どうも、いしもりねこです
あれから更にNN4.6を入れてみたところ、うまく動き出しました。
皆さんどおもお騒がせいたしました。
(でもなぜにNN4.6を入れただけで復旧したのか・・・・・)

後学のために、 ^-^;;;
AN HTTPDのステータスバーにでる、「ホスト名」と「アドレス」の
違いって何なんでしょうか?
あと、アドレスとHTTPサーバ名はどちらを指定しても
アクセスできる(時もある?)のですが、
いわゆるこれが、「ナマうち(アドレス)」と「ドメインネーム」に
相当するものなのでしょうか?

どなた様か教えて下されば幸いです。 m(_ _;)m


いしもりねこ perushaneko@geocities.co.jp 1999/12/06 22:29

Foreverさん
こちらでも、どうやら似たような状況がでています。

3つ、ローカルでCGIをデバッグできる環境を作っているのですが、
そのうちの一つ(一番よく使うヤツ・・・)が突如としてCGIが実行できなくなりました。
(ちなみにこちらはPerlで動作)
症状は、ANHTTPにアクセスして暫くするとCGIを実行できずにブラウザが
応答しなくなったハングアップするというものです。

AN HTTP はVer1.21です。

ANHTTPをよく観察すると、下の2本のステータスバーの上の方に
うまく動作しないマシンのANHTTPにはこれがでていないことに気がつきました。

早速、
ブラウザ(ネットスケープ3.x)をいれなおし
うまく動いているAN HTTPDを丸ごと持ってきて上書きしたり
うまく動いているAN HTTPDの設定を書き写したり
WinSockをVer1.xからVer2.2にあげてみたものの
一向に改善の気配がありません (大泣き)
(とりあえずホスト名とアドレスは表示されるようになりましたが・・・)

夜な夜なひそかな(?)楽しみのCGIが出来なくなりました(しくしく)
是非とも皆さんのお知恵をお貸しいただきたいです m(_ _)m


中田昭雄 nakata@st.rim.or.jp 1999/12/02 20:36

Forever さん、
まずはヘルパープロセスのチェックをはずしてからやってみてください。
また、その結果にかかわらず、そのCGIをメールで送ってください。確認してみます。


Forever edge@site-edge.com 1999/12/01 23:34

質問です。
バージョン1.22cを使って、CGIを実行しました。
はじめは、問題なかったのですが、
いろいろと、機能を追加していくうちに、エラー500とでました。
自分のソースのバグだと、思って、その前の状態に、戻しました。
その後は、まったく、HTTPDが動作してくれなくなりました。
(ずっと、接続中のアイコンになってます。)
再起動をかけると、なんとか、Helper.exeが終了していないとダイアログがでます。
それでも、強制終了して、また、やってみると、HTMLは、普通に読み込みますが、
やはり、CGIは、動いてくれません。
どっか、自分のほうのバグだと思いましたが、
ほかのパソコンで実行したところ、何の問題もなく、動作しました。
(これの、バージョンは、1.19f)
そこで、一度、1.22cをアンインストして、1.99fを使ってみました。
それでも、やはり、だめでした。
CGIにアクセスに行くと、ずっと、読み込んだままで、まったく、変化がありません。

これは、どうしたら、いいでしょう?
ちなみに、CGIはEXE形式のもので、フォームからの値をファイルに保存、表示するものです。
OSは、Win98.(動作したほうは、Win95です)

よろしくお願いします。