うさこさん、
fly は、サンプルが UNIX用のようです。
コメント集その13に下のようにお答えした例がありますので参考にしてください。
なお下の書き込みの前後も fly で検索していただくとよいかもしれません。
>中田昭雄 nakata@st.rim.or.jp 1998/06/06 07:29
>
>mstk さん、
>DOS/Windowsではファイル入出力にバイナリ/テキストモードがあり、デフォルトはテキストモードです。
>Windows上ではパイプ出力をバイナリモードにすることができないようなので、
>
>open(FOO,"$flyprog -q -i $infile |");
>
>以下を、面倒ですが、
>
>`$flyprog -q -i $infile -o $outfile`;
>open(FOO, "$outfile");
>binmode(FOO);
>binmode(STDOUT);
>read(FOO, $output, 4096);
>print "$output";
>
>とかするとうまくいくようです。
>なお、binmode は UNIX上では何もしないはずです。
お久しぶりです。
先日、アクセスカウンタを設置してみようと思い、
web裏技さんのアクセスカウンタを使わしていただこうと思いました。
そこで、flyを手に入れるべく、
http://www.unimelb.edu.au/fly/fly.html
の、
WindowsNT & Windows95 (x86):
ftp://www.unimelb.edu.au/pub/www/tools/unix/fly/fly-1.6.0.WinNT.zip (62k ZIP file)
ftp://www.unimelb.edu.au/pub/www/tools/unix/fly/fly-1.6.0.exe (134k executable)
上のほうからflyをダウンロードし、設置してみました。
しかし、テストしてみても、flyが上手く動作していないみたいなのです。
windowsでflyを動かすときの、手順や、注意すべき点などありましたら、
どなたか教えていただけませんか?
長くなってすいませんでした。よろしくお願いします。
じゅんさん、
すみません、今度は proxy.dll を入れ替えるのを忘れました。
ダウンロードのところで proxy111.zip または proxy111.exe をダウンロードしてください。
なお、この時間以降、httpd111.zip なども proxy.dll を入れ替えたものになっています。
ZEROさん、
100%については、それではもう少しですね。
EXE形式のPerlの話は、PerlスクリプトをコンパイルしてEXE形式にしたものを拡張子 .cgi で動かす場合の話でしょうか?
こんにちわ.
PC-9821(P100MHz、80MB,800MB,Win95)のマシンでANHTTPDでサーバを作らせていただいています.
#C++でCGIかいてます.
今日ver1.11を落としたのですが、起動しようとしたら、
proxy.dllのバージョンが古いですって言われます.
今吾h1.10に戻しています.
どうすればよいのでしょうか?
どっかから手に入るのでしょうか???
よろしくお願いします.
>TAKUさん
アドバイスありがとうございます。インストール先を確認してみました。僕の使っているPCは、98ではないのでCドライブがHDDとなるようです。解凍したあと、DOS画面がでてきますが、そこでもドライブの指定をしなければならないのでしょうか? 最初のY/nの選択では、もちろんYを入力します。すると、FDにアクセスし始めるんです。そしてアクセスエラーとなります。僕以外のPCではちゃんとインストールされるのですが・・・
僕のPCはメーカーがコンパック(PRESARIO 4540、WIN98)です。ほかのちゃんとインストールされるパソコンは、IBM(Aptiva、WIN95)、FUJITSU(FMV DESKPOWER、WIN98)です。僕のPCと違う点といえば、CPUが違うことしかわかりませんでした。
でももしかしたら、まだなにか手違いみたいなことがあるのかもしれません。いろいろ試してみたいと思います。
TAKUさん、本当にありがとうございます。
どうも、お久しぶりですZEROです。
最近サーバメンテナンスが忙がしくて報告も出来ないですみません。
NTのCPU100%の件ですが、1.0バージョンよりはおかしくなるのがかなりましになりました。
又、perlのビルドをあげてもなりますね。
1.0の時は1日に1回は大体なっていて、マウスも動かせない状態であったのですが、
1.10バージョンは100%になっても遅いながらマウスで終わらす事ができて、
ANHTTPDの再起動が出来ます。なる頻度は1週間に2回程度ですね。
今の状態であればまだ対応が出来ますのでとりあえずは落ち着きました。
すみません、皆さんにお伺いしたいのですが、EXE形式のperlはどのようにして動かせばいんでしょうか?
AnhttpdでexeのCGIを実行するをチェック入れてもIE4からはダウンロード始まるんです。
どのようにすれば動かす事出来るのでしょうか?
ながながとすみませんでは
>林拓美さん
たぶん、ISAPIを使われているんですよね。
Perl.exeの方を使うようにすれば(ISAPIを使用するチェックを外す)使えた筈です。
確認してみてください。
kanさん。こんばんは。
私も一ユーザなのですが、kanさんの投稿が目にとまったので。
インストール時にFDを読みに行ってしまうという事は、インストールするフォルダの設定
が 間違っているという事ではないでしょうか?
PC98を使っていますか?PC98ですとFDはCドライブですから、DOS/Vで通常インストール
に指定されるWindowsがあるCドライブにインストールしようとしていたら、Aドライブ
等 インストールしたい場所を指定し直さなければいけませんよね。
私もPC98を使っていますが、このせいでうっかり何度もCドラにインストールさせてしまった
事があります。もっともHDDを増設していますので、Cドラは増設HDDなんですけどね。
PC98ではないにしても、'yes'を選択する前に インストール先を確認して見てください。
こんばんは。
Win95,AnHTTPd,Perl for Win32の環境で、ローカルでCGIのチェックをしています。
それまでは、オンラインでtelnetからの動作確認など大変だったので、今の環境はとてもありがたいです。
しかし、DBMが使えないらしく、それだけが残念に思っています。
もちろん、以前のように、オンラインで、プロバイダのサーバに接続すればできるのですが、できればオフラインにてdbmopen等を使用したスクリプトを動作確認をしてみたいと思っています。
どなたか、DBMを使うための情報をお持ちでしたら、是非教えていただきたいです。
それでは失礼します。
(こんな投稿も良かったでしょうか?)
はじめまして。
httpd、DLさせていただきました。ありがとうございます。
質問があるのですが、httpdをいれたあとCGIが使えるようにPerlをいれようとしたのですが、うまくインストールされません。解凍したあと、DOS画面がでてきてyを入力するのですが、なぜかFDにアクセスされて読み込みエラーが発生します。
ほかのPCで試すとうまくインストールされます。友達からは、CPUとかそういうハード関係があってないんじゃないの と言われたのですが、そうなのでしょうか?
理解されてる範囲でかまいませんので、教えていただけるとうれしいです。
よろしくお願いします。
takuya さん、
バーチャルホスト(ドメイン)は1月末くらいが目標だったのですが、1週間先になりそうです。
ota さん、
CGIのテストはもちろん可能です。
ご自分のPCのホスト名(IPアドレス)かlocalhost(127.0.0.1)で そのPC上の HTTPD にアクセスできます。
ついでに、LAN内の他のPCからもアクセス(およびCGIテスト)が可能になります。
吉田さん、
次のバージョンに乞うご期待ということで。
本当はキャッシュ削除はもうちょっと考えたいところですが、とりあえず不具合が起きないようにしてみます。
その後さらに改良していこうと思っています。
>バーチャルホスト対応で、受けるIPアドレスを指定できるようになれば可能です。
>バーチャルホストはこの1、2週間の間に対応させようと考えています。
そうなんですか、、。
バーチャルホストと言われてもちんぷんかんぷんですが、
ありがたい限りです。
よろしくお願いします。
楽しみにお待ちしています。
CGIについてお尋ねします。
会社の自分のPC(サーバではない)は会社のLAN端末として使っています。
そこから、メールを出したりインターネット接続が可能です。
こんな環境ですが、私のPCにan http serverを入れてCGIのテストが可能でしょう?
(LAN端末にはそれそれIPアドレスが決まっています。)
以上宜しくお願い致します。
中田さん、その他のみなさんこんにちは。
キャッシュの件、あれから古いキャッシュは消さないにしておくと、予想通り
元気に動いています。前回の投稿からだから2日ほど元気です。
やはり、キャッシュの自動削除あたりに何か問題があるようですね。
調査のほうてこずっておられるようですが,何か調査すべきことがあったら
連絡ください。極力協力したいと思います。
中田さん>
なんか、ちょっと変なこと書いてましたね。
≫AN HTTPD では Win95/98 の場合、 CGI/SSI の出力は 標準出力+標準エラー出力です。
標準エラー出力も拾わないと、エラーやdieの時のメッセージが拾えないし……。(^^;;
中田 様へ
ありがとうございます・・・m(^o^)y
編集パスワードの設定に問題がありました・・・
無事・回復いたしました・・
From puff...( 歓喜・涙 ;; )
かすいさん、ぴゅあさん、
参考のため。
AN HTTPD では Win95/98 の場合、 CGI/SSI の出力は 標準出力+標準エラー出力です。
あき.さん、
それなら大丈夫そうですね。
念のために書いておくと、
「3つまでを一緒に」というのは、サブネットマスクが 255.255.255.0 の場合の話ですが、IPアドレスから言えばたぶんそうしているのでしょう。
その場合、ルータのこちら側は「3つまでは同じ」にしないといけません。この3つまでをネットワークアドレスといいます。
そしてルータのこちら側のインタフェースのIPアドレスをゲートウェイアドレスとして指定します。
ルータの向こうとこちらでやりとりするためですから、向こう側もネットワークアドレスはこちらとは違うでしょうが同様の設定をする必要があります。
puff さんのは、メールでお答えしましたが、編集パスワードがセットされてしまっているのだと思います。パスワードが空の場合の対処法もあわせてメールしました。
葭森さん、
かすいさんとぴゅあさんが言われているとおりDOS窓でというのが正解です。
補足すると、
perl というのはもともとコマンドラインで動かすものです。
UNIXマシンに(telnetなどで)ログインした場合、いろいろコマンドを打ち込んで操作します。
そういうコマンドのひとつが perl で、
unix% perl easy.cgi
などとすると、easy.cgi という Perlスクリプトが動作します。
Windowsでは MS-DOSプロンプト(コマンドプロンプト、いわゆるDOS窓)上で perl.exe を動かします。
たとえば、
C:\www\cgi-bin> perl easy.cgi
などとします。
実際には CGIを動かす時は環境変数の設定などが必要なので、そのあたりを準備しないと予期した通りの出力はでませんが。
そして perl は -c, -w などのオプションをつけることができます。
UNIXでは、
unix% perl -cw easy.cgi
ですが、Windows の DOS窓では、
C:\www\cgi-bin> perl -cw easy.cgi
とすれば、かすいさんの言われる通り、easy.cgi の文法チェックと警告出力が出ます。
他のオプションを調べるには、perl -h とすると一覧が出ますのでみてください。
たとえば、perl -v とすると perl のバージョンが表示されます。
これらのオプションは UNIX上の perl でも、Windows上の perl でも同じです。
AN HTTPD は、 CGI/SSI を動かす時には、MS-DOSプロンプトを起動し perl easy.cgi と打ち込むのとほぼ同じ動作をするようにしています。
坪本さん、
やっぱりまだわかりません。 WinNT4.0+SP4, IE でバッチファイルの中身が表示されるようにできないでいます。
何かわかったらご連絡いたします。
ぴゅあさん>
補足どうもです……PREでのクォートは、いちおう、やってた方がいいですね。(^^;;
≫ また、Perlの出力するメッセージはprintとは違って標準出力または標準エラー出力に出るの
≫ではないかと思います。従って、ブラウザでは何も見えないかもしれません。あくまで推測です
≫が。
いつも実験した上で書込んでますので、だいじょうぶです。(^^)
それに、このオプションの場合はシンタックスチェックとワーニングなので
コンパイル時や実行時のエラーとは違って、確実に標準出力です。
あと、printは、ファイルハンドルを省略した時のデフォルトは、他の言語と同じ
ように標準出力(STDOUT)ですけど!?(^^;;
それから、dieなら標準エラー出力(STDERR)……と。
というか、printで標準出力に書き出してやらないと、サーバが出力データを
拾えないわけですが……。
ぴゅあさん、中田さんレスをありがとうございます。
どうもクライアント側でゲートウェイの設定してないのが原因のようです。
で、各ルータのIPアドレスが分からないので来週にネットワークを構築してもらったメーカーさんに
来ていただいて調べてもらいます。
ちなみに各クライアントとルータのIPアドレスは最初の3つ(192.168.***まで)を
一緒にしていないと見れないかも、と言われました。
どちらにせよ来週再度挑戦し、結果を報告したいと思います。
それまでに、追加情報ありましたらまたお願いいたします。
ではでは。
ごめんなさいPREタグが認識されてしまいました。
<BODY>
<PRE><PRE>
:
</PRE></PRE>
</BODY>
-------------------
<BODY>
<PRE>
:
</PRE>
</BODY>
このどちかがちゃんと見えてくれれば良いんですけど。
失敗してたらごめんなさい。
無駄なカキコを増やすのは避けたいので、あきらめてください。
もし、失敗して、どうしても見てみたいと思うのでしたら、私の掲示板の方へ来てみてくださ
い。タグを無効にしてありますので見ることが出来ます。
まず、メールアドレスを変えましたので一応ご注意ください。
以前のメールアドレスも存在しますが、そちらは仕事専用として使うこととしましたので。
★かすいさんへの補足です。
>葭森圭介さん
私もPerlソースのデバッグはやはりDOS窓がお勧めだと思います。
perl -cw easy.cgiと入力するだけのことです。
An HTTPdを使う場合は<BODY>の後に<PRE>,</BODY>の前に</PRE>を入れておくのが良いで
しょう。HTMLには改行(制御コード)という概念がありませんので。
ただ、見やすくなるというだけのことですが。
ただ、あくまで推測で実際に試したことはありません。
また、Perlの出力するメッセージはprintとは違って標準出力または標準エラー出力に出るの
ではないかと思います。従って、ブラウザでは何も見えないかもしれません。あくまで推測です
が。
また、パラメータによって動作の変わるCGIの場合(掲示板やチャット)はいずれの方法でも難
しいと思います(手間が掛かるだけですが)。
と、以前発案していたCGIデバッグツールをやっぱり検討しなきゃかなとか思ったり....
#SSIを使うと違うのかな?SSIは簡単なというか<!--#exec cmd="perl -cw easy.cgi"-->を
有効にするだけのことしかやったことがないので。
因みにオプションなしで行けた筈?-cwの意味は確認していませんので
>gunjiさん
An HTTPdをインストールしてあるネットワークコンピュータのプロパティでTCP/IPのプロパティ
を確認してみてください。プロトコルTCP/IPが複数ある場合はネットワークアダプタ(LAN
ボード)に関連付けされているほうです。そのプロパティのIPアドレスに設定してあるIPアドレス
をhttp://192.168.0.1/...のような形で指定するだけで済む筈です。
また、環境によっては80以外のポートが割り当てられて居る場合があるので、例えば8080で
あれば(ブラウザのポートが80であったとすると)、http://192.168.0.1:8080/...のように
指定することになります。
と書きましたが、これはAn HTTPdのウィンドウを見れば全て情報が得られると思います。
通常はIPアドレスは下のほうにあるホスト名,アドレスのアドレスがIPアドレス(ホスト名
でも指定できるかもしれない。先の192.168.0.1の部分に相当するものです)、ポート,プロキシ
ポートのポートに表示されているポート番号(例えば8080で:8080の部分に相当します)を確
認して指定するだけで済むように思いますがどうでしょうか。プロキシに付いては使っていない
のでどちらのポート番号を使えば良いかといわれると答えることは出来ませんが、ポートの方で
よいと思います。
なお、それぞれのマシンにはプロトコルTCP/IPが既に組み込まれていることが前提です。あ
きさんのようなNetWareのLAN環境ではTCP/IPプロトコルを追加する必要があります。
>puffさん
この件に付いては先ほどv1.08からv1.10aに入れ替えましたが、アクセス制御は使っていない
ので不明ですがボタンが無効ということでしょうか?
編集,削除したい項目を選択しないと有効なボタンがアクティブにならないという初歩的な操
作が判らないなどという簡単な問題ではないのでしょうね。たぶん。
意味なく適当に入力してみましたが、編集,削除ともに可能でした。
或いはパスワードを設定してあるとか?この確認はしていませんが、パスワードのチェックを
解除しないと当然編集は出来ないでしょう。
的外れでしたらごめんなさい。
さすがの私でも、まだ行っていないことは想像でしかお話できませんので。
完全にかすいさんのカキコに対する上書きになってしまいましたが、僅かでもヒントになって
くれれば....
全くの無駄なカキコだったとしたら悲しいですが....
葭森圭介さん>
詳しくは書きませんが、サーバは任意のコマンドを実行できるように設計はされ
ません……危険ですので。
それなら、どうするかというと、Windows系の環境であれば、(今時、快適なんて
思われないかもしれませんが(^^;;)素直にDOS窓でやるのが普通&楽だと思います。
が、無理してサーバにやらせようとするなら、
---------------キリトリ---------------
<html>
<body>
<!--#exec cmd="perl -cw easy.cgi"-->
</body>
</html>
---------------キリトリ---------------
仮に、上のような内容の「test.shtml」というファイルを作って、easy.cgiと
同じフォルダに置いてブラウザから「test.shtml」のURLを開いてみてください。
ただし、*.shtmlについて、SSIを許可する設定にしてなければなりません。
また、当然ながら、perl.exeへのパスが通ってなければなりません。
他にも、それと同じような内容のCGIを書いて、それから、更にperl.exeを呼び
出してもいいと思います。
でも、やっぱり、開発やデバッグは、DOS窓でやられるのが、軽くてよいと思い
ますが……。
gunjiさん>
127.0.0.1は、ローカル=自分自身を指すものですので、普通、どのパソコン
においても、そのアドレスでは他のマシンを参照することはできません。
それなので、LANということであれば、お使いのパソコン固有のIPアドレスが
割り当てられていると思いますので、そのIPアドレスを127.0.0.1の代わりに
使うことになります……で、IPアドレスがお分かりであれば、そのIPアドレスに、
お分かりでなければ、管理者さんにお尋ねになって見てください。
この少し下にある、ぴゅあさんのコメントもお読みになるといいと思います。
≫ぴゅあ takasuka@tky2.3web.ne.jp 1999/01/27 23:05
puffさん>
うーん、うちは正常です……というか、まだ、1.08なんですが。(^^;;
こんにちは・質問を一つだけ
オプション・一般・アクセス制御の項目へのタイプミスを
修正することが出来ません・書込み欄が半透明文字に固定され
・入力・変換ができない状態です・HTTPdを再インストールしても
以前のミス設定が残ってしまいます。
よろしくお願い申し上げます・・(^^;;
AN HTTP をローカルPCで使う場合のアドレスは
127.0.0.1 で動くのですが、LANで繋がれている
他のPCからアクセスする場合のアドレスは、どう
設定すればいいんですか??
またまた初歩的な質問で恐縮ですが、Perlの入門書によりますとUnixにログインして
% perl -cw easy.cgi #easy.cgiはcgiスクリプト
とすると文法ミスのある行を教えてくれる、とありますがAN HTTP Serverでもできるのでしょうか?
中田さん、早速のコメント有難うございました。おっしゃる通りサービスパック4を用いております。ブラウザとサーバとの環境変数のやり取りがこんなに厄介とは思いませんでした。勉強不足でお恥ずかしいことです。
葭森さん、
よかったですね。
何かありましたらまたどうぞ。
あき.さん、
ぴゅあさんも言われているとおり、Netware(SPX/IPX)ではなくTCP/IPのネットワークがどうなっているかによります。(これらのネットワークプロトコルは物理的には同一ネットワーク上に共存できます)
あき.さんがお使いのPCのTCP/IPのプロパティで、IPアドレス、サブネットマスク、インストールされているゲートウェイのIPアドレスなどがわかればもう少し具体的に助言できるとは思います。
けれども社内のネットワーク構成の話になるので、そのあたりはメールでお知らせいただく方がいいかもしれません。
yamada さん、
少しわかりにくくなってしまいました。
通常のバージョンアップと同様に、今回は httpd110ad.zip か httpd110ad.exe をダウンロードしていただければよいと思います。
坪本さん、
ちょっと原因が私はわかりません。
NT4.0 は +ServicePack 4 でしょうか?
ぴゅあさん、
suncat さんへのお答えはぴゅあさんやかすいさんが答えてくれることを期待して書きませんでした。
ちょっとバタバタしていたこともありますし。
CGI関係などをぴゅあさんの方でやっていただければありがたいです。
解説紹介の方はじっくりやっていただければ。
#多少手を広げすぎではないかとも思いますが。。。
吉田さん、
私もプロクシ/キャッシュのダイアログが一瞬で消えたり、タブがなくなるのを確認しました。
ただいつそうなるかがつかめないでいます。(再現が得られない)
いくつか調べてみます。
>あき.さん
私もそのうち専用線を計画していますが(個人レベルでって、をい(^_^;))、まだ色々調査
に行ってこようと思いつつ、そのままになっていますが。
サーバマシンにAn HTTPdを置いてTCP/IPの設定をちゃんとやっていれば大丈夫だと思いま
す。専用線にするとインターネットに直結されるサーバマシンが最低1台必ず必要になりま
す。NetWareはローカルなネットワーク環境であったと思うので、インターネット環境とは別に
動いている筈です。
また、DNSの設定も必要となります。これはAn HTTPdのみを使う限りではTCP/IP内の設定だ
けで良いのではないかと思ったりしますが。
ちょっと気合入れて調べに行って来るかな?
役に立たない情報だったかもしれませんが、明日早く起きられれば(^_^;)調べに行って見ま
す。
あまりにも初心者的で恥ずかしくE-mailで質問させていただきましたが、APi509e.exeが自己
解凍ファイルでダブルクリックしなければならないことに気がつかず、perl.exeの代わりに
APi509e.exeとすればよいと、はやとちりしていました。何日間も悩んだ問題ですがお陰で
うまくいきました。
先週に質問させていただいた、あき.といいます。
会社のNetWareの環境でhttpdを使用しており、社内用ホームページを作り利用させて頂いています。
動作も安定してまいりましたので、次のステップとして、NTTの専用線で結ばれている
別工場からも見れるようにしようと思っています。
今までと同じ設定で見れる訳ないよなぁってやってみたら、やっぱり見れませんでした。
別工場の方は専用線で常時本社にあるサーバに接続されています。
すみませんが、こういった場合の設定等をご存知の方がいらっしゃいましたら、ぜひお願いします。
それとも、シロウトには無理かな?
吉田です。
ぴゅあさんありがとうございます。
でもうちのNTサーバはファイルサーバとWebサーバとプロキシサーバぐらいの
役目でしかないので,必要なものしかバージョンUPはしてないんです。だって、誰も
触らないし。
IMEなんてほとんど使わないし。これてSP3に入ってましたっけ?あんまり覚えてない。
自分のマシンはバリバリにバージョンアップしてます。
この間はNT5.0b1を入れたら動かなくなりました。(^^ゞ
おいおいと思って,再インストール。恐ろしくてb2は入れてません。
きっと大分安定しただろうけど・・・。
SP4は僕もダウンロードしてインストールしました。20時間くらいか
かったかな?完全バージョンを落としたので。
後は、IE5.0のベータくらいかな。今変なのがインストールしてあるのは。
あっ、あまりHTTPと関係ないことでごめんなさい。これらはぴゅあさんの
掲示板に書き込んだほうがよかったかな?
ぴゅあさん、有難う御座いました。
無事、LANの他のPCから掲示板アクセスができるようになりました。m(_ _)mペコ
次はうまくゆきませんでした。(私だけかもしれませんが)
>Version1.10 をお持ちの方は helper110.exe (46,905 bytes)
それからバージョンは表記はそのままですね。
1.10a.exeのようにはなりませんでしたけど・・・
おもしろいことに1.10d.exeとdなったりしていたのは
機種対応のためでしょうか。勉強になっています。
中田さん、再び参上させて頂きます。CGIのFAQのなかの18の問題が解決できません。cgisample.htmlを開いて、指示に従いますと、CGIファイルの中身がそのまま表示されるだけです。ご指示のエクスプローラのオプションで、MS-DOSバッチファイル・タイプをtext/plainに編集した上でも、同様になります。なおWindowsNT4.0を用いてテストいたしました。恐らく、へまがあるんだろうとは思いますが、どうもよく分からなくてお手を煩わせますが、よろしくお願いいたします。
あっと
>吉田さん
IME98の入っているクライアントマシン(Win95)では、今のところAn HTTPdは動かしていま
せん。NT Server onlyです。念のため。
あれ?中田さんからのレスがあると思ったのですが(^_^;)。
>suncatさん
各マシンはLANで接続されているのでしょうか?
もしそうであれば、今An HTTPdが入ってるマシンをホストとして他のマシンからアクセスす
ることができます。つまりはLANの何処かのマシンで立ち上がっていれば他のマシンはブラウザ
を用意するだけです。プロバイダがAn HTTPdの入っているマシン(サーバ),クライアント
(ユーザ)はブラウザを用意するのみという通常のインターネット環境と同じと考えれば理解
できると思います。
An HTTPdの入っているマシンのIPアドレスが192.168.0.1,他のマシン(1台分)のIPアドレス
が192.168.0.2であったとすると、他のマシンからはhttp://192.168.0.1/~suncat/index.html
とアクセスすれば、An HTTPdの入っているマシンの中身を見ることが出来ます。
もし、LAN環境でなくスタンドアロンであれば、最初のマシンに行ったことをそのまま他の
マシンでも行えばオッケーです。
この場合、2台のマシンはま全く関連がなく単独で動いていることになります。
と、カキコを見なおしたらLAN環境ですね。
他のマシンではAn HTTPdをインストールする必要はありません。
ブラウザだけを用意してhttp://192.168.0.1/~suncat/index.htmlのような呼び出し方をし
てください。CGIもAn HTTPdの入っているマシン環境を使って動作します。
いちお、?がついているので....
「CGI実行パス = ここだけはローカルパス?」は環境変数のセットアップが必要なので「
他のマシン」にはPerlだけはインストールして?:\www\perl\bin\perl.exeという指定で出来
ますが、An HTTPdを使っているという点では意味はないですね。
それから、An HTTPdを使っている限り、An HTTPdはd:\www以下の必要な情報だけを送って
くるのでd:\wwwを共有化する必要はありません。
ちょっと、話が前後してしまったりしてごちゃごちゃしてしまいましたが、理解していただ
けたでしょうか。
>ALL
なお、CGI関係に付いては、ここを使うのもなんなので(と勝手に言ってしまうのは中田さん
に失礼ですがAn HTTPd以外の内容も多くてかなり重くて身に来るのも大変なので)私の閑古鳥
が鳴いている掲示板を使って頂いても結構です。
いずれはプログラミング,アプリケーション,ハードウェアなど専用の掲示板を用意する予定
ですが。
ただし、2月から3月予定のサーバ増強工事の完了するまでは23時から2時過ぎ頃までは
殆どアクセス不能な状態ですのでご了承ください。
もともと自由な内容を語り合う場所なので、本当は専用の掲示板を作ってからのほうが良いの
ではありますが。
100%答えられるとは言えませんし、暫くは忙しいので、即答には対応できないかもしれません
が、もし宜しければ。
また、詳しい方のアドバイスの協力もお願いします。
巡回する掲示板が増えるのも大変かもしれませんが。
http://www3.tky.3web.ne.jp/~takasuka/pure/PeacefulPark/BBS/bbs.html
コンピュータ関連専用の掲示板を作ったら、改めてURLをお知らせします。何時になるかは未
定ですが。今の掲示板もちょっと書きなおして更に最適化しようと思っているのですが、なかな
か時間が作れないもので(^_^;)。
>吉田さん
NT Server?Win95?
NT ServerのIME97アップデートは確かSPに含まれていたと思います。
念のためMSのダウンロードページを確認しておくことをお勧めしますが、NT用には郵便番号
辞書の更新だけが必要であったと記憶しています。
因みにNT4.0 ServerでのAn HTTPd(まだ時間がなくてv1.08のままですが)では、特に(い
え全然)問題は出ていません。
もし、Win95の方でもAn HTTPdをお使いでしたら確認してみてください。IME97アップデート
での仕様では全く問題は出ていませんでした(今はNT Serverでのみの稼動になっています)。
IME98ってホントタコですよね。貰いものですが(^_^;)。
キーの機能が(親切のつもりで変えたのでしょうが)変わってしまっていたりして、早く打つ
チャットなどでは戸惑ってミスが増えてキーを打つのが遅くなってしまいます(笑)。
あ、SP4はいれましたよ。わざわざダウンロード版を使って(^_^;)。
さすがにOPは入れましたけど、すぐに消してしまいました。現状では重くなるだけで用途が
なくて(^^ゞ
>中田さん
掲示板のURL公開ということも含めて、An HTTPdの解説紹介遅れていてすみません。
その他にも、ICQ98a/99a, PowWow, FFFTP, ホームページビルダー, かじゅシリーズ通信
ソフト,War FTP Daemon,WinGate2.1/3.0など多くの(ソフト自身はこういったところですが
その他言語関係も多く....)予定が入っていてなかなか手をつけられていません。仕事が忙し
いと言ってしまうのが、一番の時間のない原因ですが。
追い込みとまた、仕事の予約が2つ入ってきているため、遅れ遅れになっていますが、特に初
心者に判りやすくということで細部まで調査する必要もあるので時間が掛かってすみません。
なんとか見られるレベルになったらお知らせしますのでもう暫くお待ちください。
なお、この掲示板に寄せられた質問&回答ももっと参照し安い形に整理したものを作って、質
問前の参照、回答のためのインデックスの指定など使いやすくなることを期待して検討させて頂
いています。
それでは。
吉田です。
ぴゅあさん、お返事ありがとうございます。
何で〜って感じでした。MSIME97とhttpのアプリケーションエラー
ログオンしてないのに〜。
バージョンですが、いくつかなぁ?
自分のマシンはMSIME98ですがサーバはどうだったかなぁ?
何せ,サーバなので,やたらとリブートできないし、なかなかアップデートできなくて。
SP4を入れるかどうか迷っています。
リムーバブル装置が内臓されているし・・・。起動しなくなったら大変だし。
これって、外付けのときだけ?だれかご存知?
話変わりますが,MSIME98も結構オバカサンですね。結構変な変換するし・・・
というわけで。
吉田です。
こんばんは。
中田さんがそういうと思い、キャッシュ0で運用しています。
現在使用開始して30分ほど立ちました。しばらく様子を見ようと思います。
全然関係ないですが(関係なくはないか)、だんまりのときに、キャッシュ関係の
環境設定ウィンドウが開きませんね。というよりはあっというまに閉じます。
ほとんど見えません。
また、通常の設定に関しては、タブを選ぶとタブごと内容が消えてしまいます。
どこへ消えたのだろう?
まぁぶっ飛んでいるときなで、上記のように動作が挙動になっているのかぁと
思い,さわっていました。
とりあえず、調査のほうよろしくお願いします。
吉田さん、
了解しました。
まだ 1.08 に戻しておられないようなら、最後に キャッシュサイズを0にして様子をみてもらえませんでしょうか(?)。
それでキャッシュ情報の収集はしなくなるはずなので、それでも落ちやすいようなら、原因は別ということになります。
takuya さん、
現バージョンではできません。
バーチャルホスト対応で、受けるIPアドレスを指定できるようになれば可能です。
バーチャルホストはこの1、2週間の間に対応させようと考えています。
Win98使用の皆さんへ、
1.10 のCGIでの不具合は helper.exe の問題と思われますので、helper110.zipまたはhelper110.exe をダウンロードして差し替えていただくようお願いいたします。
あいださん、
readme.html にも控えめに注意事項として書いてはあるのですが、現状では、スペースを含むフォルダ名、ファイル名は避けて下さい。
理由は、
CGIはコマンドライン(MS-DOSプロンプト)上で起動する形になるからです。
Win95/98 のMS-DOSプロンプトでは、たとえば cd \My Documents などはエラーになります。
cd \"My Documents"とか、cd \MYDOCU~1 と書かないといけないわけです。
ぴゅあさんのご指摘通りにした所、無事に掲示板に書きこめるようになりました。
また質問でスミマセン。m(_ _)m
私のPC内にある掲示板に他のPCからアクセスする場合は、
各PCにAnHttpdを入れるんですよね。
その際の設定は私のAnHttpdの設定を丸写しで良いんでしょうか?
私のPC(PC名をMyPCとします)
localhost = d:\www
document root = d:\www\suncat\public_html
alias cgi-bin = d:\www\cgi-bin
CGI実行パス = d:\www\perl\bin\perl.exe
(d:\www は共有化されている)
他のPC
localhost = \\MyPC\www
document root = \\MyPC\www\suncat\public_html
alias cgi-bin = \\MyPC\www\cgi-bin
CGI実行パス = ここだけはローカルパス?
こんな設定で良いのでしょうか?
他のPCから http://localhost/~suncat/index.html を見ることは出来ましたが
CGIがエラーを出します。
...Perl.exe \\MyPC\www\cgi-bin\minibbs.cgi No such file...
他のPCからは無理ってことですよね?
ぴゅあさん、早速の回答ありがとうございます。
ありゃ、半角詰められちゃってますね(^^;;
d:\www(localhost)
+cgi
+cgi-bin
+httpd-docs
|
+suncat
+public_html(document root)
+cgi-bin(alias /cgi-bin = d:\www\suncat\cgi-bin)
| +data
| +tmp
| +minibbs.cgi
| +data.cgi
| +jcode.pl
+index.html
今度は大丈夫かな?(ドキドキ(^^;;)
>吉田 嘉津男さん
直接関係ない内容ですが、IME97を使われているということですが、アップデートはかけられ
ているでしょうか。また、IME97ということはWin95であると思いますが、4.00.950であるなら
4.00.950aへのアップデート及び4.00.950aでも多くのアップデート(4.00.950Bでも少しあり
ます)があります。
直接関係ないように見えても影響している可能性がないともいえないので確認してみてはいか
がでしょうか。
因みにWin95は使っているとすぐに壊れてきます。何度も繰り返し言っていることなのですが
買ってからずっと再インストールしていない人(ハングアップして或いはうっかり電源を切って
しまったのにそのままチェックもしていない)が多くいるようです。それも原因として十分なり
得ます(なると思うではありません)。
私のところももう既におかしくなっていてブラウザも頻繁に固まってしまうようになりました。
また、時間を作って再インストールをしてやらないといけません。この際、テストしかけのWin98
をメイン環境にしてみるかなと思ったり。WinNT4.0はかなり過酷な状況でも耐えてくれるようで
すが。
>????さん
前々から気になっていたのですが、CPU利用率が100%になるという件。もしや、単にWinNTと
しか書かれていませんが、WinNT3.5xなのでしょうか。まだローカルで使っているので頻繁な
アクセスはしていませんがNT4.0 Serverではそのような現象はまだ確認できていませんので、ふ
とそのなのかと....
この機会についでに書かせていただきました。
>しかしかさん
Perl.exe自身は結構遅いのですが、そんなに時間が掛かることはないと思います。ただし、
社内LANではLANの利用状況によってはかなりレスポンスが悪いと思いますがどうなのでしょう
か。特にCGI自身の問題,An HTTPd/Perlの設定には関係ないのではと思います(特にデフォルト
から変えたものがなければ)。CGI自身の設定を間違ったとしても、それは動かないという結
果となりそうですし。特に支障がないならISAPIを使うのがよいと思います。ActivePerl(だっ
たかな?)は以前落としたまま、まだ使ったことはありませんが。
>suncatさん
確か、以前同じような現象があったような....
$reload = 'http://localhost/~suncat/cgi-bin/minibbs.cgi';
の設定は
$reload = 'http://localhost/cgi-bin/minibbs.cgi';
となると思いますが。
確か、何処かをいぢらないといけなかったような記憶も....(flockの無効化もあった筈)
以前は動かしていたものがあったのですが、MS-DOSにパーティションを開放されてしまうとい
うトラブルのために全滅してしまったので残っていませんが、時間があれば(ちょっと仕事に追
われていますので)再度確認してみようかとは思いますが(期待はしないでください)。
ちょっと、ツリーがチャンと見えると良いですね。半角スペースはHTML文書中ではつめて表示
されるので全角スペースを使って編集してください。
>OTAさん
状況がいまいちつかめませんが(同じ環境でないので)、そのファイルを通常の方法で開こう
とするとどうなりますか?もし同じ動作をするのならシステムのほうで関連付けされてしまって
いるのかも?
それでは、またまた長々とお邪魔してしまいました。
あまり有用な情報はなかったかと思いますが失礼しました。
またまた、お世話になります。
掲示板のCGI(win95)が順調にAN httpdで稼働していたのですが
年暮れに購入したPC(WIN98、P2−300Hz)で同様の設定をして
AN httpdを稼動させようとしたところ上手くいきません。
どうもCGIで使用しているminibbs.datのdatの拡張子をみてdatplayerソフトが
起動してしまうようです。表示ー>オプションでdatの登録情報を削除しようとしましたが
datの登録情報はありませんでした。何か方法がありますか?
環境:Win98, Httpd1.10, NetScape3Gold
中田さんが下のほうでminibbsを動かしていると書いてあったので
質問させてください。
minibbs 8.8を動かそうとすると、マスターキーの設定画面が出てきますよね。
で、パスワードを入れた後「登録」ボタンを押すと、またマスターキーの
設定画面になってしまいます。
ちょっとcgiを分解して調べてみたら、登録を押して呼ばれた時にデータを
受け取れていないみたいなんです。
また、無理矢理data.cgiに暗号コード突っ込んで、掲示板の画面が表示されるんですが
書きこめない(というか上と同じ症状)んです。
d:\www(localhost)こんな階層で、minibbs.cgiは以下を書き換えてます。
+cgi
+cgi-bin
+httpd-docs
|
+suncat
+public_html(document root)
+cgi-bin(alias /cgi-bin = d:\www\suncat\cgi-bin)
| +data
| +tmp
| +minibbs.cgi
| +data.cgi
| +jcode.pl
+index.html
はじめまして、色々とお忙しいとおもいますが質問があります。
うちの社内のNTサーバにAN httpdを入れてwebサーバを構築して
MinichatのCGIも稼働するようになりましたが、書き込みから表示にかけて
かなり重いのです、たとえば発言ボタンを押して30秒経ってから表示
するのです、自分のところのマシン(Win95)で試したところ、CGI処理後httpdの
表示が”プロセス終了待ち”でかなりウェイトがあるようです、Perl32sの
処理時間はこんなものなんでしょうか?それともなんか設定がおかしい?
あと考えられるのはCGIスクリプトのせい?
今のところ”リモートホストの取得”は”しない”でCGIへのページアクセスや
名前登録までは、サクサク行きます。
Perlはpw32i316を使ってます。
どうかよろしくお願いします(__)
中田さんこんにちは。
キャッシュログを見る限り、普通のような気がします。
最終アクセスのログの後、大たい1-2分ぐらい後にキャッシュのログがあります。
中にはもっと時間がかかっているのもありましたが・・・
キャッシュファイルが大きくても、時間はあまり変わっていないようです。
5000ファイル、35MB
とりあえず、最近よくとまるので,「元のバージョンに戻せ!!」といわれているので,
様子をみて、1.08へ戻そうと思います。
また,今日の朝、ログイン前の画面で以下のようなメッセージが出ていました。
msime97main:httpd.exe -アプリケーションエラー-
"0x0048dda6"の命令が"0x6c9665d8"のメモリを
参照しました。メモリが"read"になることはできませんでした。
msime97main:httpd.exe -アプリケーションエラー -
例外unknown software exception(0xc0000027)が
アプリケーションの0x7003bec0で発生しました。
と出ていました。
キャッシュログの最後の時間を見たらログを削除して、キャッシュサイズ
をログしているのが最後でした。今は10MBでキャッシュが自動削除にしています。
よろしくお願いします。
質問するとこでなかったらごめんなさい。
非常に重宝しているのですが、
一つ困った事があります。
会社のマシンはLANに接続し、インターネットにも直結しているのですが、
httpdを起動すると、公開サーバとして機能してしまうようです。
*管理者の方に怒られてしまいました。
IP固定なので、自分のマシンだけアクセス許可すればよいのですが、
ローカルホストとしてだけ動かしたいのです。
どうしたらいいのでしょうか、、、
otoseさんもおっしゃていましたように
ヘルパーが問題でしたね(^_-)
それをはずすと98でもOKでした。
中田さん、たいへんですね。
どうぞせかずにお願いいたします。(^^)/~~~
さっきの書きこみで「get postしたデータが受け取れない」とした理由に
リモートホスト名のチェックなんたらと書きましたが、今やっていたら
チェックしても受け取れました。(^^;;
んー何が悪かったのか判らなくなったぞ(^_^ゞ
サンプルが間違ってたのかな?
こんな初歩的ミスを犯すとは...(T_T)
Win98でヘルパープロセスを使用している皆様へ
バージョン 1.10 のヘルパー(helper.exe)が、バージョン1.09a用のものでした。
1.10 で ヘルパープロセスをチェックしてある(Win98ではデフォルト)と、CGIが正しく動作しません。
なお、バージョン1.09a用の helper.exe のタイムスタンプは 99/01/16 午後 5:50 です。
正しい helper.exe に入れかえた版を今夜出しますので、しばらくお待ちください。
はじめまして
Win98でAnHttpd1.10を使用させてもらっています。
最近LAN(4〜5台)上で掲示板とかしたいな〜と思い、
minibbs.cgiとかいじってるんですがうまく動作しない...。
いろいろ試してみたところ、オプションの「リモートホスト名の取得」で「取得しない」
以外にチェックすると、Get Postしたデータが受け取れないと言う事が判りました。
リモートホスト名の取得(CGI/SSIでは取得)
$buffer = $ENV{'QUERY_STRING'};
print "Content-type: text/html\n\n";
print length($buffer);
で、0 が表示されてしまうのは、仕様なんでしょうか?
まだHTML, CGIも初めて2日しか立ってないので何が正しいのか違うのか
判りませ〜ん(ノ^ー^)ノ
今後ともよろしくです。m(_ _)mペコ
趣味で CGI をしていて今まで Personal Web Server で作業していたのですが、
今日、原因不明の症状が発生して困っていたところ、ここを見付けました。
少しの修正で今までどうり動作させれるようになりました。
ありがとうございます。
必要なDLLファイルperlcore.dllが見つかりませんでした。
プログラム開始エラーです。
(なにが足りないのかなあ?)
Win98でAnHTTPD1.10を使用させていただいていますが、
ヘルパープロセスにチェックを入れると、CGIで書き込みが
出来なくなります(書き込まれないで画面だけが更新される)
チェックをはずすとOKです。
プロクシ、キャッシュは使用していません。
設定ミスでしょうか?
今回の版(110)でhttp://coral/Scripts/WebBBS.exeを実行しますと異常終了するように
なりました。ちなみに(109a)では正常に動いていました。
よくわかりませんが何かバグがあるのではないかと思われます。
マシンはwin98で動かしています。
「・・・していました」じゃなくて「混乱してます」でした。
そして書き込みが流れてしまいます。
昨日、httpdを起動するとルータが電話をかけてしまう事について
質問しました。ふれっしぃです。
BZGさんの説明の通りに設定を変更したところ
見事に解決しました(勝手に電話をかけなくなりました)
本当にありがとうございました(^^)
混乱してしまいました。次のようなエラーです。
Mon Jan 25 22:38:57 1999 Client Abort (or SOCKET_ERROR 10054) detected in processing Header 1 for Thread 0
Mon Jan 25 22:38:57 1999 Client Abort (or SOCKET_ERROR 10054) detected in processing Header 3 for Thread 0
Mon Jan 25 22:38:57 1999 Aborted in procHeader(3)
Mon Jan 25 22:39:31 1999 Error Response 404 Thread 3(ID= -3908793) for "/images/2.gif"
書き込もうとするとスクロール?してしまいます、もひとつはそのままです。
ども、AN HTTPD使わせてもらっています。
現在 Ver1.10を使っているのですが、ちょっと質問があります。
ディレクトリ(フォルダ)の名前にスペースが入っていると(例えば「mg test」など)
htmlは読んでくれるのですが、CGIは「無効なまたは認識されない応答をサーバが返しました」
と言うエラーが出てしまいます。なにか設定が必要でしょうか?
スペースを取ると、そのCGIはちゃんと動きます。(これが分かるまで、CGIの記述ミス
かと思って2時間くらい悩みました・・・・)
ちなみにWIN95、IE4.01です。
>それでも落ちるという時の落ちかたはどんな風に、でしょうか?
完全なハングアップです。マウスカーソルすら止ってしまいます。
同時に、War-FTPを動かしていますが、War-FTPと MS PWSの組み合わせでは起きません。
また、まれに青画面になって ***.VXDの不正な呼び出しや、例外0Eなどで落ちることが
あります。この症状は、WinSock2.2になってからは出ていません。
(まだ昨日いれたばかりなので、今夜どうなるかな?)
今現在のテスト環境は非常に過酷です。80000アクセス/日、画像を大量に置いて5
クライアントからオートパイロットでダウンロードし(10画像に1つは中断)さらに、cgi
プロセスを 1分に 1度起動するというものです。
WinSockの update前は、このテストでは 30分持ちませんでした。現在、1時間ほど連続
稼動していますが、大丈夫です。
尚、WinSockの updateだけでなく、Tcpipupd.exe(TCPプロトコルスタックの update)も
行っております。
参考になりますでしょうか...?
finこと市川
パイロットでダウンロードする
finさん
情報ありがとうございます。
それでも落ちるという時の落ちかたはどんな風に、でしょうか?
吉田さん、
なるほどそうですか。
プロクシ/キャッシュが有効でキャッシュサイズの上限を指定している場合、一分間アクセスがないとキャッシュファイルの総サイズを調べるのですが、調べている間に一分たってしまうのかもしれませんね。
cache.log に、サイズを調べた記録があるはずなのですが、何かおかしくはないでしょうか?
いずれにしろ、私の方はその関係を調べてみます。
kmさん、
ご丁寧にどうも。まず間違いないとは思いましたが自分で確認できないだけに一抹の不安もあったので、大丈夫だとのことで安心しました。
#私も先週食欲がなくなりました。あれが風邪だったのか。。。
ふれっしぃさん、
BZGさんが言われているとおりで、「ホスト名/アドレスを取得」をはずせばいいのだと思います。
ここにチェックがあると、ホスト名を取得するためにDNSサーバに接続しようとするので自動接続にはいります。ルータのフィルタ設定の方は関係しないと思います。
yamadaさん、
私の方もちょっとやってみましたが、
Win98上の httpd v1.10 で minibbs 8.8 を使って確認してみた限りでは、無事書き込みもできてしまいました。
設定の問題なのかどうかまだわかりません。
書き込みしようとしたとき、どのようになるのでしょうか?
えむけいさん、
なるほどそうでした。早速直します。
Yosshi さん、
そうでしたか。何はともあれよかったですね。
httpd を起動してダイヤルアップ接続のダイアログが現れるのは、IEの接続の設定が「モデムを使う」になっているためだと思います。
あるいは、BZGさんがふれっしぃさんに答えているスタートアップのところのチェックをはずすのでもいいはずです。
ぴゅあさん、
lock について。
ご存知の範囲かもしれませんが、flock(2) に相当すると思われる Windows API のレベルでいうと、
WinNTでは FileLockEx() が使えるので、排他/共有ロックが使えます。
Perlの flock も、AP509_source では、win32/win32.c 中の win32_flock(int fd, int oper) で、
!IsWinNT() なら、
croak("flock() unimplemented on this platform");
return -1;
で終わりにしてしまいますが、NTなら、FileLockEx() を使います。
一方、Win95/98 では、FileLockEx() は使えず、使えるのは FileLock() だけのようです。
この Ex のないFileLock() の方は排他ロックしか使えません。また、ブロック/ノンブロックも指定できず、ブロックのみです。
実際には、CGIで flock を使う場合は ブロックの排他ロック(パラメータの2)が多いと思うので FileLock() で代用し、その他のモードの時のみエラーを返すか排他ロックで代用するかでいいのではないかと思っています。
ただ、本当に FileLock() で代用できるかどうか確かめてみてはいません。
まあ、それができるようなら既にやられているような気もするので。。。
皆様こんばんわ。お久しゅうございます。
最近仲間内でサーバの稼動テストをしているのですが、AnHTTPdを Win95で利用していて
すぐ落ちるとお嘆きの方がいらっしゃいましたら、WinSockの updateをお勧めします。
うちは、これでかなり安定しました(ただし、それでも落ちますが)
IE401sp1を入れます。WinNT optionPackの Personal Web Serverをインストールします。
WinSockが 1.1から 2.2にアップデートされます。Personal Web Serverのインストールを
キャンセルして、WinSockのアップデートが完了です。
Windows95は、TCPのプロトコルスタックがメモリリークしているとも言われていますし、
TCPパッチを当てておく方がいいかもしれません。(まだ試していません)
この情報が参考になれば幸いです。
finこと市川
吉田です。
こんばんは。
キャッシュについてですが,やはりキャッシュファイルが大きくなれば、ANHTTPが
ダウンするまでの時間が短くなりますね。最後は1時間も持ちませんでした。
このときのキャッシュファイルは約5000ファイル、35MBくらいでした。
その後、キャッシュファイルをすべて削除してからは、また寿命が長くなりました。(笑)
現在設定している内容は、
キャッシュオン
キャッシュサイズ 100MB
キャッシュ有効期限チェックを行う
最終更新ファクター 0.20
デフォルトキャッシュ有効期限 1Week
更新時にキャッシュを使用しない
をチェックしています。
キャッシュサイズを小さくすれば多分だんまりにはならないと思いますが,
再現性確認のため,とりあえず,上記の設定で動かしています。
今年の風邪はとても大変みたいなので,気をつけてください。
ふれっしぃさん>
>httpdを起動した瞬間にルータが自動接続を行ってしまいます。
起動した時にホスト名を取得しようとしているんじゃないでしょうか。
「オプション」>「一般」>「表示/インデックス」>「スタートアップ」
で「ホスト名/アドレスを取得」のチェックをはずしてみたらどうでしょう。
中田さんへ
Ver1.10 + WinNT3.51 での動作、確認いたしました。
アクセス制御のチェックも保存されていますし、実際の動作でも制御されています。
お手数をおかけいたしました。ありがとうございます。 m(_ _)m 感謝
いろいろと大変でしょうが、十分お体に気をつけて開発に打ち込まれますよう...
まずは、お礼まで。m(_ _)m
#ちなみに...かかりつけの病院の医師から聞いたのですが、
#昨年末より流行っている風邪は「胃がやられる」タイプと「急な高熱」タイプだそうです。
#私は「吐き気」と「頭痛」でした。
初めまして、httpd使わせていただいてます(^^)
ローカルでテストできてCGIの開発がぐっと楽になりました〜
しかし、なぜかhttpdを起動した瞬間に
ルータが自動接続を行ってしまいます。
とりあえずhttpdを起動するたびに設定画面に入り
自動接続を切ってから起動して起動したら再び自動接続を
入れてます。
フィルタを設定するかhttpdの設定をどこか変えればいいのか・・・
知識不足のためどうしたらいいのか分からないので困っています・・
使っているルータはTelecom DeviceのNetCruzです。
フィルタの設定項目は http://www.tcd.co.jp/seihin/NC/sumple/adva/filter.html
のようになっているのですが、どの項目に何を入れればいいのか
分かる方がいらっしゃいましたら是非教えていただきたいです。
どうかよろしくお願いします。
なんどもすみません。flock関数の件はこの下の方でも書いてありましたね。
ちゃんと読んでいれば、同じような質問で皆さんの手を煩わせずに済みましたのに
大変失礼しました。
結果、flockの行をコメントしてあっさり解決しました。
私の場合、主に掲示板等のCGIを ネットにアップする前の動作チェックに使っていますので、
とりあえずflockが使えなくても問題無いです。(とは言えflockの記述が間違って
いたら大問題ですが)
今は既製のCGIを改造するだけしか出来ませんが、自分で組めるようになれば
さらに楽しいですね。
蛇足ですが、今回質問したカウンタのファイルにはもちろんエラー処理の
サブルーチンはあります。カウンタのデータファイルもね♪
>ぴゅあさん、かすいさん、ぴかさん、そして中田昭雄さん
いろいろと助言いただき、ありがとうございます。
flockが使えないのを知らずに、苦戦していました。
皆さんのアドバイスどおり、別の方法でカウンタを動かしてみます。
感謝!
ご無沙汰いたしております。
v1.10で、それにwindows98でアクセスしてみましたら、
書き込みができなくなりました。
どこの設定がよくないのでしょうね。
お忙しいところすみませんです。
以前お話しした、引数付きCGIが生成したページからのリンクがキャッシュされない/キャッシュにあっても無視される件ですが、どうやらReferer:に?が含まれていると(GETするURLのほうには?が含まれていなくても)CGI Requestとみなされているようです。
Referer:以外はまったく同じ2種類の要求ヘッダをtelnetで送ってcache.logへの出力を比べた限りではそうなっていました。
以前に質問していたことですが,あれはTCP/IPのDNS関係の設定をいじるとうまくいきました。
元の原因は,プロキシサーバだった模様です。
色々とありがとうございました。
今回は別なことですが,
httpdを起動すると,インターネットに接続するためのダイアログが表示されます。
スタートアップに登録して,LAN内のみの使用ではあれがうっとうしく感じていますが
表示されなくする設定とかありますか?
探してみましたが見あたりませんでした。
よろしくお願いします。
ぴゅあさん>
そうですね、確かに、禁止されてるプロバイダもあるでしょうし、ディレクトリの
パーミッションを変えないといけないプロバイダも、(ディレクトリのotherのパー
ミッションが書込みを許してなくても)何もせずに動くプロバイダもあると思います。
ただ、流れ的には、&error()が戻ってきてしまうと、エラーこそ起こらないものの
openに失敗したハンドルにアクセスしてしまうことになるため、なんだか行儀が
悪そうなので、&error()は返ってこないものと推測しました。
それから、
≫ISAPIに比べてPerl.exeは重いとか、
これだけは処置できないと思います。(^^;;
(Win32版では、)PERL.EXEも、PERLIS.DLLも、PERL300.DLL(など)を単に呼び出している
にすぎませんから、どのプロセスで実行されるかの違いだけで、実際の処理部分には実行
時間の差はないはずです。
PERLIS.DLLは、Windows自身の仮想マシン上に作成されたHTTPDのメモリ空間から参照
できるようにロードされますが、PERL.EXE(DOSおよびCONSOLEアプリ)をWindowsアプリ
から呼び出す場合は新規の仮想マシンを作らなければならないので、その仮想マシンの
生成手順でオーバーヘッドがかかって遅さの主因になっていると思います。
だから、素直にPERLIS.DLLを使った方が良い気もしますが……。
>中田さん
時間があればPerlをいぢってみたいとは考えています。
いつも計画だけ増えてしまって、ドキュメントがない(あっても英文が面倒(^_^;)),
ターゲットが多彩な傾向にあるので解読が大変(特に海外製ソフトのソースの場合)などで、たま
っていってしまっている状態ですが(configureなど使われているのは一度理解できれば良い
のでしょうけど)。
ところで、Win95/98で簡単にlockは実現するのでしょうか?まだまだWin自身には理解が浅
いので詳しくは判りませんが。WinNTでは可能なような気もします。
flockを無効とすることは簡単なことでしょうが、それではAN HTTPでインタネに出そうと
考えている方々には問題があると思います。というより絶対あるでしょう(AN HTTPのオプション
を設定すれば良いのでしょうが)。できればflockをなんとかしたいものです。
Perlをいぢりたいというか、作りなおしたいというのは、ISAPIに比べてPerl.exeは重いと
か、mdbopen()とかにも対応させたいとか(これはISAPIのほうですね)、CGIのテストをもっ
と判りやすくなど、理由は色々あるのですが。
で、Winプログラム方面ではかなりの経験を持たれている中田さんとしてはlockに関して情
報をお持ちでしょうか。時間的に実現には時間がかかるものの、なるべく詳しい情報がいただ
ければと思います。現在、HTTPdなどに付いては保留にしていますが(他の通信/インターネット
関連アプリのためのWinプログラミングに関して)テクニックなどの情報を彼方此方のサイト
から収集しているので(しかし、MFCを使っていたり、Delphiが殆どだったりでなかなか難
しいのですが)色々な情報もいただけるとありがたく思います。
あ、そうそう
ぴかさんの方法も確かに知ってはいるのですが、私の前のカキコにある条件に引っかかって
いたり、コードは軽くしたい(更にインタネ上はユーザが急増して以前にも増して重くなっ
ている)という訳で避けて通っています。できればflock()一本で解決したいものですね。
ちょっと、ごちゃごちゃになってしまったので、判りにくい文章になってしまったかも....
Win95/98上の Perl の flock について。
確かに現状ではなんらかの方法で無効にするか場合わけをしないといけませんね。
誰かが Win32_flock に手をいれて少なくとも Win95/98 では何もしないようにしてくれればいいと思うのですが。。。
もっとも何も言わずに何もしないようだとかえって始末に悪いから誰もそうしないのでしょうか。
Perl の起動オプションで flock を無効にするのでもいいと思うのですけど。
誰かやりませんか(?)
ぴゅあさん、
/cgi-bin の設定は、一般のところがグレーになっている最近のバージョンでは、エイリアスタブの方で変更するようになっています。
みなさんこんにちは。
flockの件ですが、僕も eval 'flock(FILE,2);'; 等でやってます。Windowsは自宅での
テストにしか用いていないので、flockが使えない時の同時書きこみ対策はしてません。
すみません、下の記事がとても見にくくなってしまいました。
ファイルロックのサンプルをここに、ソースをこちらにアップロードしておきました。
中田さん、お世話になります。
今、ver1.10をダウンロードしました。
リソース減少が良くなっているということなので、楽しみです。
ファイルロックが話題になっているので、僕が使っている方法も書いておきます。
・・・flock()が使えないWin32 Perlでは、一番悩むところです。
#!/usr/local/bin/perl
#ファイルロックのサンプル
#
# sample (directory)
# │ sample.cgi[755]
# │ sample.dat[666]
# │
# └- lock (directory)[777]
# sample.lock[644]
print "Content-type: text/html\n\n";
$data_file = 'sample.dat';
$use_flock = 'yes';
$lock_dir = './lock';
$lock_file = 'sample.lock';
&set_lock($lock_dir,$lock_file);#ファイルロック起動サブルーチン
open(DAT,"+<$data_file");#データファイルをオープン
if($use_flock == 'yse'){ #flock()が使えるときの処理
eval "flock(DAT,2)"; #flock()で排他処理(flock()が使えないときに備えトラップ)
if($@){ #$@ にエラーメッセージが書き込まれていたら、エラー処理
&reset_lock($lock_dir,$lock_file);#排他ロック解除サブルーチン
print "Can't use flock() this system! change $\use_flock = 'no'\n";
exit 0; #上記メッセージを出力して終了
}
}
$count=<DAT>; #カウントデータの読み込み
print "<P>OLD COUNT: <B>$count</B>\n"; #カウントデータを出力
$count++; #カウントデータに1加える
seek(DAT,0,0); #ファイルポインタを先頭に移動
print DAT "$count\n"; #ファイルに書き込み
if($use_flock == 'yse'){flock(DAT,8);} #flock()が使えるときは、排他ロック解除
close(DAT); #データファイルをクローズ
&reset_lock($lock_dir,$lock_file); #ファイルロック解除サブルーチン
open(DAT,"$data_file"); #データファイルをオープン
$count=<DAT>; #カウントデータ読み込み
print "<P>NEW COUNT: <B>$count</B>\n"; #カウントデータを出力
close(DAT); #データファイルをクローズ
exit 0; #処理終了
sub set_lock{
local($ld,$lf)=@_; #引値
local($r)=5; #他のプロセスが排他ロック中のときの再トライ数
local($rlf)=$ld.'/'.$$.'.lock';#プロセスIDから一時ロックファイル名を生成
$lf=$ld.'/'.$lf; #ロックファイル名を生成
while ($r--){ #以下の処理を再トライ回数が0になるまで繰り返す
if(rename("$lf","$rlf")){return 1;}#一時ロックファイル名に変更できたら成功
else{sleep(1);} #できなかったらファイル1秒スリープする
}
return 0; #ファイルロック失敗
}
sub reset_lock{
local($ld,$lf)=@_; #引値
local($rlf)=$ld.'/'.$$.'.lock'; #プロセスIDから一時ロックファイル名を生成
$lf=$ld.'/'.$lf; #ロックファイル名を生成
if(rename("$rlf","$lf")){return 1;} #ロックファイル名が復元できたら成功
return 0; #ファイルロック失敗
}
補足
私はerror()関数に対してエラー表示用のHTML文を出力するようにしているので、そうしてあ
ることを前提に説明しておきました。もしそうでなければ(と言うより何かをしたくてerror()
関数を作られているのだと思うのですが)かすいさんのおっしゃられているような処理が必要と
なるでしょう。
ただし、かすいさんの説明では不充分な場合があるので、これも補足しておきます。
これはサーバによる場合もあるかもしれませんが、私の入っているプロバイダはCGI上で
ファイルを作成できない仕様となっています(というより通常そうであるはずと思います)。何故
なら、そのファイルを作ったオーナーが自分ではなく最初にアクセスした人のものになってしま
うために後々不都合があるためです(仮にこの最初のアクセスがディスクスペースの持ち主であ
る当人であったとしてもブラウザからアクセスすると他人になってしまいます。これはUNIXの
仕組みを知らなければ理解することは難しいでしょうが)。
従って、AN HTTPサーバを使う場合はWinNT或いはWin95/98でしょうから支障はないと思い
ますが、プロバイダのサーバにアップする前のテスト用としてAN HTTPを利用するつもりであ
れば前述の問題が発生するため注意が必要です。
よって、一番最初に述べたようにファイルがオープンできない(存在しない)場合には、何ら
かの通知を行うという方法がベストであると思います。
簡単な例としては
sub error
{
print 'エラー[',@_,']';
exit(0);
}
TAKUさん>
えっと、flockについては、ぴゅあさんのおっしゃる通り、使えないので
そこでも止まるはずなのですが……
ところで、カウンタファイルは最初から用意されているのでしょうか?
あるいは、用意されているのを前提とされているのでしょうか?
もし、(ファイルの内容は、空でも、0でも……)用意されてないようで
あれば、最初のflockに達する以前に止まってしまうように思います。
≫if (!open(DATA,"$count")) { &error('0'); }
≫$number = <DATA>;
≫close (DATA);
≫
≫$number ++;
こう書いてあると、当然、存在しないファイルはopenはできませんから、
&error()が中断処理だとすると、ここで終了するわけです。
if (!open(DATA,"$count")) {
$number = 1;
}else{
$number = <DATA>;
close (DATA);
$number ++;
}
これで、どうですか?
--------
以下、蛇足ですが、1行減らして、こうも書けます。
if (!open(DATA,"$count")) {
$number = 1;
}else{
$number = (<DATA>)[$[]+1;
close (DATA);
}
……蛇足すぎかも。(^^;;
>TAKUさん
確か、プロバイダのサーバ上ではちゃんと表示されるけれど、AN HTTPサーバ上では動か
ないということでしたよね?
fclock()関数は使えないのでこれをコメントとすれば動くのではないでしょうか?
余談として、どちらでも動く書き方として私の書き方を紹介しておきます。
また、同時アクセスによるデータファイルの破壊に対する私なりの処置も紹介しておきます。
本当に効果があるのかどうかは確証はありませんが。掲示板などでしか試していませんが、チャット
などで発言がはじかれたりするのは解決するのではないかと考えています。
$f_lock=0; # 0=AN HTTP, 1=Provider
sub count
{
local ($count,$number);
$count=$counter;
&error('0') unless open(DATA,"+< $counter");
flock(DATA,2) if ($f_lock > 0);
$number=<DATA>;
$number++;
truncate(DATA,0);
seek(DATA,0,0);
print DATA $number;
flock(DATA,8) if ($f_lock > 0);
close(DATA);
print $number;
}
ども、ここはログが流れるのが早いですね。表示されないカウンタのCGIは
こんなものです。このサブルーチンまでのhtmlは表示するのですが・・・・
sub count {
$count=$counter;
if (!open(DATA,"$count")) { &error('0'); }
$number = <DATA>;
close (DATA);
$number ++;
if (!open(DATA,">$count")) { &error('0'); }
flock(DATA,2);
print DATA $number;
flock(DATA,8);
close (DATA);
print $number;
}
>中田さん
/cgi-binに付いてはv1.08で設定がグレー表示になっていて(以前は変更できましたが)固定
されてしまったからありように説明しました。これはデフォルト状態で、何処かのチェックを変
更すれば生きるのかも知れませんが、現時点では(そろそろ始める予定ですが)CGIを使わなく
なっているため詳しくは確認していません。
v1.09aにはまだ入れ替えていないので判りませんが、元に戻っているのかも知れませんが。
ぴゅあさん、
CGIの実行ディレクトリについては、/cgi-bin 以下に限定し /cgi-bin はドキュメントルート以下以外のところに(エイリアス)しておくというのが安全とされている、と思います。
そういう意味ではデフォルトの /cgi-bin が ドキュメントルート\cgi-bin になっているのは不適切です。
/cgi-bin 以外の任意の箇所で実行できるようになっているのは、プロバイダで動かしてみる前のローカル実験のためです。
通常、プロバイダのホストの /cgi-bin に入れてもらって動かすケースはあまりなく、.htaccess の設定その他により自分のホーム以下で動かす場合の方が多いようだからです。
でも、/cgi-bin, /scripts 以下以外での実行を許すかどうかはオプションにしておくべきかもしれませんね。
馬場さんの話自体は、かすいさんの言われるとおり、ブラウザがユーザ名/パスワードを保持しているためだと思います。その CGIだけ毎回認証する必要があるのであれば HTTPサーバの基本認証を使うのではなく、 そのCGIに認証(パスワード入力)を組み入れないといけないということになると思います。
キャッシュの話では、私は WinGate は使ってみたことはありませんが、適切にキャッシュの条件を設定してやれば制御可能のはず、だと思います。つまり自分の意志に反してキャッシュを使われたりすることはないだろう、と。 ただし、AN HTTPD のプロクシ/キャッシュの場合、ご覧の通りで、そういうことがありますが。。。
キャッシュ機能自体は、プロクシサーバ機能には自然についてくるもの、と思っています。プロクシサーバのキャッシュにあるのにわざわざサーバにアクセスし直す必要はないでしょうから。
AN HTTPD のキャッシュは、キャッシュの期限切れ以外では、ブラウザのリクエストに If-Modified-Since: がないか Pragma: no-cache がある場合、キャッシュファイルを使わずにサーバに取りにいきます。
吉田さん、
そういえばブラウザのメッセージも見たことのないメッセージですね。
様子見の結果また何かわかりましたらお知らせ下さい。
馬場祥敬さん>
≫現在は、http://192.168.0.2/hoge/をNetscape等でアクセスするとユーザ認証ウィンドウは
≫出るのですが、http://192.168.0.2/hoge/hoge.cgiと入力すると、そのまますんなり
≫hoge.cgiにアクセスできてしまいます。
これって、ブラウザがパスワードを覚えてるだけじゃないでしょうか?
(もちろん、COOKIEとは違って、ブラウザを再起動すると忘れます)
認証は、フォルダ単位ですので、ブラウザを起動したら、何よりもまず、
http://192.168.0.2/hoge/hoge.cgiにアクセスしたら、そこで認証が
かかると思いますが……。
無駄なカキコになってしまいそうですが、少し....
>馬場祥敬さん
アクセス制御は使ったことはありませんが、CGIは「ドキュメントルート\cgi-bin」フォルダ
に置くべきものではないのでしょうか?
確かに何処に置いても動きますが、設定にある以上、意味があるものだと推測します(私が答
えるより中田さんが答えれば済むことですが)。
それが原因で制御できないんだと思うのですがどうでしょう。
逆に言えば、/cgi-binより上に置いたものはソースが表示されるかエラーが出るようにした
方がこう言った混乱が起こらないと思うのですが如何なものでしょうか?
私としては/cgi-binの設定をしているのに、これに関係なく実行できてしまうのはどうかな
とずっと思っていました。
>吉田 嘉津男さん
やはりキャッシュは使っていないので判りませんし、HTTPサーバ内部の問題なのかもしれ
ませんが....
解説をするといいつつ、まだ進んでいないので情報不足ですが、このキャッシュがキャッシュ
プロキシサーバとしてのキャッシュでないとすればそんなに大きく取るものではないかと
思います。大体多くのファイルは数キロといったところでしょうから、満杯になってくると2000
個近いファイルがキャッシュされていることもあるのでしょう。
Winは特に大量のデータを扱うのが苦手、遅いと(私としては)感じているので、キャッシュ
スペースが大きすぎるのが原因であるのかなという気もします(余談ですが、NTより95の方が
色々な面で弱いようです)。
因みにこういったキャッシュは使うのを避けています。WinGateで大変困りましたので。ブラウザ
はそれなりに更新されているかチェックしているようですが(たまに更新されないこともあ
る)、WinGateではキャッシュが破棄されない限り最新のページを見ることが出来ませんでした。
このためWinGateはキャッシュを殺して使っていますし、HTTPサーバの方もどうなのだろうか
と(というよりどういう意味で搭載しているのかまだ確認していない所為もありますが)思うと
ころから、まだ使っていません。
そこのところどうなのだろうかという意味も含めて書かせていただきました。
無駄なスペースとってしまったなら、ごめんなさい。
こんにちは。中田さん。
キャッシュですが、使用しています.
現在はキャッシュファイルを100MBに設定しています.
中田さんはキャッシュを疑っているのかな?僕もそう言われて、
なんとなく怪しいような・・・
無応答になるまでの時間がだんだん早くなってきています.
今日は3時間で無応答になりました.
ブラウザに表示されるメッセージもポートにアクセスできません。
という内容からすると、キャッシュを見た後、サーバがポートに
アクセスする際に、問題があるのかなぁと思っています.
とりあえず,もう少し様子を見てみますが,無応答の時間が短くなる
ようでしたら,キャッシュをクリアまたは小さくして、様子見てみます.
よろしくお願いします.
始めまして。
すこし、教えていただきたいのですが、ディレクトリのアクセス制御はできたのですが、
その中に置いてある、*.cgiをアクセス制御をかけたいのです。
つまり、http://192.168.0.2/hoge/hoge.cgiをアクセス制御したいのです。
現在は、http://192.168.0.2/hoge/をNetscape等でアクセスするとユーザ認証ウィンドウは
出るのですが、http://192.168.0.2/hoge/hoge.cgiと入力すると、そのまますんなり
hoge.cgiにアクセスできてしまいます。
なにか、よい方法はないでしょうか?
httpdはVer1.09aです。OSはWin98です。
よろしくお願いします。
能天気マスターさん、
ヘルパーが残る可能性があるのは、ヘルパーが起動したCGIプロセスが終了していない時かな、と思っています。
自分の整理のためにも書いてみると、、
ヘルパー自体は AN HTTPD からの信号を待ち続けますので、単独では強制終了以外では終了しません。
AN HTTPD との通信は、共有メモリとメールスロットというのを使っています。
HTTPD からCGIの信号がはいると、CGIプロセスを起動します。
AN HTTPD が終了する時にはヘルパーに終了の信号を出します。その時に終了できないという症状だと思っています。
あるいは、AN HTTPD(とヘルパー)が動いている時にWindowsを終了する場合、Windowsシステムからヘルパーが動いているDOS窓を閉じようとするのが先だと、ヘルパーが動いているので閉じられない、ということがあるのかもしれません。
と書いていたら、
いずれも子プロセスより先に親プロセスを終了させる話になると思うので、子プロセスを単独プロセスとして自立させればいいのかな、と思い始めました。試してみます。
>ぴゅあさん
ありがとうございました。
おかげで作動させることができました。
これからも質問させていただくことがあるかもしれませんがその時はお願いいたしますm(__)m
以前から使わせて頂いています。
1.0の時はありがとうございました。
順調にバージョンアップをしていてとてもうれしいです。
1.09を早速使ってみたのですが、boitaさんの指摘の「ヘルパーが取り残される」
と言う症状は私も出ています。本体自体の動作的には問題は無いのですが、DOS窓が
開きっぱなしでヘルパーが終了しません。
試しに、コマンドプロンプトから単独で実行した所、やはりカーソルが消えた状態にな
ってしまい、CTRL+C で強制終了するまで、プロンプトに戻ってきませんでした。
「状況によっては」と言う事ですが、何か考えられる状況と言うのは有るのでしょうか?
かなりの書込みが有り、対応も大変かと思いますので、次のバージョンを待ってみたい
と思います。全然お力にはなりませんが、がんばって下さい。
>あきらさん
「オプション」メニューの「一般」を選んぶと「一般」タブが開いていますよね。
「.pl,.cgiの実行プログラム」の項目は初期値で「jperl」となっていると思いますが、そこ
に入れてください。
>すーぱーまんさん
過去にレスしたことがあるのですが、探し出すのが面倒なので再度書いておきます。
あきらさんへのレスと同じ方法で「一般」タブを開くと「ドキュメントルート」と「ポート」
の下にチェックボックスとエディットボックスがありますよね。
まずドキュメントルートにドキュメントのルートとなるフォルダ(そそままやねん(゜-゜)\(-_-メ)バキッ)
を指定します。例えば、EドライブにWWWというフォルダを作っていたとすれば(注:インターネット
に出す予定もあるなら特に専用のフォルダを作っておくことをお勧めします)、ここに
「E:\WWW」のように入力します。
チェックボックスの横にあるエディットボックスには「/~superman」とでも入力することと
して説明します。その右の「-> ドキュメントルート\」の右のエディットボックスは初期状態
で「public_html」となっていることでしょう。
E:\WWWフォルダにpublic_htmlフォルダを作って、この中にindex.htmlを始めとする全ての
HTML文書ファイルを格納します。
入力後OKボタンを押して再度見ると「エイリアス」タブには、/~supermanに対してE:\WWW\public_html
と表示されている筈です。
これにより例えばhttp://127.0.0.1/~superman/とするとE:\WWW\public_htmlフォルダ内の
index.htmlが呼び出されることになります。
こんなところで解りますか?
因みにhttp://127.0.0.1/ではE:\WWWフォルダ内が見えます(だから専用のフォルダを作った
方がよいということです)。~supermanがpublic_htmlに置きかえられると考えても良いでしょ
う。
始めましてhttpdを始めたんですがエイリアスの仮想パスの設定のところで躓いてしまってます。
おなじPCでindex.htmlからEドライブへハイパーしてEドライブからファイルを引っ張れるようにするには、
一般設定の仮想パスと実行パスを教えていただけないでしょうか?
よろしくお願いします。
>ぴゅあさん
アドバイスありがとうございます。
で、「C:\Perl\bin\Perl.exe」←これはどこに入れたらよいのでしょうか?
すいめせん、超初心者でしたm(__)m
吉田さん、
それはちょっと深刻ですね。キャッシュも使っていますか?
cache.log はどんな具合でしょうか?
中田さん。こんばんは。
先日のANhttpだんまりの件ですが,その後1日1回ずつぐらい起きています。
ちょっと気がついたのですが,メモリがどんどん増えていっています。
起動時には約7MBだったものが、12時間後には約40MBまで増えています。
大たい15-24時間ぐらいで応答なし、もしくは接続待機中で、ANhttpの画面は真っ白
ってところでしょうか?
現在様子見をしながら調査中です。
前回書き忘れましたが,サービスとして使用しています。
現在判明している状況はこんなところです。
何かわかりましたら,また連絡します。
kmさん、
2番目以外はチェックなしがデフォルトなので、そうなるのは納得です。
次バージョンで直せると思います。風邪やインフルエンザにかからなければ24日の予定です。
boitaさん、
状況によってはヘルパーが取り残されることはあるかもしれません。
VxD云々は気持ち悪いですね。
Win98で AN HTTPD の表示が"タスクバー上"の場合の話でしょうか?
TAKUさん、
ちょっとわかりませんが、<IMG SRC="counter.cgi"> やあるいはSSIのカウンタでしょうか?
カウンタが </BODY>を出しているとか。。。?
中田さん、お世話になっております m(_ _)m
#このすぐ下のコメントを書かれているboitaさんと同じく、体調悪化のため2日ほど
#静養しておりました。ご連絡が遅れてしまい申し訳ありません。
#にしても、たった2日間でこの書きこみの量...すごい (^^;)
>ただその場合は他のチェックも保存されないことになるのでそのあたりを確認
>してもらえますか?
さっそく確認しました。(OK=保存された、X=保存されないを示します)
*****************************************
オプション/一般タブ
"POSTメソッドを除く" = ×
"拡張子.dll をISAPIで実行" = OK
"EXE形式の cgiを実行する " = X
"#! の行を調べる " = ×
*****************************************
確認は、Ver1.09aでのみ行いましたが、もし1.08での確認が必要な場合や
上記4点以外にもチェックが必要な個所がありましたらお知らせ下さい。
追試いたします m(_ _)m
ご面倒をおかけいたしますが、引き続きよろしくお願いいたします m(_ _)m
中田さん、RESありがとうございました。
カゼで寝込んでる間に鬼の様にカキコが増えてるので、ビビってしまいました。
似たような報告が他の方から無いという事は怪現象は私だけでしょうか?
「ウィンドウをアクティブにする」というのはまさしく「ウィンドウをクリックする」です。
初心者なもので変な用語の使いかたしてすみません(T_T)
タスクバーで動作している所をクリックしても他にウィンドウが開いているとanHTTPdが灰色で開く事があるんです。
「タスクバーからクリックして開いたウィンドウをさらにクリックして青色にする」と言いたかったんです。
一度PWSをインストールしたのがいけなかったんでしょうか?
ときおり「VxD−−−で〜」ってエラーもでます。(すみません、記録しといた紙を紛失)
自分と同じくローカルで「スタートアップで起動して何もせずに終了するとHelperが落ちない」人はいないんでしょうか?不安だ(T_T)
ではではぁ〜
ども、はじめまして。Ver1.08から使わせてもらっています。
掲示板等のCGIのチェックなどで とても重宝しています。
さて質問なのですが、CGIでカウンタ機能を使うと、なぜかそのソースから
先を 出力してくれません。
他のCGIの機能は使えるのですが、どうしてもこれだけは駄目みたいです。
設定が 悪いのでしょうか?
大山さん、
AN HTTPD の POP3のゲートウェイはそれぞれ1サーバ1ポートに限られます。
AN HTTPD をもうひとつたちあげてそれなりに設定すればできるかもしれません。
吉田さん、
再度発生するようでしたらまたお知らせください。
クッキーについて
1.09a でクッキー(Set-Cookie:)の扱いにミスがありました。
週末予定の次バージョンで修正します。
ぴゅあさん、早急な回答ありがとうございます。
早速試したところ、無事に開く事ができました。
ありがとうございました。
>あき.さん
確かIPアドレスに192.168.0.0は使えなかったような?
うううう 資料が何処かに埋もれて見つからない....ですが
このほかにも192.168.0.127, 192.168.0.255は確か別の意味があって使えなかったと記憶
しています。これはNetWareでも同様(というよりNetWare自身にはIPアドレスは関係しない)
と思うのですがどうでしょうか?
クライアント1を192.168.0.1,クライアント2を192.168.0.2のように(サーバと衝突
しないこと)変えてみてはどうなのでしょうか?
NetWareは忘れてしまいましたがTCP/IPとは別物であったような?だから、NetWareではLAN
環境として動いていてもIPアドレスの設定ミスにより動かないように思うのですがどうでしょ
うか。
クライアント1で動いたのは(たしか)*.*.*.0はループバック(だったかな?)に割り当
てられているからではないかと想像してみたりします。
これ以外(サーバ側など)の設定は全く関係ない(必要ない)筈と思います。
的外れでしたらごめんなさい。
AN HTTPDを使わせていただいておりますが、
どうもうまく動作しないので教えてください。
サーバ: IntranetWare(NetWare)
PC IP OSクライアント1にAN HTTPDをインストールしてあります。
クライアント1(AT) 192.168.0.0 Windows95
クライアント2(AT) 192.168.0.1 Windows95
>あきらさん
それは、Perl.exeへのパスが通っていない所為ではないでしょうか?
デフォルトのフォルダへインストールしたなら、General(オプション―一般の一般タブ)
のところで「C:\Perl\bin\Perl.exe」と指定すれば良いはずです。
因みにjperl.plってCGIソースと同じ所に入れていたりする人が多いのでしょう。
σ(^ー^)は「C:\Perl\lib」に「i386-win32」のようなフォルダを作って、jcode.pl,
cgi-bin.plを入れて使っています。
これにより大抵のプロバイダのサーバにあるこれらのファイルと同じ状態(記述)で実行
することができる(require 'jcode.pl';を変更することなく使える)ので、プロバイダの
サーバにアップする前にテストしたい場合や、各CGIがあるフォルダにコピーする必要がない
という点で有効でしょう。大したことではありませんが、余計な調整をしないで済むというこ
とはミスが防げていいでしょう。
書き始めてから数時間が経っている(PowWowやりながらでした。ハイ(^_^;))ので、既に
レスがあるかも知れませんが、一応書いてしまったので残しておきます。
かすい様>
ご指導ありがとうございます。
とりあえず、Jperlはアンインストールすることにしました。
また結果をお知らせします。これからもよろしくお願い
いたします。
おひさしぶりです。
たかさんの投稿を見て、そういえば、私も1.09aを入れた後チャットを起動してみたら、クッキーが消えていた事を思い出しました。
しかし2回目以降(?)はちゃんと渡っていました。
何故消えたのかがちょっと不思議ですが・・・。
クッキーが消えたのはゆいちゃっとの人工無能版です。
今見てみたところ、他の、掲示板などのクッキーも消えているようです。
もし必要でしたらCGIの中からクッキーの取得部分(?)を書き出しますので言って下さい。
それにしても、何故クリアされるのでしょう・・・?
すいません、超初心者です(^−^;;
ローカルでcgiを動かそうとすると
Error 500
CGIエラー−以下のコマンドラインを実行できません:"perl c:\www\aki\○○○.cgi
このような表示が出ます。
どのようにすればよいのでしょうか。
お願いいたします。
こんにちは。
みなさん 書かれているようですが、
1.08から1.09aに変えたところ 当方でも
クッキーが使えなくなってしまいました。
症状も同じで wab上だと同じスクリプトでクッキー保存されますが
ローカルでやると 駄目みたいです。
環境は WIN98 IE4.01 Perl for Win32 Build 316 てなとこです。
PerlISはつかっていません。
かすいさんへ
お世話になっています。
Perlの環境書くのを忘れていました。
お手数かけました。
>パターンマッチの[]の中とは違いますので、「-」や「,」は「\」でエスケープ ・・・
ありがとうございます。
テスト中(クッキーの件)だったため、一応エスケープしてやっていたところを、
C&Pしてしまい。。。。(^^;;)
やはりこれは1.09aの問題なのでしょうか?
とりあえず、サーバ上でクッキーは問題無く動いているみたいなので、何とか大丈夫です。
もしバグだとしたら、中田さん、よろしくお願いします。
中田さん はじめまして
最近、"AN HTTP SERVER"を使い始めた初心者です。基本的な動作は順調なのですがどうしてもわからないことが一つあります。
ゲートウェイ機能を使って会社のメールサーバとやり取りしてますが、そのサーバを経由して別の商用サーバのメールボックスからメールを取り出したいのですがうまく出来ません。どうもPOP3のポートを変更しなきゃいけない様なのですが、"AN HTTP SERVER"には1ポートしか指定できない様に思えます。どうにかして、もう1ポート開くことは出来ますか?
全くの見当違いでしたらスミマセン (^^);
(環境)
社内に二つのローカルネットワークがあって、"AN HTTP SERVER"をつかって別のローカルネットワーク上のメールサーバ・WWWサーバに接続してます。外とはさらにプロクシサーバを経由して出ていっています。
中田さん。こんにちは。
Anhttp1.09aでとても不思議な現象が発生しました。初めての現象です。
現象としてはAnhttpのプロセスは動いているのに、接続に行くと
「サーバが見つからないか、または DNS エラーです。」
と表示されます。(IE5.0)
なんかhttpのポートをクローズしちゃっている感じです。
Proxyとしても使っているのですが,当然きちんと動作しません。
Errorログを見たのですが,よくわかりません。(^^ゞ
最後に出ているエラーはほかのところでもあるので、関係ないかなぁ?
必要であればログ送りますので,連絡ください。
とりあえず,ANhttpを再起動しなおして、動作は正常に戻りました。
こんなこと、皆さんのところではありませんか?
尚、環境は以下の通りです。
WindowsNT Server 4.0 + SP3 + IE4.01
CPU PentiumII 300*2
メモリ128MB
どうも、中田さん。
>なるほど、そうすると症状は前と同じということですね。
>ファイルアクセスの競合ではではなくアクセス動作自体の問題のようです。
>NTだと遅延書き込みというのがあるようなのでその関係でしょうか
そうですね、症状は前と変わらないということです、ただ、前回書いたんですが
perl.exeのビルドが316から509にかえてまる2日がたったんですが、FTPでの読み書きがあっても
問題無く動作しています。
遅延着込みのせいかどうかは分からないですね・・ただ、Perlのビルドのせいかも知れませんねぇ・・
それか、書き込み具合を中田さんが以前の状態に戻して頂いたのが良かったのか分かりません。
とりあえず言える事は、1日に多くて数回、少なくて3日に1回ぐらいはなっていたのが
今は問題無く動作していると言う事です。
何かあれば報告させていただきます
田中知代さん>
とりあえず、設定の「.pl,.cgiの実行プログラム」のところを、「jperl」
から「jperl -Llatin」にしてみてください。最初の「L」は小文字にすると
別の意味になりますので、必ず大文字にして下さい。また、「latin」は
「ラテン」のことですので、1文字目は「アイ」ではなく「エル」です。
これで、jcode.plを使うCGIがうまくいくようになれば、それでいいと思います。
ただし、jperlの中にも、それに対応してないものもあります。そういう場合は、
perlを別途インストールして、設定の「.pl,.cgiの実行プログラム」のところを、
「jperl」から「perl」切り替えるしかないと思います。
もう、インストールはお済みなのでしょうか?
お済みでなければ、oidonさんのところでもインストール手順を含めて詳しく紹介
されていると思いますので、そちらの通りにインストールして下さい。
そして、perlに切り替えた場合のアンインストールですが、HDDに余裕がある
のでしたら、どのjperlかにもよりますが、1〜5M程度しかないと思いますので、
別段、アンインストールするような必要はないと思います。
でも、どうしてもアンインストールしたいということでしたら……といっても、
perlのうち、日本語処理に対応させているものを 概して jperlと呼ぶようになって
いますので、jperlにもいろいろあるので、どの jperl をインストールされたのか
分からないのですが。
まず、syseditを使われたようですが、AUTOEXEC.BATを変更されたのでしょうか?
これは、そのままでも問題ありませんが、元に戻した方が好ましいです。
そして、もし、jperlに「uninstall.bat」が付いるのなら、それを実行すれば設定
されたレジストリを消してくれると思います。
ただし、付属してないものもあります……そういう場合は、とりあえずレジストリ
のことは忘れましょう。(^^;;
大抵、たった1〜2個しかレジストリを使ってないと思いますので特に気にする
必要はないと思います。
また、元々、jperlによってはレジストリを使わない(使えない)ものもあります。
あとは、そのまま、jperl.exeおよび同梱されていたファイルを削除して下さい。(^^;;
--------
ちなみに、jcode.plの最新版は、下の場所にあります。
ftp://ftp.iij.ad.jp/pub/IIJ/dist/utashiro/perl/jcode.pl-2.10
たかさん>
≫有効期限は、time関数使ってます。
えっと、ソースを見させていただきましたが何も問題ないみたいです。
あと、gmtime/localtimeが使えないということは、まずないと思います。
これ自体は、単なる変換関数なので環境に依存などしませんから。
というわけで、有効期限の問題ではなさそうです。(^^;;
で、おっしゃる通りの状況を再現できました。(^^;;
ずっと、PerlISでやっていたので再現できなかったのですが、PerlISを切って、
perl.exeにすると出ました。ほんとビックリです。(笑)
「name=value」を送ったら、「Set-Cookie: nam」と送ってきていました。
その結果、どういうわけか、ブラウザは「=nam」とみなしているようです。(^^;;
でも、1.08では正常なので、原因は今回の改良に起因するもの??
--------
あと、問題とは関係ないのですが……ダブルクォートによるクォートの中で、
パターンマッチの[]の中とは違いますので、「-」や「,」は「\」でエスケープ
せずに下のようにしても大丈夫です。
$Date_gmt = sprintf("%s, %02d-%s-%04d %02d:%02d:%02d GMT", (以下略)
はじめまして。初心者の知識しかないのに、無謀にもホームページの制作をはじめてしまい、
どうしてもCGIスクリプトを組み込まなければならないので、AnhttpdとPerlをインストール
してオフラインでの勉強を始めました。その際、JPerlもいれ、Anhttpdの初期設定一般で、
for pl.cgi→Jperlとし、syseditでのパスもJperlにしました。ところがsampleCGIはほとんどPerlとjcode.plの組み合わせで、試行エラーになることが多く、Jperlとの相性が悪いと
いうことを後で知りました。JPerlはアンインストールしたほうが良いのでしょうか?
それとも、初期設定とパスをperlにかえればよいのでしょうか?アンインストールの方法も
わからず、困っています。未熟者ですので、レジストリはこわくていじれません。
jcode.plは、oidonさんに教えていただいて、v1,9を使っています。
どうか、一番良い方法をおしえてくださいませ。よろしくお願いします。
、
もしかして、gmtimeは取得出来ないのでは。。。
と思い、localtimeでもやってみましたがだめでした。
友人宅、win98でも同症状が出ます。
以上、追記でした。
かすいさん
レスありがとうございます。
有効期限は、time関数使ってます。
ソースは、ちょっと長くなってますが、
local(@Dotwg) = ('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday');
local(@Monthg) = ('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
local($secg,$ming,$hourg,$mdayg,$mong,$yearg,$wdayg,$ydayg,$isdstg) = gmtime(time + 30*24*60*60);
$Date_gmt = sprintf("%s\, %02d\-%s\-%04d %02d:%02d:%02d GMT",$Dotwg[$wdayg],$mdayg,$Monthg[$mong],$yearg +1900,$hourg,$ming,$secg);
こんな感じです。
ブラウザのチェックも行いましたが、
僕の場合クッキーは、
COOKIE_NAME=NAME:VALUE,NAME2:VALUE2;
としてるのですが、ブラウザでは、
127.0.0.1のマシン〜中略〜送ります
=COOKIE_NAME
と出るのです。
つまり、COOKIE_NAME が入るべきところに空白(それ以前でメタ文字等はエスケープ済み)
VALUEが入るべきところに COOKIE_NAME が入ってしまうのです。
この現象はローカルでのみ発生するので、?な訳です。
以上、説明不足かもしれませんがよろしくお願いします。
たかさん>
少なくとも、うちでは、1.09aでも正常にCookieは機能しています。(^^;;
Cookieを受信しているかどうかを簡単に調べるには、ブラウザの設定に
「Cookieを受け取る前に警告する」といった項目があると思いますので、
それをチェックするとブラウザが受け取っているかどうかは明確に判断
できると思います。
それで、ちゃんと送られてきているのが確認できるようなら、有効期限が
あやしい(過去や無効な内容になっている)ように思います。
そのような場合、疑うとすれば「$Date_gmt」の中身くらいだと思いますが、
「$Date_gmt」はどのように設定されているのでしょうか?
SSIではなく、CGIのようですので、環境変数DATE_*(DATE_LOCALやDATE_GMT)
から設定されているようなことはないと思いますが……。
(AN HTTPDでも、Apache等でも、DATE_*は SSIでのみ有効だと思いますので。)
(ちなみに、環境変数の日付の形式はサーバあるいは環境によって異なると
考えていた方が良いと思います。)
timeや$^T等から、自力で時刻を設定されているなら、ここに書いている
ことは、日付記述の形式に間違い等がない限り関係ないと思いますが、
もし、cgi内で完結せずに、date等の外部コマンドに頼っているのなら、
それが原因ではないかと思いますが……どうでしょう?
すみません、下のは受け取るではなく、送るの間違いでした。
それではよろしくお願いします。
たかさん、
Cookie の扱いは変えたつもりはなかったのですがミスがあったかもしれません。
見直してみます。
Ver 1.09aをDLして使わせていただいていますが、
COOKIEは使用できるのでしょうか?
Ver 1.08の時は問題なく使用出来たのですが、
Ver UPしたら、SET COOKIEで送っても、
きちんと受け取ることが出来ません。
例えば、
$Cookie = 'TEST';
$Cook = "Name\:$FORM{'Name'}\,Mail\:$FORM{'Mail'}";
print "Set-Cookie: $Cookie=$Cook; expires=$Date_gmt\n";
直前に、テスト用print文を噛ませたところ内容はきちんと入っていますが、
ヘッダを送った瞬間に、内容はクリアされているようです。
言語はPerlで、UNIXサーバ(SUN OS)では動作確認済みです。
初歩的な質問かもしれませんがよろしくお願いします。
km さん、
現在私の手元にNT3.51がないので確認は難しいのですが、ソースを調べた限りでは1.08でNT3.51 用の処置を抜かしてしまったところがあったので、おそらくそこが原因だろうと思っています。
ただその場合は他のチェックも保存されないことになるのでそのあたりを確認してもらえますか?
たとえば、オプション/一般の一番下の "POSTメソッドを除く" をチェックしてhttpd(1.08/1.09a)を再起動したときチェックされているでしょうか?
再起動でそこがチェックされていなければ、今考えているところが原因ということで間違いないと思いますので。
ZEROさん、
なるほど、そうすると症状は前と同じということですね。
ファイルアクセスの競合ではではなくアクセス動作自体の問題のようです。
NTだと遅延書き込みというのがあるようなのでその関係でしょうか。。。
War-FTPdを使って手元で再現させてみないと難しそうです。
みやび さんへ
>私の環境はWinNT4.0とWin95ですが、内容を設定した後で、自動で再起動かかりますよね?
>特に問題ないみたいなんですけど(・_・;)
の件ですが、
>NT3.51 固有のエラーで、レジストリの読み込み時の問題のようです。
と、中田さんより回答が寄せられていますので、OS固有の問題らしいです。
詳しくは、この下にある中田さんから私へのコメントをご覧下さい m(_ _)m
中田さん&kmさん、ありがとうございます。
中田さんへ
思い出しました!ありがとうございます。
kmさんへ
私の環境はWinNT4.0とWin95ですが、内容を設定した後で、自動で再起動かかりますよね?
特に問題ないみたいなんですけど(・_・;)
中田さんいつも言葉たらずですみません。
FTP読み書きの話ですが・・・
FTPから読み込み又は書き込みが違うHDDに対して書き込みをおこなっていたり読み込みを
おこなっている時に、AnHTTPDがFTPが読み書きしている違うドライブに対してCGIで書き込み
もしくは動作(カウンタ等)が動いていると発生しやすいです。
例なんですが、D:ドライブにFTPで1M前後のCGを数枚あげている最中に、E:\wwwにある
AnHTTPDがwebからの呼び出しに反応しカウンタアップや、掲示板、チャットプログラムに
(e:\www\chat等)書き込みを行った場合にたまにおこる事があります。
私も今回のバージョンでなったのは一昨日に入れ替えて、1回だけです。
前より確実に頻度も少ないですね。昨日も昨日で、perlのビルドが低いかとおもいまして、
Perl for Win32のビルド316バージョンからActivePerlをいれ、ビルド509にかえてみました。
それから20時間ほど立ってますが、問題はないみたいですね・・・
CGI/SSIも動いていますし、今の所はこの状態をみてみます。
自己レスです。みなさん申し訳ありません。
>「Ver1.08の時点で既に現象を直接お知らせしている中田さんへ、再度直接お知らせするよりは、
>こちらで報告させて頂いた方が情報共有という面からより良いと思った」
という個所ですが、
「Ver1.08の時点で既に現象を直接お知らせしている中田さんへ、Ver1.09aでの同じ現象を再度直接お知らせするよりは、
こちらで報告させて頂いた方が情報共有という面からより良いと思った」
という意味です。わかりにくい文章で申し訳ありませんでした。
中田 さんへ
お世話になっております。
>#メールの方はメールが集中した時にまぎれて結果的に無視したようになってしまいました。申し訳ありませんでした。
いえいえ、けっしてそんな事はありません。
中田さんから「調べてみますので少々お待ち下さい」旨の丁寧な返信を頂いております。(^-^)
私が
「作者の中田さんに直接メールでお知らせさせていただいたのですが、
どうもこちらで報告させて頂いた方が良いようなので、改めて報告させていただきます。」
等と書いてしまったので気を使っていただいたようです..m(_ _)m
上記の文章は、
「Ver1.08の時点で既に現象を直接お知らせしている中田さんへ、再度直接お知らせするよりは、
こちらで報告させて頂いた方が情報共有という面からより良いと思った」
という趣旨で、他意はありませんでした。
ご迷惑ばかりをおかけしておりますが、引き続きよろしくお願いいたします m(_ _)m
みやびさん、
(1)のIPによるアクセス制限のパスは "/" にしておくのがよいでしょう。
"/" とした時は仮想ルート(ドキュメントルート)以下すべてのパスでのIP制限が有効になります。
(2)と(3)は、それでよいと思います。
何かおかしければ、さらにお問い合わせください。
km さん、
NT3.51 固有のエラーで、レジストリの読み込み時の問題のようです。
次のバージョンで対処します。
#メールの方はメールが集中した時にまぎれて結果的に無視したようになってしまいました。申し訳ありませんでした。
ZERO さん、
NTの100%の話は私の方でうまく再現できていないので、その関係では、できる限り 0.99g の状態に戻したくらいです。
「FTPでの読み書きからの状態で、CGIが動作」というところの意味がよくわかりません。
FTPで書き込み中に同じファイルを使うCGIが動作する、ということでしょうか?
100%でほとんどハングアップに近い、ということは無限ループか永久待ちの状態だと思うので、Abort(10054)エラーは関係していないと思います。そのエラーはクライアント(ブラウザ)の中止ボタンを押したか途中で別のURLへのアクセスをした場合に発生します。
関係ないと断言はできませんが。。。。
boita さん、
helper.exe は 最初の起動でIMEなどをロードするのが関係しているのかもしれません。改善してみます。
「ウィンドウがアクティブ」というのは、一度クリックするという意味でしょうか?
SSI の出力検査は、そうですね、現状ではほとんど意味がないようです。
IEの起動が先行してしまうことの回避策はちょっとわかりません。
千木さん、
Windows98 でしたら ヘルパープロセスのチェックをはずして、cgi/cgisample.html のバッチファイルのサンプルが正常に動くかどうか確認してください。
それは正常だとするとナゾです。
最初の helper.exe を起動できないということだと思うのですが、COMSPEC に指定されている command.com のプロパティが関係しているのかもしれません。
みやび さんへ
>あ・・・でも1.08ってアクセス制限部分おかしいんですか?(・_・;)
とりあえず、上記の部分だけ...
私の環境(WinNT3.51)では「AN HTTP」を一度終了させ再度起動するか、
サーバそのものを再起動させると「アクセス制御」のチェックが外れてしまいます。
つまり「再起動するまで」はアクセス制御OKです。(^^;)
Ver1.07では、ちゃんと「アクセス制御」のチェックが保存されているようなので
とりあえず、こちらを使用してしのいでいます。
Win9x での動作は検証していないのでわかりません。
それでは。
申し訳ありませぇ〜ん。あれだけ教えていただいたアクセス制限なんですが、バージョンアップして
久しぶりにやあってみたら、スッコーン!と抜けてしまいました(^^;)
というわけで、もう一度教えて下さい。
@アクセス制限のパスは何を指定すればよかったですか?
AIPは共通部分のみで、後は*でよかったです?
Bユーザ認証は、登録したIDを指定すればよかったですよね?
本当にすみませぇ〜ん(^^;)(;^^)
あ・・・でも1.08ってアクセス制限部分おかしいんですか?(・_・;)
はじめまして。Ver1.08でのアクセス制御の不具合について、
作者の中田さんに直接メールでお知らせさせていただいたのですが、
どうもこちらで報告させて頂いた方が良いようなので、改めて報告
させていただきます。
現象:「アクセス制御」をチェックした後、AN HTTPを再起動させると
チェックが外れてしまい、アクセス制御ができない。
確認:Ver1.08より現象発生。Ver1.07では発生せず。
WinNTでのサービス、非サービス起動共に発生。
現状:Ver1.09aでも上記現象が発生。
とりあえず、Ver1.07を使用中。
OS:WinNT3.51 + SP5
以上、報告せせていただきます。
お手数をおかけいたしておりますが、よろしくお願いいたします。m(_ _)m
すみません、多重投稿申し訳ないですCPU占有率の件かどうか分からないですが・・
errors.logのほうにこのようなものがエラーとして残っていました。
Mon Jan 18 00:45:27 1999 Client Abort (or SOCKET_ERROR 10054) detected in processing Header 1 for Thread 0
Mon Jan 18 00:45:27 1999 Client Abort (or SOCKET_ERROR 10054) detected in processing Header 3 for Thread 0
Mon Jan 18 00:45:27 1999 Aborted in procHeader(3)
なにか関係がありますかねぇ・・それか、私のHTMLなどのプログラムの仕方が悪いんでしょうかね・・
すみません、なにかお知恵を貸していただきたいです。
すみません、先程書いた事なんですが、CPU100%の件ですが、やはりなるみたいです。
サービスとして起動していましたがログインした状態でみてみるとカミナリが走った状態で
ハングアップを起こしているみたいです。
その状態になると、NTが重くスタートを押しても10分ぐらいかかり、
修了するまでに30分ぐらいかかるみたいです。
運がよければDr.watsonがでてエラーで強制終了してくれるからサービスだけでもう一度
始めればいいんですが・・
サービスパック4を入れてから頻度が上がったような気もします・・
ただ、問題としては・・ネットワークからの読み書きはハングらなくなったものの、
FTPでの読み書きからの状態で、CGIが動作すればなるみたいですね・・
もう一度検証はとってみます。
お疲れ様でしたぁ、さっそく1.09a使ってみました。
Windows98なんですけどhelperがヘン(T_T)
起動したては固まってるみたいで、終了や再起動の際、自動シャットダウンしてくれません。
ウィンドウを開き一度でもアクティブにすると、その後はシャットダウンできます。
(ウィンドウ開いてもアクティブにならないのは普通なんですか?)
その事と関係有るのでしょうけど、起動したてはCGIやSSIのサンプルなど動きません。
出力を検査すると「標準出力に何も出ていない」らしいです。
CGIやSSIについては二度目からは正常に機能します。
また、SSIの出力検査はどのような出力があるのでしょう?
CGIで異常があると標準出力と標準エラー出力を表示するHTMLが出てきますよね。
先の例でSSIの場合は何も出てきません。最初のSSIで作られる部分のソースが欠けた状態になるだけなので、やはり標準出力に何も出ていないのかと思われます。
(意図的にエラーを起こすSSI組めばわかるんでしょうケド)
あと、これはWindows98の事になりますけど、
anHTTPdとIEが動いている状態で再起動するとIEに先を越されてエラーになりますよね。
スタートアップの順番を変えられたりすれば回避できるんでしょうか?
すみません、素人的質問で(T_T)
長いカキコでした、ごめんなさい、ではではぁ〜
中田さんへ;
1.09aをDLさせていただきました。が、起動時に「ファイルc:\windows\system\conagent.exeが見つかりません…。」というエラーメッセージウィンドウが出ます。そしてブラウザでCGIスクリプトを起動しようとしても、これまた起動しません。どうしたものでしょうか?
中田さんバージョンアップとデバッグお疲れ様です。
現状の報告をさせていただきます。
NTのCPU100%になる件ですが、前に必ずと言ってなった方法を試した結果、
100%にならなかったです。
Win98リソース問題以外にもこちらのほうもなおしていただいたのですね。
ありがとうございます。
まこちゃん、ならびに 1.09 をダウンロードした皆さんへ
失礼しました。ISAPIの標準出力の切り替えがおかしくなっていました。
1.09a で修正しましたのでよろしくお願いします。
AN HTTP Server 1.09を使用させていただきました。
動作がおかしいので報告させていただきます。
.plや.cgiをPerlIS.dllで動作させている環境で、Ver1.08の時には
エラーにならなかったのにVer1.09ではエラーが発生します。
<エラー内容>
ISAPI Error
Can't get any Response
Ver1.09を使用させていただきました。
Win98で動作させた場合、Ver1.08ではエラーが出なかったのに
Ver1.09ではエラーになってしまいます。
設定内容
・拡張子.dllをISAPIで実行 (チェックする)
・.pl,.cgiをPerlIS.dllで実行 (チェックする)
・POSTメソッドを除く (チェックしない)
※後必要な内容があれば言ってください。
takaoさん
すみません。1.08 は新規に認証を追加すると強制終了されてしまいます。
1.07aを使ってセットしてもらうか、今日明日中に出す予定の 1.09 を待っていただくかです。
というわけで、よろしくお願いします。
まずは自己フォロー。(^^;;
≫かすい kasui@flux.gr.jp 1999/01/15 01:32
≫【認証追加】
≫今度は右側の少し小さな「追加」ボタンを押して、認証名に「TEST AUTHORIZATION」
「右側」ではなく「左側」ですね。ごめんなさい。
--------
ぴゅあさん>
≫ なるほどWebではリダイレクトをそのような意味で使うのですか。
≫ METAタグを使った指定URLへ自動的に飛ばすやつですよね。たぶん。
METAタグの「http-equiv」は、いわば、HTTPヘッダをエミュレートするものです。
CGIでいうところの「Content-type」等々の部分と、HTML文書内のMETAタグの
「http-equiv」での指定を、クライアント(ブラウザ)側で同等にみなしてしま
おうというものです。
リダイレクトに関しては、本来なら、CGIやサーバがHTTPヘッダにリダイレクト
についての情報を書かないとリダイレクトされないところですが、CGIやサーバ
の力を借りなくても、ふつうのHTML文書でも、(もちろん、HTTPヘッダではなく)
HTMLヘッダにMETAタグを記述することによっても、ブラウザに、見かけ上は同じ
振る舞いをさせてしまうことができるわけです。
で、えむけいさんが言われているのは、サーバの負荷が高かったり、管理上、
別のアドレスを見てもらいたい場合等々……「指定したはずのアドレス」の文書を
送ってはくれずに、サーバが他のアドレスを見るようにブラウザに言ってくる
ことがあります。その時のことを指していますので、METAタグのこととは違います。
ブラウザが文書の取得を要求した時、最初にサーバが返してくる番号が200番台
なら要求は成功。400番台ならクライアント側のエラー。「404 Not found」等は、
よく見かけますよね。あと、500番台ならサーバ側のエラーです。これも、CGIを
試してたりしていると「500 Internal Server Error」とか見かけますよね。
ここで問題になるのが、300番台にあたる「Redirection」です。
そのどこが問題かというと、この300番台自体は悪者ではないのですが、METAタグ
によるリダイレクトの場合は、通常のHTML文書に違いないので応答は200番台です。
逆に、直接にリダイレクトが、つまり、その300番台の応答が送られてくる場合も
あります。そういった中でも、特にサーバ負荷等の「一時的理由」で300番台の
応答をしてきた時のものがキャッシュされると、次にアクセスした際にも、その
「一時的理由」による応答が呼び出されてしまい、すんなり本来のページにたどり
つけないわけで、明らかに正常な応答ではなく、300番台の応答なのに、これが
キャッシュされては不便だということだと思います。
そこで、このへんの応答の違いから処理を区別化できないかということだと思います。
≫ 暫くインターネットに入れない間に、かすいさんが活躍されているようで、色々詳しくご存知
≫で私の出番も必要なくなったようですね。(^^ゞ
うーん……詳しいっていうか、人が作ったCGIは使いたくなかったというか、自分で
作ってみたかったので、いろいろ調べつつゼロから伝言板とかを自作したくらいです。
というわけで、AN HTTPDの一般的設定や、perl4レベルのperl書きは一通りできますが、
同じperlでも、perl5となるとさっぱりですし、また、LANやらのネットワークまわり
のこととなると、なおです。
あと、NTや(Windows)98のことも分かりません。うちは未だに95なので。(^^;;
だから、分かる範囲のことや手元の環境で再現できる範囲のことなら、何らかの
コメントをすることはできますが、それ以外はムリです。(笑)
そもそも、CGI書き等は、あくまで趣味の副産物の更に副産物くらいの範囲なので、
根を入れてやるようなつもりはありませんし。(^^;;
--------
takaoさん>
≫下のOKボタンを押すと、強制終了されてしまうのですが、
これは分かりません。何が原因なんでしょうね。(^^;;
うーん……大ハズレかもしれませんが、httpd108d.zipまたはhttpd108d.exeのような
差分版ではなく、httpd108.zipまたはhttpd108.exeのようなフルパッケージ版にすると
ちゃんと動いたりするなんてことはないでしょうか?
既にフルパッケージ版をお試しでしたら&解決できなかったら、的外れですけど。(^^;;
何度も失礼します。
下の補足なんですが、自宅のマシンで試しても同じ症状が
出ましたので、このマシンだけが持ってる何らかの
不具合ではないと思われるのですが・・・
かすいさん
丁寧な解説、どうもありがとうございました。
見ながら設定しているうちに、言ってる意味がやっとわかりました(^^;
で、そのものの意味は理解できたのですが、
下のOKボタンを押すと、強制終了されてしまうのですが、
他に原因があるのでしょうか?
何回か解凍しなおしてやってみてはいるのですが、症状が同じで・・・
>えむけい
なるほどWebではリダイレクトをそのような意味で使うのですか。
METAタグを使った指定URLへ自動的に飛ばすやつですよね。たぶん。
ネスケではAlt+リロードのようでした(v4.5/Ja)。しかし、どれでも効くような気もしない
でもないので、裏技ページをまた探さないととも思いつつ(yahooでMozillaがキーだった筈)。
「その間もなくリダイレクト....」というのは、すぐに飛んでしまって、停止ボタンを押して
も間に合わないのでしょうかね。用途が判らないのでなんとも言えませんが。
暫くインターネットに入れない間に、かすいさんが活躍されているようで、色々詳しくご存知
で私の出番も必要なくなったようですね。(^^ゞ
それでは。
う、失敗。
タグも使えますってかいてありますけど>A<以外はエスケープされるようになっていませんか?
> リダイレクトというのはキャッシュの中身が表示されてしまうという意味のことでしょうか。
たとえばここにアクセスしてみてください。http://www.vector.co.jp/authors/VA003760/
Netscapeだと場所バーの表示がいつのまにかhttp://<B>hp</B>.vector.co.jp/authors/VA003760/になっていると思います。
Webサーバが応答ヘッダ(通常ブラウザでは見えない)に301か302という応答コードを返してLocation:で新しいURLを指定すると、ブラウザが自動的に新しいURLの内容を読みに行くことになっています。こういうのをリダイレクトと表現しました。
> IEでは判りませんが、ネスケでは
たしかNetscapeはShift+リロード、IEはControl+F5かリロードですが、この場合htmlを再ロードしたくてもその間もなくリダイレクトされてしまいます。インライン画像を再ロードする方法はあるでしょうか?
> それとも、An HTTPd側のキャッシュなのですかね?
私の要望でサーバが301や302の応答を返したときもAn HTTPdがキャッシュするようにようにしていただいたのですが、301や302は本来キャッシュすべきものではないのでこの際Cache onlyのときだけにしたほうがいいのではないかと思いました。って私が修正するわけではないのですが。
ごめんなさい、ちょっと補足させて下さい。(汗)
≫というか、インストール後、再起動されました?
「(AN-HTTPDのインストールとは関係なしに)PERLのインストール後」を指します。
aboutさん>
まず、
≫中田昭雄 nakata@st.rim.or.jp 1999/01/09 17:18
≫
≫(中略)
≫次に、".pl, .cgi の実行プログラム" のところは、perl.exe のフルパスで指定しておいた方が安心です。
≫たとえば、C:\www\perl\bin\perl.exe などと。
を、お試しください。(^^;;
というか、インストール後、再起動されました?
されてなければ、再起動しないとパスは通らないはずです。
でなければ、他の何らかの原因かもしれませんが、ちゃんとパスが通ってない
可能性が高いのではないかと思います。
takaoさん>
まず、
AN-HTTPDのアーカイブに含まれている、httpd-docsフォルダの下に
というか……
AN-HTTPDをインストールしたところの、httpd-docsフォルダの下に
options.htmlという文書があって、その中に「オプション/一般 - アクセス制御」
というところがあるので、ご一読下さい。
これで、お分かりになれば、それでいいのですが……
≫特定のhtml文章を、パスワード管理して、特定のメンバーだけに公開したいのですが、
≫どのようにしたらよろしいのでしょうか?
とのことですが、特定のメンバーだけに公開するというと、
・1つだけのユーザとパスワードを作って、それをみんなに知らせる
・ユーザ個別のパスワードを作って、それらのアカウントをまとめて制御する
・ユーザ個別のパスワードを作って、それらのアカウントをグループにまとめて制御する
どの方法をお望みなのでしょうか??
ちなみに、2番目と3番目の方法では設定や管理がユーザ数に比例して作業量が増える
ので複雑になります。
とりあえず、1番目の方法の場合は、オプションダイアログを開いて「アクセス制御」の
ページにして、
【ユーザ追加】
一番上の「アクセス制御」をチェックして、中央やや右の「追加」ボタンを押して、
(仮にですよ)ユーザ名に「test」、パスワードに「himitu」として、OKを押して、
【認証追加】
今度は右側の少し小さな「追加」ボタンを押して、認証名に「TEST AUTHORIZATION」
(何でもいいです)、パスに「/」、認証ユーザ/グループに「test」と書いて、
OKを押して、
【設定終了】
オプションダイアログ自体のOKを押して、さらに変更確認のダイアログが出ますので、
そこでもOKを押して、そして、そのサーバにアクセスすると、認証ダイアログが出て
くるようになっているはずですので、ユーザ名に「test」、パスワードに「himitu」と
入力して、OKを押すと、ちゃんと認証されることになります。もちろん、ここで
パスワードやユーザ名が間違っていればエラーメッセージが表示されます。
それから、2番目および3番目の方法は、ユーザ追加の繰り返しとこの応用ということ
になります。
あと、上の3つ以外にも、全く別の方法で、パスワードによる認証ではありませんが、
アクセス元のIPアドレスで制限する方法もあります。LAN内等の人にのみアクセス
を許したいような場合は、この方法の方が、パスワード入力の手間が無い分、アクセス
する人は楽かもしれません。もちろん、ユーザおよびパスワードの設定や管理が必要
ないので管理する側としても楽だといえます。(^^;;
ちなみに、いずれもフォルダ毎の制限になります。親フォルダ「/」でもいいですけど。
はじめまして。突然の書き込み、失礼します。
自宅サーバに挑戦してるのですが上手く行きません。
以下のようなコメントが出てしまうのですが原因が分かりません。
#!のチェックも外してるし、pathも通ってるみたいなのですが。
よきアドバイスをお願いします。
Error 500
CGI エラー - 以下のコマンドラインを実行できません : "perl C:\www\simple\public_html\hello.cgi ", errorcode = 2, No such file or directory
どうもはじめまして。最近始めたばかりの超初心者です。
今職場のLAN環境を利用して、ローカルエリアによるhttpサーバを構築しています。
当初どのようにしてよいのか全くわかりませんでしたが、このソフトのおかげで非常
に助かっております。
唐突ではございますが、何分わからないものですからお聞きしたいことがあります。
特定のhtml文章を、パスワード管理して、特定のメンバーだけに公開したいのですが、
どのようにしたらよろしいのでしょうか?
よろしくお願い致します。
>うーむ、なんなのでしょうね。
>AN HTTPD はそのエラーメッセージは出しませんから、ブラウザからリクエストが出て行く以前の問題だろうと思います。
>AN HTTPD は反応(稲妻マーク)していませんよね?
>
>FrontPageやPWSはこういう反応を返すのでしょうか。。。?
>また、再度完全にスタンドアロンの状態に戻すとOKなのかどうか。。。
分かりました。
いろいろ試してみます。
もかさん、
それはよかったですね。質問は歓迎ですのでどうぞご遠慮なく。
hiro さん、
ぴゅあさんのコメントにある通りで、たとえば、Perl for Win32 なら Pw32a316.zip は Alpha CPU 用なのでこういうエラーになるかな、と思います。
Pw32i316.exe など Intel x86 用のものを入手してください。
Yosshi さん、
うーむ、なんなのでしょうね。
AN HTTPD はそのエラーメッセージは出しませんから、ブラウザからリクエストが出て行く以前の問題だろうと思います。
AN HTTPD は反応(稲妻マーク)していませんよね?
FrontPageやPWSはこういう反応を返すのでしょうか。。。?
また、再度完全にスタンドアロンの状態に戻すとOKなのかどうか。。。
まこちゃん、boita さん、
どうもありがとうございます。なんとか頑張ってみます。
Win98でのリソースの話は、ぴゅあさんの言われるとおりOSの問題である可能性もあるのですが、なんとか回避できるのではないかと思っています。
はじめまして、もかといいます。
おいどんさんの所からきました。
まことさんと同じようなエラーがでていてつまづいていました。
まことさんへの回答を読み無事私も表示されました。
これからいろいろ挑戦してみたいと思います。
ちょくちょくこのボードを読んでそれでもわからない時は
教えてください。よろしくお願いします。
お久しぶりです。
まず、NTの100%のお話ですけどProcesser Timeが100%になってしまうということでしょうか?
どれのことをおっしゃっているのか判らないのではっきりしたことを言えませんが、NTは95/98
よりもちゃんとProcesser Timeを割り振ってくれて全体的に重くなることがないように設計され
ていますがプロセスが1つになると100%で動こうとするように作られています。
という話ではないんでしょうね。きっと。NT Workstationを使われているのだとしても大きな
違いはないのだと思います(たぶん)。
>坪本毅美さん
VBをインストールされたときにPWSもインストールされたんですね。VSしか持っていないので勝
手にインストールされてしまうのかどうかはわかりませんが。
補足ですが、たぶんポート8080したときに動かないというのは、http://192.168.0.1:8080/~xxxx/
などのようにポートを指定したのでしょうか?
デフォルトではほとんどのものはポート80に設定されているものと思います。PWSを停止しない
と駄目だったのはそのポートをサーバが複数使おうとしたためです。
PWSも使いたいのであれば、メインで使う方をポート80,もう一方をポート8080などのように
設定すれば解決するはずです(いちいち停止させるなどの手間を省けるという意味)。
>えむけいさん
リダイレクトというのはキャッシュの中身が表示されてしまうという意味のことでしょうか。
IEでは判りませんが、ネスケではAlt,Ctrl,Shiftのどのキーだったか忘れてしまいました
が、このキーを押したままでリロードボタンを押すとキャッシュを無視して強制的にサーバか
ら読み直すはずです。この意味でしたら試してみてください。
それとも、An HTTPd側のキャッシュなのですかね?
>gunjiさん
私の持っているPerl5のマニュアルには「$^O」に付いて記述されていないので判りませんが
たぶんPerlがサーバの環境変数から取り込んでいるのだと思います(そうでないと意味を持
ちませんし)。従って、OSによっては空文字が帰ってくるでしょう。そしてこれをCGI内で
データとして利用しようとしても(特殊な用途があるなら別ですが)自分のサーバの情報が得
られる(つまり毎回同じ)ことになる筈ですので意味はないのでしょうね。
>Yosshiさん
詳しくは判りませんがお使いのブラウザは何でしょうか?(バージョンも)
>hiroさん
98とはNECのPC-98のことでしょうか?それともDOS/V機でのWin98などのことでしょうか。
Winも98になって98だけでは判断付き難くなってしまいましたね(^_^;)。
エラーからいくとダウンロードしたPerlの対応マシンが間違っています。DOS/V機であれば
I386(となっていたと思う(^_^;))版を使用しなければなりません。たぶん、PC-98だったと
してもI386で良いのだと思いますが。
補足ですが、日本語という言葉にはやはりひかれるのだと思いますが、私としてはJPerlで
なくPerl+jcode.plの組み合わせで使うのがお勧めだと思います。自分でソースコードを書
くとしてもまずローカルでテストしてからプロバイダのサーバにアップしようと考えている
なら多くのサーバはPerl+jcode.plでしょうし、インターネット上に多くあるCGIのソース
コードをダウンロードしてきて利用,勉強するには比較的容易に動かしてみることができると
思います(JPerlは何処がどう違うのだろうか(^_^;))。確か、JPerlを使うためにはPerlを
インストールしてからJPerlをインストールしなければならなかったと思うので、Perlの
インストール手順が日本語化されて判りやすくなるわけでもありませんしね。
昨日、評価テスト用としてWin98を貰ってきました。An HTTPdのリソース消費の問題を確認
してみますね。って答えは出ていますが(^_^;)。
Win98にはまだまだ発見されたまま修正されていないバグ情報が届いています。日本語版への
対応はまだまだ先のようです。また、Windows Updateも行ってみましたが、たぶん表に見える
(ユーザに受けるというか)部分のアップデートばかりみたいですね。ちゃんとした内部の
アップデートはまだまだ待たなくてはならないようです。リソース消費の問題もそのひとつで
はないかと想像するのですが、プログラマが頭を悩ませなければならないというのもなんだか
なぁという気もしたりしながら、カーネルが修正しなければ無理なのかなぁという気もしてい
ますよ。>中田さん
またまた、新年早々長々と書いてしまいごめんなさい。
またまた、いつものようにあまり役に立たない内容ばかりだったような。目に付いた記事に付
いて書かせていただきました。もう殆ど解決されている内容なのでしょうけど。
NT40Sにインストールし、(まだ表には出していませんが)CGIのテスト,ドキュメント管理
(これにわざわざAn HTTPdを使うこともありませんが(^_^;))などにと利用させていただいて
います。
それでは、これからもよろしくお願いします。
はじめまして、「ぼいた」と申します。
やっとHPが持てるようになり「CGIは自作で」と思い、
参考にと本屋で買ってきた本にanHTTPdが紹介されていました。
(実はPerl本でした、Cで組もうとしてるのにぃ...おばか)
「とりあえずはアクセスカウンタだろ」ということで、
「WIN98でリソースが...」と書いてあっても、ついついやってしまった(T_T)
何回目だろ、リカバーするの(T_T)
対策がむばってください、とりあえずBBSでも作って待ってましゅ。
長いカキコすみません、ではぁ〜
はじめまして!!
98上で、CGIを動かそうとした時に下記のエラーメッセージがでて実行できないのですが・・
なぜでしょう?教えてください・・・
(エラー内容)
c:\perl\bin\perl.exeファイルは、このwindowsに対応するCPU用に
コンパイルされていません。
製造元に連絡して、新しいバージョンを入手してください。
>やはりわかりませんが、それでは、http://192.168.0.1/~yosshi/ ではどうなりますか?
同じです。
>同じなら、エラーメッセージを正確に教えてください。
--------------------------------------------------------------
<H1>ブラウザ エラー</H1><P><P>ブラウザが不正なリクエストを送信しました
--------------------------------------------------------------
とでます。
AN HTTP Serverを使用させて頂いています。
中田さんWin98でのリソースの現象、およびNTでのCPU使用率100%
についての修正がんばってください。
期待しています。
gunjiさん、
これは Perl の問題で、 Webサーバが持つものではないと思います。
私はよく知らないのですが、perlvar.html によると、
"$^ O The name of the operating system under which this copy of Perl was built, as determined during the configuration process. The value is identical to $Config{'osname'}."
ということなので、Perlによっては空ということがあるのではないでしょうか?
Yosshiさん、
やはりわかりませんが、それでは、http://192.168.0.1/~yosshi/ ではどうなりますか?
同じなら、エラーメッセージを正確に教えてください。
坪本さん、
VBがパーソナルWebサーバ(PWS)を起動させる意味があるのかどうかよくわかりませんね。
それはともかく原因がわかってよかったです。
ひろさん、
インターネット側からLAN内のPCにアクセスできるかどうかという話ですね。
LANが外からの(HTTPのポートへの)アクセスを許すようになっていれば可能です。
これは、LANとインターネットの接続がどうなっているかによるので、LANの管理者に問い合わせるのがよいでしょう。
PCに割り振られているIPアドレスがLAN内でしか通用しないアドレスの場合は外からアクセスできないようになっていることが多いと思います。
えむけいさん、
30x を CacheOnly のときだけ、というのは比較的簡単に実現できると思います。
下旬のバージョンで考えます。
こんにちは、一つ教えてください。
perlで $OS = $^O;
で、サーバのOSの種類を取得するのだと思いますが、これ($^O)は、
webサーバのソフトのすべてにデフォルトとして、持っているのが
当たり前なのでしょうか?
>それでは、違う話かもしれませんが、とりあえず、
>(1)ブラウザで入力したURL
>(2)httpdが動いているPCのIPアドレス
>(3)ブラウザを動かしているPCのIPアドレス
>(4)ブラウザのプロキシの設定内容(プロキシサーバのIPアドレスとポート)
>を教えてください。
分かりました。
1.http://127.0.0.1/~yosshi/
2.192.168.0.1
3.同上
4.1のURLを入力したブラウザではプロキシの設定はしていませんが
クライアント側のプロキシ設定では以下の様にしております。
IP:192.168.0.1
ポート:80
よろしくお願いします。
中田さん早速ご回答くださり、有難うございました。AN HTTPDが立ち上がらなかった理由がわかりました。MSの「ぱーそなるWebサーバ」と称するものが立ち上がっておりました。やはりVBセットアップによる影響です。コントロールパネルのアイコンをクリックして、これを立ち上げ、「停止」ボタンを押すと、停止し、AN HTTPDがポート80で立ち上がるようになりました。あわててしまうと、とんまな質問になってしまいますね。
中田さん、お返事ありがとうございます。詳しく説明しますと、(詳しく有りません。。。)
LANで接続している、PCの中に、ホームページを作って、それを別のダイヤルアップ接続の人は見れるのでしょうか?(一部意味不明個所有り)これを試した結果、見れませんでした。
やっぱりLAN接続の人は、このプログラムを使えないのでしょうか?初心者なので詳しく教えて下さい。
追伸:LAN接続は常時接続です
特定の条件で(サーバの負荷が高いとき?)、リソースが存在するにもかかわらず302を返してサーバルートへリダイレクトしようとするWWWサーバがあるようなのですが、いったんこの302がキャッシュされてしまうと何度リロードしてもリダイレクトされてしまって、本来のリソースが取り出せなくなってしまいます。
301や302のキャッシュはCache onlyのときだけ利用するようにできないでしょうか?
ひろさん、
LAN上の別のPC上で AN HTTPD を起動できるか、という意味なら、それはできません。
別のPC上の httpd.exe を自分のPC上で起動することはできます。
LAN上で AN HTTPD が動作するか、という意味なら、それはできます。
坪本さん、
うーむ、これはちょっとわかりません。
VBは手元にないので。FrontPage や PWS が動くようになっているのでしょうか(?)。
AN HTTPD は正常に起動されると「待機中」になりますが、「待機状態」というのはそのことではないのでしょうね。
まことさん、
よかったですね。またどうぞ。
Yosshi さん、
それでは、違う話かもしれませんが、とりあえず、
(1)ブラウザで入力したURL
(2)httpdが動いているPCのIPアドレス
(3)ブラウザを動かしているPCのIPアドレス
(4)ブラウザのプロキシの設定内容(プロキシサーバのIPアドレスとポート)
を教えてください。
初めましてこんにちわ。突然ですが、あのプログラムはLAN接続では起動出来ませんね?
僕の設定が間違ってるのでしょうか?教えて下さい。
はじめまして、坪本と申します。AN HTTPDをフリーでご提供されているのを拝見し、利用させて頂いております。サーバの立ち上げが大変なことと思っていましたが、このように簡単に出来ることに、感謝致しております。サーバの構築とCGIの勉強をはじめたばかりで、初心者ということになりますが、ご指導下さい。
最初から質問を出すのは、恐縮ですが、お教え頂ければ幸いです。実は、LANにつながった環境でWindows98を用いておりますが、AN HTTPDを立ち上げ、当初はホームページを表示し、簡単なCGIプログラムが走っておりました。ところが、VB6.0のエンタープライズ版をセットアップしたあとから、立ち上がらなくなりました。「サーバソケットを結ぶことが出来ません。他のHTTPサーバが動いていないか確認してください。あるいはポート番号を変えてください。」というメッセージが出ます。ポート番号を8080に変えて立ち上げますと、待機状態のままで、立ち上がりません。ポート番号をその他の適当な番号に変更してみましたが、うまくゆきません。どのような原因なのでしょうか?VBによる影響でしょうか?
初めてなのに、身勝手な質問で恐縮ですが、よろしくお願い致します。ご健勝をおいのりしつつ。
>中田さん
表示されました。お世話になりました。ありがとうございます。
これからいろいろなCGIを試してみようと思います。
また相談に伺うと思いますが、よろしくお願いします。
>LANがあってもなくても 127.0.0.1 はそのPCのことになります。
>httpd を起動しているPC上のIEでやった場合の話でしょうか?
>また、ブラウザをプロキシを使う設定にしている場合は 127.0.0.1, localhost およびそのPCのIPアドレスなどはプロキシを使わないように指定しておく必要があります。
言い忘れていたことがありました。
httpdを起動しているPCをプロキシサーバとして使用しています。
ネットワーク関係に詳しくないのでよく分かりませんが…
ただ,LANを組む前は正常に動作していました。
>もっとも上の話の関係だと「サーバに接続できない」エラーになりますね。。。
>「ブラウザエラー」というのはどういうものでしたっけ? 前に話が出たような気もしますが、ちょっと思い出せません。
ブラウザのHP表示部分に
ブラウザ エラー
ブラウザが不正なリクエストを……
という感じの文章が表示されました。
お知らせ
Win98のCGI/SSIのリソース対策のため、CGI/SSI処理部分をかなり大幅に書きかえています。
あと一週間くらいをめどにしています。
Yosshiさん
LANがあってもなくても 127.0.0.1 はそのPCのことになります。
httpd を起動しているPC上のIEでやった場合の話でしょうか?
また、ブラウザをプロキシを使う設定にしている場合は 127.0.0.1, localhost およびそのPCのIPアドレスなどはプロキシを使わないように指定しておく必要があります。
もっとも上の話の関係だと「サーバに接続できない」エラーになりますね。。。
「ブラウザエラー」というのはどういうものでしたっけ? 前に話が出たような気もしますが、ちょっと思い出せません。
初めまして。
おいどんさんのページから来ました。
質問ですが,TCP/IPを使ったLANを構築したら
http://127.0.0.1/
にIEでアクセスしてもブラウザエラーとなります。
LANを構築した場合はどのようにすればいいのでしょうか?
まことさん、
まず、"#! の行を調べる" のチェックをはずしてください。
ここにチェックがはいっていると、#!以下に指定してある perl(\usr\bin\perl)を起動しようとして、そのようなファイルがないので実行できない、というエラーになります。
チェックをはずした状態では #! 以下の指定は関係なくなるのでなんでもかまいません。プロバイダの perlのパスにしておけばいいと思います。UNIXではここの指定が必要です。
次に、".pl, .cgi の実行プログラム" のところは、perl.exe のフルパスで指定しておいた方が安心です。
たとえば、C:\www\perl\bin\perl.exe などと。
はじめまして
おいどんさんのところからやってきました。
掲示板に刺激されて、CGIの改造と動作チェックをオフラインでやってみたいと思っています。
おいどんさんの「まずはインストール」からはじめて
AnHTTPdの設定をすまし、index.htmlの表示はできました。
次に、Perl for Win32のインストールも無事成功し
CGIスクリプトの動作テストでつまずいています。
hello.cgi はpublic_html の中に格納してあるのに下記のような
エラーメッセージが出てきました。
Error 500
CGI エラー - 以下のコマンドラインを実行できません :
"\usr\bin\perl D:\www\makoto\public_html\hello.cgi ", errorcode = 2, No such file or directory
これは何が原因なのでしょうか。
また、CGIスクリプトの動作テストだけを目的とするとき
AnHTTPdの設定はどこを変更すれば十分なのでしょうか。
変更してはいけないところはあるのでしょうか。
おいどんさんのところの説明では英語バージョンで説明してありますが、
実際は日本語の設定となっていて、微妙に違っています。
最後に、動作テストをするときcgiファイルの先頭は#!/usr/bin/perlでよろしいでしょうか。
素人が突然思い立って始めたことなので、あきれるような内容かもしれませんが
教えていただけたらと思います。
よろしくお願いします。長々とすみません。
うさこさん>
レスありがとうございました(^^)。わーい、初心者仲間ゲットだあ(笑)。
>質問するのは良いことだと思いますので、ばしばし質問をすれば良いのでは
>ないでしょうか?
ばしばし質問させてもらえるというのは、私にとっても非常にありがたい
ことです。 ただ「初心者」の質問というのは、けっこうみんな似通ったもの
が多くて、同じ返答をいちいち返すのは大変なのではないかな、と思ったもの
ですから(^^ゞ。
かすいさん、中田さん>
アドバイスありがとうございました。いろいろと参考になります。
そうそう、jperlをPerlに変えただけで、ずいぶんとエラーが改善しました
(その1、その2ともにクリア)。とってもうれし〜です(^^)。
これでプロバイダのサーバにアップしなくても、いろいろ試してみることが
できますね。まずはフリーで出回ってるものを自分の使い勝手がいいように手を
入れていくことからはじめてみようと思ってます。CGIはイロイロと「こーいう
機能のモノが欲しい」という要望があるので、いずれは自作もしてみたいですね(^^)。
中田さん>
≫(かすいさんには甘いゾと言われてしまうかもしれませんが)
ちゃんと理解してもらえるのなら、手段や過程はどうでも良いとは
思っているんですけどね。(^^;;
最近はやってませんが、昔は同じようにメールで見てあげたりもして
ましたし、調子にのって原形をとどめないくらい改良しすぎたりする
なんてことも……。(ぉぃ
それから、単に動かしたいだけの場合は、無理してプログラムのこと
まで理解してもらわなくても、機械的にでもいいから、ちゃんと動か
せるところまでたどり着いてもらえば、それでいいと思っていますし。
ただ、ほんと誰にも習うことなく、手探りで独学してきたので、下に
書いたような考えになるわけですが。(^^;;
--------
きのさん>
ちょっと補足しておきますが……「アルゴリズム」なんていうとむつ
かしそーな言葉に聞こえるかもしれません。
でも、音楽でいえば「楽譜」、料理でいえば「レシピ」……それらと
の違いなんて何もありません。
単なる「方法・手順」に他なりませんから。(^^)
うーん、どっちかといえば、料理の方が似ていると思うのですが、
材料揃えから、下拵えなどの準備、そして調理、味付けして、盛り
付け、配膳と過程的にはそっくりです。
違うのは、目分量でやったり、手抜きをしてしまうと動かなかったり、
痛い目にあうことがあるかもしれないということでしょうか。(^^;;
ぴゅあさん、
(どこから戻ってこられたのかはわかりませんが、)今年もよろしくお願いします。
きのさん、
かすいさんのお話の通りです。
この場合のエラーメッセージは Perl が出しているエラーメッセージなので、HTTPサーバは関係しません。
ただ、(エラーその1)については、そのエラーメッセージで jperl でなく perl を使えばいい、ということが独力でわかるようになるのはなかなか難しいと思います。
逆に、(エラーその2)は、そのメッセージを頼りにスクリプトを見てみないとわからない、というエラーです。
でも、そのような判断ができるようになるまでは、うさこさんも言われるとおりで、考えてみてわからなければ聞くということでいいと思います。
flock の話なども聞いてみないとなかなかわかりませんし。
ひょっとすると(その2)の方もけっこう難しいエラーなのかもしれません。
もし、どうすればいいのかわからないということであれば、CGIスクリプトをメールででも送ってください。
それを何回かやっていれば自分で解決できるようになると思います。
(かすいさんには甘いゾと言われてしまうかもしれませんが)
きのかあちゃんさん>
≫やはりサーバについての知識が不可欠なのでは、と思う のですが、
とりあえず、CGIを動かしたい場合は……
特に既成のCGIを使われる場合は、製作された方の解説に従うとか、制作
された方に質問されてみるということになります。
あと、それなりに実用・実践的なHPや書籍に頼るとか……それくらい
です。
それ以上もなければ、それ以下もないと思います。(^^;;
ほんとにプログラム書きを目指される場合は……
まず、「perl」を最初に学ぶ言語にするのはやっかいかもしれませんし、
そうでないかもしれないのですが……だから、どっちだ!?(^^;;
プログラミングを学ぶにあたって、とりあえず、サーバ云々というのは
関係ありません。むしろ、忘れて下さい。(^^;;
まず、アルゴリズム(問題の解決方法や手順)を考えられるかがあって、
その次にプログラムが組めるか(文法を知っているか)どうかです。そして、
その更に次くらいに必要になるのが問題固有の専門知識です。
アルゴリズムを考えられるかは身につけるしかありませんが、プログラムが
組めるかについてはアルゴリズムさえ考えられるのであれば文法を習得して
なくても、ある程度、融通は効きます。
文法は、文法書を見ればちゃんと載っているわけですから。
そして、最後の問題固有の専門知識……ここではサーバまわりですか……
も、調べれば分かることなので意識して覚えたりすることはないと思います。
下手に書籍を読んだりするよりも、どれだけ書いたか、書けたかということに
なります。
そうやって書いていく中で、どうしても分からない時だけ見たりするんです。
あ、「書く」のと、「コピー」や「カット&ペースト」は違いますよ。
そういった意味では、実践的な参考書なんて必要無くって、文法書だけで十分
です。または文法解説書もあると役に立つと思います。
# プログラム書きを身につけるためには、実践的な参考書は、たいがい問題
固有の専門知識のオンパレードだったりするので、プログラム書き自体は身に
つかないなんてことになりかねないので。
こういったこと以前に、まず「やりたいこと」があって、加えて「解決する
意欲」もないとだめかもしれませんけど。(^^;;
で、そういうのと平行して必要なのが理性とか常識です。(^^;;
例えば、特に共用サーバを利用する場合とか、不特定多数の方が利用される
場合とかには「迷惑プログラム」とかを作ったりしないことです。
これは、知らないでやってからは遅いので、矛盾しますが、サーバおよび
サーバの動いているOSまわりの知識は事前に知っておく必要があります。
あと、もうひとつ必要なのが、執拗な探求心です。
実際の導入前のチェックやテスト、バグやエラーの解決方法の追求等々……。
コツがつかめるまではしんどいかもしれません。(^^;;
といったところでしょうか、個人的な考えですけど。
きのかあちゃんさん>
どっちも、コンパイル中断エラーみたいですね。(^^;;
(エラーその1)は、"jcode.pl"をお使いのperlではコンパイルできない
ために出るエラーです。
おそらく、perlではなく、jperlを使われていると思うのですが……それなら、
「.pl,.cgiの実行プログラム」の設定の最後に、半角スペースを入れてから
「-Llatin」と書き足してみてください。
それで解決すれば、それでいいですし……だめなら、とりあえず、
-Llatinに対応したjperlに変えるか、
jperlでなく(日本語処理に対応してない)perlに変えるか、
「require 'jcode.pl';」または似ている行を削除かコメントアウトするか、
の、どれかをとるのが簡単な方法です。
ただし、最後の「require 'jcode.pl';」または似ている行を削除かコメント
アウトするとCGIの内容によっては文字化け等が起こる可能性があります。
それから、(エラーその2)の"syntax error"は"文法の誤り"です。
よく確認してみたください。
ご無沙汰していました
やっとインタネに戻ってきました
また、宜しくお願いいたします
遅れ馳せながら
新年おめでとうございます
きのさん、
私も初心者なので、プログラムのことでわからないこととか、
ここで質問をさせてもらっています。
質問するのは良いことだと思いますので、ばしばし質問をすれば良いのでは
ないでしょうか?
それが、今後のAN HTTP Server を作る為の基準(こういうところを解かり易くする等)
になるのだと思います。
それに、以前私が解からないことがあってここの掲示板に来てみた時に、
他の方のコメントを見て解決した・・・。というような事が有りました。
ただ、自分で勉強しようというのは良いことなので、勉強をしてどうしても
解からない事があったときには、ここを活用するというようなかんじで
よろしいのではないでしょうか?
きのさんの質問には、私の知識では答えられません・・・。
(すいません・・・これだけ書いておいて。)
では、きのさん。初心者同士仲良くしていきましょう!!
他の皆さんもよろしくお願いします。
(いつも書きますが、解かりにくい日本語でごめんなさい。)
中田さん、中脇さん、ありがとうございました(^^)。
他のCGIを試してみたところ、以下のようなエラーがでましたが、これも何かをコメント化することで
解決するのでしょうか。
……それにしても、このようにエラーが出るたびに質問に来るのは申し訳ないし、気が引けます(^^;)。
私のような超初心者がエラーに立ち向かうには、やはりサーバについての知識が不可欠なのでは、と思う
のですが、やっとこWINDOWSを使いこなせるようになった(?)ばかりのモノが勉強するには、どういった
書籍などを読むのがいいのでしょうか。よろしければ教えてくださいね(^^;)。
**************************************
(エラーその1)
Error 500
CGI エラー - Content-Type ヘッダがみつかりません。
CGI 出力メッセージ:
/\216([\241-\337])(\216([\336\337]))?/: unmatched () in regexp at jcode.pl line 510.
(エラーその2)
Error 500
CGI エラー - Content-Type ヘッダがみつかりません。
CGI 出力メッセージ:
syntax error in file c:\www\cg\public_html\cgi-bin\bex\click.cgi at line 13, next token "{"
〜以下、syntaxエラーの表示〜
Execution of c:\www\cg\public_html\cgi-bin\bex\click.cgi aborted due to compilation errors.
*******************************************
どうぞよろしくお願いします。
wakuwaku さん、
今 Win98 でのリソース減少対策で手間取っていまして、予定は少し遅れるかもしれません。
きのさん、
中脇さんの言う通りで、Win95/98では flock が使えないため、# をつけてコメントにしてしまうのが簡単でしょう。
そのままだと Perl for Win32 では実行時エラーになりましたが、ActivePerl では実行前のコンパイルエラーになるようです。
flock は WindowsNTでは使えるはずですが、symlink, alarm などは Windows95/98/NT では使えません。
「windows上でCGIを試せるソフトがある!」と聞いてきたのに「なんだできないのか」、と思われてもいけないので、一応書いておきますが、
flock などが使えないのは、Windows が非力のためです。 そのため Windows上の Perl でも flock を実装できなかったのだと思います。 そして、Perl が実装できなかったものを HTTPサーバ側で補うことはできません。
ただ、flock をコメントにして使えなくするとファイルへの同時書き込みがあると困るので、AN HTTPD のオプションの "単一スレッド" にチェックを入れておいてください。
そうしておくと、CGIについては同時に一つしか動かないようになるので、通常の flock によるファイルロックの必要がなくなります。
ただ、ローカルテストの範囲では意識的にやらない限り同一ファイルへの同じ書き込みはまれですからとりあえずは心配しなくてもよいかもしれません。
flock に単に # をつけておけばそれでもいいでしょう。
Perlのflock関数はWin95だと動かないのでそういうエラーが出るんでしょう。
スクリプトをエディタで開いて、「flock」という文字列を「#flock」に置換してflock関数を
殺せばうまく動作すると思います。
UNIXサーバやNTサーバマシンならflockは動くのでプロバイダの方ではきちんと動いているん
じゃないでしょうか??
今年もお世話になります。
バーチャルドメインに関してすぐにご返答いただきありがとうございます。
大変期待しております。
先日、win98をNTに入れ替えました。98の時は、こけることがあったのですが(cgiでのエラーが多かった?)NTではその現象は今のところ全くおきていません。
それに早くなったような気がします。
私の頭では、どこがどうなどとはわかりませんが、現況ではNTの方が98より安定して稼働する感じです。
何のコメントにもなっていませんネ。
とにかく今年もよろしくということで・・・・応援しております。
はじめまして(^^)。
「windows上でCGIを試せるソフトがある!」と聞いて、喜び勇んでやってまいり
ました、きのと申すものです。以後、よろしくお願いいたします。
で、昨日早速最新版をダウンロードし、試してみましたところ、以下のような
エラーが出ました。
************************************
Error 500
CGI エラー - Content-Type ヘッダがみつかりません。
CGI 出力メッセージ:
The flock() function is unimplemented on this machine at c:\www\cg\public_html\cgi-bin\search00\write.cgi line 97.
************************************
他のCGIでも、HTMLファイルを作成するものはことごとくこのエラーに
ひっかかります(他の方もこのエラーに苦しめられてるようですね(^^;))。
で、このCGI、すでにインターネットのサーバ上にも置いてありまして、
そちらの方では一応問題なく作動していますので、なにか私の設定が間違って
いるのかな? というような気もするのですが、なにか改善策はありますでしょ
うか。
ちなみに、わたしはこのソフトをWINDOWS98上で、一台のマシン内で使用して
います。これを使って(いづれは)perlでCGIを組むのが夢です(笑)。
gunjiさん、
そうですね。ローカルパスとURLとを別にすればそれでいいわけですね。
Premature end of script headers は Apache が出すエラーメッセージで、スクリプトの先頭の #! の行がなかったり #!以下にスペースがはいっていたりすると出るエラーだと思いました。
失礼しました。対応方法まで記載しなかったものですから。
if (-e "$add"){ print "<img src = $address>; }
$add = "/home/user/bbs/kkkdat/10.jpg"; または $add = "./kkkdat/10.jpg"; 等で。
$address は URLとしました。(絶対パスの時のみ)
掲示板の設定をできるだけ簡単にするため、
1) データのアドレス 2) jcode.plのアドレス
だけの設定にしていましたが、データアドレスを絶対パスで指定した場合は
そのURLも記載して頂かなくてはならなくなったというわけです。
せっかく投稿するので、それではもう一つ相談を...。
http://www.ikamera.com/keiji/rsn.cgi?rns60.dat の70番に
premature end of script headers サーバエラーに関して質問が
来ています。(私のHP、及び、AN HTTP では再現できないのですが)
ここのページとまたかけ離れた質問になってしまいましたが、もしお時間が
許せば、御出でくださいな。
gunji さん
対応できたということなのでいいのですが、ちょっと気持ち悪いので、、、、
if (-e "$address"){ print "<img src = $address>; }
というのは無理があります。
CGIの中での指定と言ってもこの場合の $address は URL であるはずですから、URLの存在を if (-e ) で調べることはできないはずです。相対指定ではできることもありますが。
つまり if (-e ) は やめて、
$address="http://xxx.xxx.xxx.xxx/~user/bbs/kkkdat/10.jpg";
print "<img src = $address>";
などです。
回答ありがとうございました。
cgiの中でのアドレスの認識を少し勘違いしてました。たとえば、
$address = "kkkdat/10.jpg";
if (-e "$address"){ print "<a href = $address><img src = $address>; }
と相対パスで書けば問題ないのですが、
$address = "/home/user/bbs/kkkdat/10.jpg";
if (-e "$address"){ print "<a href = $address><img src = $address>; }
これだと、よく考えてみれば、 if (-e "$address") の部分の$address はcgi中で認識
できるものの、print 以降の $address はブラウザでの認識になるので、変なアドレスに
なってしまいますね。
みんな相対パスで記述できるところにcgiを置ければいいんですが、中には
そうではない方がいるので、これに対応しなければ...。
しかし、今までそう言う苦情はでなかったなあ????
一応、さきほど対応できました。(ver2.23) たぶん......。
http://www.ikamera.com/keiji/title.cgi
gunji さん、
そうですね、もし本当にローカルパスで指定したいのなら中脇さんの言う通りです。
img src= で指定するのは、URLです。
URL というと、普通は、http://xxx.xxx.xxx.xxx/abc/def/ghi.jpg などという記述になります。
つまり、プロトコル://ホスト名/仮想絶対パス という形です。
仮想絶対パス は ドキュメントルートをルートとみなす絶対パスなので"仮想"といいます。
<img src="/kkkdat/1.gif">
とした時は、その記述をしているHTMLファイルのURLが http://127.0.0.1/~super/index.html であれば、ブラウザは自動的に "http://127.0.0.1/kkkdat/1.gif" と(正しく)判断します。
つまりURLではドキュメントルートをルートディレクトリとするのでこうなります。
URLでは、\ はパス区切り文字とはみなしませんから、
<img src="d:\kkkdat\1.gif">
では、ファイル名 "d:\kkkdat\1.gif"の相対指定だとみなして、
ブラウザは "http://127.0.0.1/~super/d:\kkkdat\1.gif と解釈します。
通常、img src= や a href= など、URLを指定するところにローカル(絶対)パスは記述できません。
URLも相対パス指定ができるので、そうした方がよいでしょう。
ただ、ドキュメントルートがルートですから kkkdat はドキュメントルート以下においておくか、または、(パス)エイリアスでローカルパスと対応させておく必要があります。
ファイルをローカルパスで指定したいのなら file: を使うことになりますが、これは自分のPC以外からのアクセスでは無効です。アクセス元のファイルの指定ということになってしまいますから。
gunjiさんへ
「file:///c:/windows/text.txt」 という風な記述が自分のローカルディスクに対する絶対パスになります。
何度も AN HTTPとは直接関係ない話ですみませんが、もう一つ。
たとえば htmlの中で以下のように指定した場合、
<img src = "d:\kkkdat\1.gif" >
リンク先は、以下のようになります。
http://127.0.0.1/~super/d:\kkkdat\1.gif
http://127.0.0.1/~super/ がでない様に絶対パスを指定するには
どうしたらいいんでしょうか???
gunji さん
CGIスクリプトの中で指定するパスは、URLではなくて、ハードディスク上のローカルパスです。
また、Perlスクリプトの中では \ のかわりに / をパス区切り文字として使えます。
httpd.exe が C:\www にあり、rsn.cgi が C:\www\rsn にあるとすると、
(これは gunji さんの設定に適宜読み替えてください)
相対パス "./kkk.dat" は .\kkk.dat ということで、絶対パスでは C:\www\rsn\kkk.dat です。
つまり "C:/www/rsn/kkk.dat" または "/www/rsn/kkk.dat" です。
"/kkk.dat" と指定すると、C:\kkk.dat のことになってしまいます。
また、このrsn.cgiの場合、$ffle に指定したファイル名の . を除いて、画像等の格納ディレクトリにしているので、$ffle = "/kkk.dat" としてしまった場合、ディレクトリは C:\kkkdat になってしまうようです。
ファイル "/kkkdat/1.jpg" は C:\kkkdat\1.jpg のことです。
"./kkkdat/1.jpg" なら、.\kkkdat\1.jpg ですから、C:\www\rsn\kkkdat\1.jpg のことになります。
したがって、相対パスを使うか、絶対パスにするならハードディスク上の絶対パスを使う、というのが正解でしょう。
いま、新しく掲示板を作成したところ、ご相談した症状は私も確認できませんでした。
以前作った掲示板では、相談の症状は起こるのですが...。 ま、これは確認すべき
ファクターが多すぎますので、また症状が確認できましたらご相談させてください。
それとは違った問題を一つ教えてください。
掲示板の設定で、$ffle = "./kkk.dat"; や、$ffle = "kkk.dat";など相対的な
パスでデータファイルを設定すると正常に動くのですが、$ffle = "/kkk.dat";
で設定すると、データファイルはhttpd.exeの存在するディレクトリよりさらに、
上のディレクトリに作成されるようです。それはそれでcgiもそのデータを認識して
動くのですが、投稿で登録した画像は /kkkdat/1.jpg のようになり、画像はそこに
アップロードされます。しかしcgi中で、/kkkdat/1.jpgというファイルを認識できない
ようなのです(ファイルは存在しています。)/kkk.dat も認識できないのであれば
納得もいきますが、/kkkdat/1.jpg だけ認識されないのはどうも分かりません。
よって、投稿文は表示されますが、画像が赤ぺけマークとなってしまいます。
そのhtmlソースをみてみると、画像の位置は /kkkdat/1.jpg となっていて問題
なさそうなのですが....。何か原因が推測できますでしょうか???
ちなみに、さきほどダウンロードしていただいたものでは .//kkkdat/1.jpg と
なっていたので、/kkkdat/1.jpg になるようにしたのですが、情況が変わらなかった
のでご相談差し上げています。
gunjiさん
掲示板の方は、少しだけIEでやってみた限りでは、表示がおかしくなる現象は再現できませんでした。
どこの表示がどうなるのでしょうか? また、管理モードからの戻り方はどうやった場合でしょうか?
ここの掲示板については確かにその方がいいのでしょうが、もう少し投稿が多くなるようだったら、と思っています。
新年明けましておめでとうございます。
AN HTTPを便利に使わせて頂いております。
さて、win95、98でのシステムリソースが不足する問題はさておき、
私が使っている掲示板のJAVASCRIPTが、この環境では
正常に動かない様です。
IE4.01で掲示板起動後、管理モードに移動して、また戻ろうとすると
表示がおかしくなります。NS4では問題なさそうです。
この問題は、私の借りているバーチャルサーバでは起きません。
httpに問題があるのか、掲示板に問題があるのか、IE4.01に問題が
あるのか難しいところです。
ちなみに、ここのサポート掲示板は返信機能のあるもののほうが
分かりやすいように思うのですが、いかがでしょうか???
たとへえば、
http://www.ikamera.com/keiji/rsn.cgi?rns60.dat
の様に、返信機能があり、過去のログも自動作成されるものを
お使いになってはいかがでしょうか
(ハハ、掲示板の宣伝をしてしまいました。)
掲示板のアドレス。
http://www.ikamera.com/keiji/title.cgi
あけましておめでとうございます
いとさん、
> ftpクライアントからサーバにファイル転送(put)される頻度も高いのでしょうか?
マシンへのトラフィックは http が主で、ftp での get/put 共にかなり少量です。
ftp と http のアクセスが同時に発生することは、滅多にありません。PointCast と
ppp (どちらもクライアントとして) のトラフィックは頻繁に発生している環境です。
# あまり参考になりませんね (^^;
えむけいさん、
ログからするとバグのようですね。
プロクシ/キャッシュまわりは他にも動作がおかしいところがあるので、まとめて直そうと思っています。
IE5 の出すリクエストヘッダも調べてみないといけないかもしれませんが。
千木さん、
おめでとうございます。
こちらこそよろしく。今年もいろいろ注文をつけてください。
いとさん、
ftpdとの関連でのハングは、確か 1.0x になってから多いということだったと思います。
他にも 0.99g では大丈夫だったという話もあるので、そのあたりを今調べてみています。
httpd(HTTP Daemon, HTTPサーバ)に出会ったのが AN HTTPD が最初だと、単にHTTPDと言ってしまうのかもしれません。
httpd は ftpd と同じく一般的な呼び方に近いと思っています。つまり本気で an[other] httpd と。
"yacc"(yet another compiler compiler)などの another も頭にあります。
もっともイニシャルでもあるというのが気に入っているので、次のデーモンも AN をつけるかもしれません。
今年もよろしくお願いします。
IE5で引数付きCGIが生成したページ(Infoseekの検索結果とか)からリンクをクリックしてたどると、そのたどったページだけがキャッシュされません。そこからさらにリンクしている別のページや、そのページのインライン画像などは正常にキャッシュされています。IE5の不具合でしょうか?
ちなみに HTTPD.LOG には
127.0.0.1 - - [01/Jan/1999 05:42:17 +0900] "・^X^D^O^\F1 HTTP/1.0" 404 244
CACHE.LOG には
Fri Jan 01 05:42:17 1999 CGI Request
と残されていました。
謹賀新年
中田さん、昨年中はこのAnhttpdで大変御世話になりました。
他力本願では有りますが、今年も中田さんの優れた頭脳によって僕たち
ユーザの力になって下さい。宜しく御願い致します。