>KAYさん
ひょっとしたらflockがひっかかっているのではないでしょうか<カウンタ
flock(DB,2);
とかいうところがあったら
eval 'flock(DB,2);';
とかになおすと作動するかも・・・。
(思いっきりハズしてたりして(^ ^;;;)
わったさんへ追記
ぴゅあさんの書かれているとおり、PWSを停止してやってみるのが一番早いですね。
わったさん、
PWSは動作を止められるはずですが、どうしても同時に使うのであれば、えむけいさんの言われる通り AN HTTPD のポートを変えるしかありません。
HTMLの表示は PWSがやっていたのでしょう。存在しないファイルにアクセスして404のエラーメッセージで AnWeb/1.15b とか出れば AN HTTPD で、そうでなければ PWS です。
TCP/IPのポート番号80というのは、HTTP用の標準ポートで、PWSは(当然?)80番ポートを使っています。標準以外のポート番号(たとえば 8000, 8080など)も使えるのですが、その場合はえむけいさんが書いているようにポート番号をURLに明記する必要があります。
もっとも、ポート番号が衝突しているときは AN HTTPD が正常に起動できないはずなので、ちょっとまだ疑問は残りますが。
KAYさん
カウンタの方は、おそらくカウンタが壊れないようにファイルにロックをかけたりしていると思います。そのときに Windows(用の Perl)では使えない symlink や flock などの関数を使っていると動きません。
オプション/一般の CGI出力を検査 にチェックをいれておくと、何が原因でエラーになるかわかることが多いです。
ActivePerl の PerlIS.dll は現在までのバージョンではうまく動きません。
また、Perl for Win32 をインストールしてある場合は、Perl for Win32 の binディレクトリに Perl for ISAPI (PlISi316.exe の PerlIS.dll)があることを前提にしています。
ActivePerl用に変更する手はあるのですが、もともとAN HTTPD 1.15bおよびそれ以前では ActivePerlのPerlIS.dllが正常に動作するようになっていないので。
このあたりは 次のバージョンで対応する予定です。
>わったさん
IEは普段使っていないので、どのメッセージがどの場合に出たのかは忘れましたが、CGIがWin
に対応できるように直されていないのか、URLの指定の仕方が悪いのか辺りではないかとも思い
ます。
また、レジストリは動作に関係しないと思います。
PWSは立ち上げているとAn HTTPdに対して影響を与えるかも知れないという気はします。まず
PWSを停止させてCGIが正常に動作するか確認してみてはどうでしょうか。動作することを確認
してからPWSを立ち上げて動かないようであれば、PWSの設定により回避できるものか、同時に
立ち上げていると使えないのかが判断できると思います。
>KAYさん
ActivePerlはまだ試していないので判りませんが、Perl+ISAPIではバージョンを合わせる
必要がありました。まだ誰からもレスがないということはバージョンを合わせなければならない
ということではないのかもしれませんが、調べてみればどうでしょうか。
また、「ActivePerlに入っているということだったので・・・」という部分がよく解らない
のですが、インストール後コピーしたというのは?
インストール時にどういう設定をされているか(インストーラが行う設定)判りませんが、解
凍後に何かしているようなのでコピー(移動)すると何か問題が起こるのでは?という気もしな
いではありません(特にレジストリを設定しているようにも思えませんでしたが)。Perl+ISAPI
の場合はPerlをインストールしたフォルダを指定することでbinフォルダにインストールされま
す。ActivePerlの場合でも同様なのだと思いますが。なお、Perlで使えてISAPIでは使えない
(逆もあると思われる)機能があります。
カウンタCGIはたぶんそんなに複雑な処理はしていないと思いますが(統計など取っている
ものもあったりする)、Win用に一部書き直さなければならない部分もあるのかも。
わったさん
PWSとポート番号がぶつかるので、AnHTTPDのポート番号をたとえば8080に変更して、ブラウザのURL入力欄には http://localhost:8080/ のように指定してみてください。
何度もすいません。
智猫さんの方法を試してみましたが、うまくいきませんでした。
えっと、MSフロントページを使っているのですが、その影響もあるかと思うのですがいかがでしょうか。
フロントページはMSパーソナルウェブサーバを使って作業しますので、FPで作業するときは必ず立ち上げなくてはならないのです。
これのせいでできないのならあきらめなくてはならないと思います。
レジストリなんかが影響しているのではないかと思っているのですが…?
で、できたぁ〜♪
出来ました。とても感動!cgiのファイルが悪かったのとあと設定も悪かったんだと
思います。DOS画面で確かめてから、上手くうごくcgiで試したら成功しました。
ありがとうございますっ!!
>ぴゅあさん
コメントありがとうございました。自分でも何を聞いたらいいか
分からない状態です。
なぜかIEの設定担当になってる智猫です。
ダイヤルアップ環境でのIE5でAnHTTPDでのローカルブラウズ(HTTPやCGIなど)を行う場合には、ツール→インターネットオプション→接続タブ内にある、
“ダイヤルしない(C)”を選択しておくと良いようです。同じメニュー内にあるLANの設定は特にいじらなくても大丈夫な様子。
この設定にしていてもAnHTTPDの起動時か、ブラウザで初めてサーバ内のURLを開いたときにダイヤルアップするか確認してくることがあるので、
ダイヤルアップしない選択を選べばいいです。これ以降は普通にアクセスできるようになり、http://localhost/で指定しても問題はないと思います。
ではでは。
はじめまして。
こんなにも簡単にウェブサーバが立ち上げられるとは思いませんでした。
感動です。
CGIも使ってみようと思って、自分のサイトで使っているCGIを試してみました。
結果は、カウンタは×で、BBSは○でした。
カウンタは、meshのサーバ(perl)用に作られているらしいのですが、
やはり Perl Win32版との仕様の違いっていうのはけっこうあるんでしょうか?
ちなみに、パスは正しく設定しています。
もう一つ。perlis.dllについてです。
ActivePerl に入ってるということだったので、ダウンしてPerlW32と別のフォルダ
にインストールして、perlis.dllを PerlW32のbinフォルダにコピーしました。
そしてhttpdの設定でperlis.dllの使用を許可しました。
でも動作しませんでした。
PerlW32 Build316 と ActivePerl515 を使いました。どこが悪かったのでしょうか?
よろしくお願いいたします。
中田さん、早速ありがとうございます。
127.0.0.1からは普通に表示されます。
たとえばindex.htmlなどをしっかり表示してくれます。その点は大丈夫だと思います。
プロクシは通していません。
ツール-インターネットオプション-詳細設定タブのHTTP1.1の項目のプロクシ接続で〜にはチェックを入れていませんので、それでよろしいのでしょうか。
あと、LAN設定がわかりません。
同じくインターネットオプションの接続-LANの設定のプロクシの項目にもチェックを入れていません。そのことでしょうか?
本当にご迷惑をおかけします。なにとぞよろしくお願いいたします。
わったさん、
http://127.0.0.1/readme.html などのふつうの HTMLは表示されるのでしょうか?
あと、ブラウザは LAN設定になっていて、プロキシは使わずインターネットに直接接続するようになっていますか?
はじめまして。
このたびホームページの掲示板にCGIを使おうと思いこのソフトを使わせていただきました。
が、エラーが発生し、全くCGIが動作しないのです。
使っているのは、
OS:ウィンドウズ98
ブラウザ:IE5.0
perl:perl for win32
です。
とほほさんのCGIの解説の通りソフトの設定を行いました。
http://www2e.biglobe.ne.jp/~s-hasei/ (ここのCGI-ウィンドウズ95/98でCGIを動かすにはを見ました)
cgi-binフォルダにCGIなどをすべて入れ、127.0.0.1/cgi-bin/test.cgi(こちらの見本にあったものです)を実行したのですが、
サーバが見つかりません。
ページが表示されません
検索中のページは現在、利用できません。Web サイトに技術的な問題が発生している可能性があるか、またはブラウザの設定を調整する必要があります。
--------------------------------------------------------------------------------
次のことを試してください:
[更新] ボタンをクリックするか、後で検索をやり直してください。
アドレス バーにページ アドレスを入力した場合は、ページ アドレスが正しく入力されたかどうかを確認してください。
接続の設定を確認するには、[ツール] メニューの [インターネット オプション] をクリックしてください。[接続] タブで [LAN の設定] ボタンをクリックします。 設定情報は、LAN (ローカル エリア ネットワーク)の管理者か、または ISP (インターネット サービス プロバイダ) から提供される情報に一致させる必要があります。
ネットワーク管理者がネットワークの接続の設定を使用可能にしていれば、Microsoft Windows を使用して、ネットワークの接続試験を行ったり、自動的にネットワークの接続の設定を見つけることができます。
Windows でネットワークの接続試験を行ったり、ネットワークの接続の設定を見つけるには、
[ネットワークの設定の検出] をクリックしてください。
サイトによっては 128 ビットの接続セキュリティを要求するものがあります。[ヘルプ] メニューの [バージョン情報] をクリックして、インストールした暗号強度を確認してください。
安全なサイトに移動するためには、セキュリティの設定で安全なサイトに対するサポートをしているかどうかを確認してください。[ツール] メニューの [インターネット オプション] をクリックします。[詳細設定] タブにて、[セキュリティ] までスクロールし、[SSL 2.0 を使用する]、[SSL 3.0 を使用する]、[TLS 1.0 を使用する]、および [PCT 1.0 を使用する] チェック ボックスをオンにしてください。
別のリンク先を表示するには、 [戻る] ボタンをクリックしてください。
サーバが見つからないか、または DNS エラーです。
Internet Explorer
と表示されます。
CGI初心者なので何をいっている可さえ全くわからない現状です。
何がいけないのか教えを請いたいと思います。どうかお願いいたします。
長々と書いてしまい、申し訳ありません。
★IE5のこと
記憶が確かではありませんが、確かIE5ではlocalhostを指定すると変な補完をされてしまっ
たように記憶しています。127.0.0.1と指定すれば問題ないようです。
★IEとネスケ
たまたま立て続けに似たような相談を受けたのですが、IEでは構文チェックがかなりあまく
タグの閉じ忘れなどがあっても補完されて正常に処理されるようです。ネスケではチェックが
厳しく全く表示されないこともあるようです。
★CGI/Perlのこと
通常#!の行を調べるのチェックを外しておけばソースコードの一行目、#!の行は触る必要は
ない筈です。プロバイダのサーバにアップする前のテストに使うのなら変更部分が減る分手
間が掛からなくなるのでそうした方が良いと思います。
またPerlのパスを.pl,.cgiの実行プログラムのところにフルパスで入れておくと確実ですが
AUTOEXEC.BAT(起動ドライブのルートにある:通常DOS/V機ならC:,NXを除く98ならA:)にPATH
が記述されていれば実行プログラムのところはPerlのままで構いません。ただし、Perlインストール
直後はWinの再起動が必要になります。
ただ、Win95/NT4.0では問題がなかったのですがWin98ではAUTOEXEC.BATにPerlのパスが正
常に生成されていませんでした???マシン環境の関係から起動ドライブとシステムドライブ
が違うドライブになっているのでPerl用のAUTOEXEC.BATが起動ドライブではなくシステムドライブ
に作られてしまうのでこのような環境の人は自分で編集する必要があるのですが、どうも
生成がおかしかったのを確認しています。Win95は問題なかったように記憶しています。Win98
ではインストールに失敗した?
>Tomoさん
情報が少なかったので控えておいたのですが(中田さんだと詳しく解るだろうと思って)。
D:\a\b\c\usrが多分ドキュメントルートなんですよね?
http://127.0.0.1/~xxxx/cgi-bin/xxxx.cgiと指定していれば良いのだと思いますが、な
んか考えると変な気も。
ドキュメントルートと仮想パスのcgi-bin,URL辺りをチェックしてみれば?とも思うのです
が情報が少ないだけにどうも曖昧な部分がかなり....
重くなると言うのは何度か中田さんの答えられているスタートアップのホスト名/アドレスを
取得のチェックでしょうか?σ(^ー^)の環境では入れたままで問題なく使えるようなので入った
ままですが。
中田さん、ありがとうございます。
usr の前の\\はここへの記入ミスでした。(^^ゞ
んー、何度見てもパスはあってるんだよなぁ。(泣)
っちうか、ほかのcgiファイルを指定するとWebサーバが見つかりました。
のあと、すご〜く重くなって、結局時間切れで呼び出せないんですよねぇ。
なんか、根本的に間違っている気がする。
再度、見直してみます。(;;)
ayaです。
中田さん、ぴゅあさん質問に答えていただいてありがとうございます。
勉強になります。
すいません、学校忙しくてなかなか書き込みできませんでした。って
書くと学生ってわかってしまいますね。別にいいんですけど。
中田さんへ。例のprint文の件です。
これはあまり参考にならないかもしれません。
たとえば、cookieで受け取ったデータを加工して$c_searchcountにいれ
たとします。自分が書いたルーチンがあってその流れがうまくいかなか
ったので実際にcookieを受け取っているか確認したいとき、以下に示す
サブルーチン内だったら、HTMLのなかに直接$c_searchcountと書くだけ
で中身が表示されますよね。(以下に示す)
sub show_main {
print <<"end_of_show_main";
--実際のHTML文が書いてあります。--
$c_searchcount
end_of_show_main
}
それをPerlのなかでも同じように考えてしまっていて(当時は)、Perl
の中に
print "$c_searchcount";
と書いて変数の中身を確認しようとしていました。当然表示されなかった
のですが、それをそのままヘッドの部分に残していたんです。無駄な文だ
ったのですが、どこにも影響しなかったのでそのままにしていました。(
それもどうかとおもうんですけどね。)
それがContent-typeのprint文の前にあったものですから、ネットスケープ
ではひっかかってしまったんです。AN HTTPDでは無視されていたみたいです。
ただ、こんなことするのはayaくらいだと思います。でも現実のネットワーク
と同様な反応をAN HTTPDがしてくれるとさらにいいものになると思います。
このようなあらゆる角度からのインプットを許容するプログラムシステム
だとayaのようにとっぴなことをする人もいるので大変だと思うと同時に作成者
を尊敬する気持ちでいっぱいです。中田さん、これからもがんばってください。
これからも重宝させていただきます。
中田さん、ぴゅあさん、この問題につきあっていただいてありがとうございま
した。またよろしくです。
三浦さん、
そうですね。 file: ではなく http: でないと CGI/SSI は動きません。HTTPサーバ上で実行されるからです。
HTML中の URL の記述は、たとえば、HTMLが http://127.0.0.1/sample/test.html などの場合、
<FORM ACTION="http://127.0.0.1/cgi-bin/xxx.cgi">
<FORM ACTION="/cgi-bin/xxx.cgi">
<FORM ACTION="../cgi-bin/xxx.cgi">
いずれでもOKです。
同一サーバ上であれば、むしろ http: から書くことは少ないと思います。
Tomo さん、
404エラーは Perlを起動前に出ますから、本当にその cgiファイルが見つからないのですね。
"D:\a\b\c\\usr\public_html\cgi-bin" で気になるのは usr の前が \\ であることくらいですが。。。
あとは 全角半角の違いくらいしか思いつきません。
まこちゃん、
なるほどよさそうですね。
やりとりを見て不明な点があったらおたずねください。
ha_ru さん、
私は IE5 はまだ使ってみていないのではっきりわかりませんが、
"オンライン"で、"LANで接続" でいいはずですが。。。
localhost の代わりに 127.0.0.1 で、F5で最新の情報に更新してみたりとかでだめですか?
中田さん、早速フォローありがとうございます。
>http://127.0.0.1/ssi/ssisample.shtml で、時刻が表示されないとするとちょっとわかりません。
へ?(^_^;)
こうやって指定するものなんですね。根本的に分かっていませんでした。
IEのアドレス欄にただファイル名を指定していました。
>CGIも http://127.0.0.1/cgi-bin/×××.cgi と指定して動くので正常ですが。。。
これは、htmlの中で指定するときの話だったのですが、これも、このように指定するのが
正しいのですね。
失礼しましたm(__)m
ということで解決しました。ありがとうございました>かきおかさん
三浦さん、間違っているかもしれませんが、
xxx.cgiのファイルの1行目はどーなっています?
>httpdフォルダもperlフォルダも "C:\" の下にぶら下がっています。
という環境であれば、
xxx.cgiのファイルの1行目は、
#!c:\perl\perl.exe
になるとおもいますが。
後、考えられるのは、httpdの設定で、パスの見直ししてみては、いかがでしょう。
ぴゅあさん、中田さんご返事ありがとうございましたm(__)m
一度プロバイダに確認してみます。
今後とも宜しくお願い致します。
tyan
はじめまして。
初心者です。すごく初歩的およびとんちんかんかもしれませんが、質問させてください。
こちらのシステムを使ってhtmlは表示できるのですが、cgiファイルを呼び出そうとする
と、Error 404となり、
「見つかりません。 - CGIスクリプトまたはプログラムがありません : D:\・・・」
とメッセージが表示されます。でも表示されたパスは合っています。ファイルも実際
そこにあります。何が悪いのでしょうか・・・。
httpdのインストール先はD:\a\b\c\です。perlのインストール先はD:\a\b\c\Perl_win32
です。対象のcgiファイルはD:\a\b\c\\usr\public_html\cgi-binに入っています。
質問内容が不充分かもしれませんが、よろしくお願いします。
>中田さん
いろいろと教えていただきありがとうございます。
私の方でもサーバから送られてきたデータや、ブラウザが送ったデータを
知ることが出来ないのかを調査していたらいいものがありましたので報告します。
WSOCKSPY.DLLというものがありました。
www01.tcp-ip.or.jp/~world/document/wsockspyJPhelp/SpyMokuji.htmに説明が
あります。
ダウンロードは、www.yahoo.comでWSOCKSPY.DLLで検索すれば出てきました。
>ぴゅあさん
『HTTP詳説 作ってわかるHTTPプロトコルのすべて』を買ってみて読んでみます。
ありがとうございました。
インターネットエクスプローラ(IE)の最新5で、 localhost にアクセスするにはどのように設定すればいいのでしょうか?オプションで表示される項目がIE3,IE4と違うようなのでわかりません。
やまにしさん、
Content-type と なにかを print するだけの簡単なCGIでもヘルパーを使うと終了しませんか?
三浦さん、
http://127.0.0.1/ssi/ssisample.shtml で、時刻が表示されないとするとちょっとわかりません。
時刻表示は、Perlは使いませんし。。。
CGIも http://127.0.0.1/cgi-bin/×××.cgi と指定して動くので正常ですが。。。
意味が違いますか?
まこちゃん、
ぴゅあさんの紹介している本ももちろん参考になると思いますが、
telnet を使って、実際にHTTPサーバにリクエストを出して生の応答を見るのがいいのではないかと思います。
Windows付属の telnet ではうまくできないので、Console Telnet for Win32などを使うとよいでしょう。
DOSプロンプト上で telnet を起動してから、
> open 127.0.0.1 80
> GET /readme.html HTTP/1.0
> If-Modified-Since: ...
> Host: 127.0.0.1
> (改行)
などとすると、HTTPサーバから応答が返ってきて表示されます。
どのようなヘッダをつけるとどうなるかは本(か RFC2068)をみてみるとよいと思います。
実際には、ブラウザからどのようなリクエストが出るかも見るとよいのですが、ちょっと簡単な方法はわかりません。
そういう簡易サーバも探せばどこかにあるのかも。。。
tyan さん、
パソコンからプロバイダまではLANということになりますね。
ケーブルネットワークのLAN内のPCからホームページを公開することはできないようにしていることもよくあります。
ぴゅあさんも言われているように、プロバイダに可能かどうか問い合わせてみるのがよいと思います。
以前からAnHttpを使わせてもらっているのですが、最近CGIを使ってみようと思い、
いろいろやってみているんですが問題が発生しています。
Win98上でCGI/SSIを実行した場合にリソースが減ってしまうとのことで、ヘルパー
プロセスを使用したいんですが、動きません。と言うか「終わりません」。
「CGIの終了待ち」でとまったままとなってしまいます。
ヘルパープロセスを使用しない場合はリソースが減る以外問題は無いようです。
環境はWin98+IE5、さらにVC6エンタープライズが入っています。
何か解決方法が有れば教えていただきたいのですが…
すいません、使用環境を書いていませんでした。
自分のPC内で使用テストをしている段階です。
httpdフォルダもperlフォルダも "C:\" の下にぶら下がっています。
オプションの設定は特に変更していません。
重ねて、よろしくお願いします。
初めまして。よろしくお願いします(^_^)。
さて、早速ですが、SSIのサンプルプログラムを起動しても、時刻が出ません。
要するにSSIが動いていないということだと思うのですが、どうしたらよいでしょう?
CGIでも、cgiスクリプトの場所を
”http://127.0.0.1/cgi-bin/×××.cgi"
と指定しなければ動かないところを見ると、Pathか何かの設定がおかしいのでしょうか?
CGI,SSIともに初心者です。よろしくお願いします。
>まこちゃん
先月だったかな?やっと手に入れました(売っていなかった訳ではなく手にいれることが出来
なかった(>_<))。まだゆっくり読んでいる時間がないので何処まで書かれているかはまだ判り
ませんが。
『HTTP詳説 作ってわかるHTTPプロトコルのすべて』プレンティスホール
ISBN4-89471-041-2 \4,200+税
確かこの本でしたよね?>中田さん
見付けたもののそのときは手にできなかったのでタイトルを忘れてしまいました。
(同じ日に見付けたJavaScriptの解り易いと思った書籍は結局判らなくなったまま他のを探
してきましたが)
この書籍でかなり解るのではないかと思いますが(?)
>tyanさん
私の持っている情報の中からある程度のことだけ....
まずIPアドレスを調べたというのはプロバイダに対して繋げている(DNSの)IPアドレスでは
なくて、IPCONFIGなどで調べた自分自身のIPアドレスのことですよね?外からアクセスしても
らうにはこのIPアドレスを使うことになります。
An HTTPdが表示しているIPアドレスはLANに対して設定した自分のIPアドレスと同じになって
いる筈と思います<「アドレスをブラウザで入力するとローカルのホームページも無事表示され
ます」。
An HTTPdを表に出すためにはブルータの場合には、外からアクセスできるパソコン(1台
のみ可能らしい)を指定するための設定があるそうです。σ(^ー^)はブルータを使わない方法
を採っているので詳しいところまでは判りませんが。LANモデムとやらにそのような設定が必要
なのかもしれません。またプロバイダ側がそのような設定をしてあるかにもよるのでしょう。LAN
モデム?はプロバイダから指定或いは供給されているのだと思いますので、合わせてプロバイダ
に相談してみてはどうでしょうか。
いつもAN HTTP Serverを使わさせて頂いています。
AN HTTP Serverとは直接関係がないのですが、もしよろしければ
教えてください。
現在WEBサーバと通信するプログラムを作っているのですがブラウザ
よりPOSTまたはPUTを実行した時に、サーバ〜ブラウザ間でどのような
メッセージのやり取りをしているのかを知りたいと思っています。
出来あがったプログラムをAN HTTP Serverを使用して動作確認をしよう
と思っています。
AN HTTP Serverに直接関係がない内容で申し訳ないのですがよろしく
お願いします。
中田さまへ
初心者です、宜しくお願い致します。
ANhttpdの説明や解説紹介されたページをみて「すばらしい」と思い
早速インストールしてみました(^○^)
実は加入のプロバイダはダイヤルアップではなく、ケーブルでつながっています。
つながっている順番は
パソコン-->LANボード-->LANモデム?(ハブの一種かな〜?)-->ケーブル-->プロバイダ
と言う感じでつながっていて、24時間接続されています。
(ちなみに使いほーだいで月額5000円のみ・電話代も掛かりません)
ところで自分のパソコンにAN httpdを設置し設定も済ませました。
ANhttpdの下のほうに出ていますアドレスをブラウザで入力すると
ローカルのホームページも無事表示されます。
ところが、知人に別の場所からネットに接続済みのパソコンで
そのアドレスを打ち込んで呼び出してもらうと、
こちらのパソコンにつながらずページも表示されません。
ANhttpdが反応する様子がないのです(T_T)
色々と調べて見ましたところ、プロバイダから自動で取得しているアドレスは
202.....のアドレスで
ANhttpdの下のほうに出ているアドレスは
172...というアドレスになっているようです。
どうしたら上手くローカルマシンのページを公開できるのでしょうか?
また、実際の取得アドレスとANhttpdに表示されるアドレスが
異なっているのはどうしてでしょうか?
初心者で良くわかっておりません。
お教え願えれば幸いです。
長文になりましたが、宜しくお願い致します。m(__)m
きっちょさん、
とりあえずOKということですね。またどうぞ。
aoikaze さん、
設置された掲示板がうまく動いていないようですね。
掲示板のリンクも最後にスラッシュがあってサーバエラーになっているようです。
CGIの内容を説明してもらえば助言できると思いますが。
にゃんこタレさん、
解決とのことでよかったです。(ちょっと症状が不思議といえば不思議ですが。。。)
Kojiさん、
なるほどそうかもしれません。また何かありましたらどうぞ。
なんか、うまくいかないのでKENT WEBさんところのスクリプトに変えちゃいました。
そうしたら、クッキーもうまくいきました。
返信機能も搭載してるのでこれいこうと思います。
であであ。
また、何かあったときには、よろしくお願いします。
>中田さん、ひゅあさん
レスありがとうございます。
もうちょっと、いぢってみます。
perlは、なんだろ??
perl.exeなんですけど、なんだろ??
perl for win32ですねえ。
う〜ん。
スクリプトは、まだ、いぢってないのに〜。
こんばんわ、おじゃまします。
http://www.interq.or.jp/japan/aoikaze/
◇中田昭雄さま
ええと、「CGIが動かせない」の件ですが、なんとか解決できてしまいました。
実は私の大ドジで、Perlの解凍先のファイルが全然違う所だということに
気づかず、HTTPDの設定でPerlのある場所を解凍前のアドレスを書いて
いたせいだという事がわかりました。
大変失礼致しました…
ご助言本当にありがとうございました。
いつもお世話になっております。
FCで調べたら、"EnableAutodial"がくさいのまではわかったんですが、
どうしてもできないので、よく調べたら、"EnableAutodial"は
二つの場所にあったんです。僕の場合は、
[HKEY_LOCAL_MACHINE\Config\0001\Software\Microsoft\windows
\CurrentVersion\Internet Settings]
[HKEY_USERS\.Default\Software\Microsoft\Windows\CurrentVersion\
Internet Settings]
の2カ所にありました。ありがとうございました。
今後もよろしくお願いします。
aya さん、
CGIの出力の処理については AN HTTPD はヘッダの追加はしますが スクリプトの出力に手は加えません。
(Location: ヘッダを出す時は相対URLを絶対URLに変更しますが。)
そのあたりの処理法の違いがあるのかもしれません。
今後の参考にしたいので、その print 分の内容を教えていただけませんか?
英語の"スクリプト"には "台本" という訳語もある通り、その台本通りに実行されるものです。
テキストで書かれていて書かれた通りに実行されるものをスクリプトと呼んでいると思います。
一般には、それぞれのスクリプトには、そのスクリプトを解釈して実行するプログラムがあるのが普通です。実行するプログラムをスクリプト実行エンジンなどと呼ぶこともあります。
実行する過程はユーザからは見えにくいので、スクリプト自体が実行プログラムのように見えます。
その意味ではスクリプトはプログラムの一種ととれないこともありません。
えむけいさん、
まだ対策するところまでは いっていませんでした。早速直せます。
Koji さん、
オプションを切り替える前後でレジストリをファイルに保存し FC などで比較するとわかります。
私のところでは、HKEY_LOCAL_MACHINE\Config\0001\Software\Microsoft\Windows\CurrentVersion\Internet Settings の "EnableAutodial" だけが変わっていました。
中脇さん、
「規定の形式になっていない」というのはCGIが返すメッセージでしょうか(?)。
だとすると標準入力(リクエストのボディ)がおかしいということになりますが、けっこう長い入力の場合かもしれません。
調べてみます。
>ayaさん
取り敢えずは解決してよかったです。
ブラウザはContent-typeを見て後続のデータが何であるかを判断して処理しているのでしょ
う。IEとネスケは開発している会社が違うので当然ながら同じ処理はしていません。IEは処理が
甘くネスケはチェックが厳しいというところなのでしょうか。どちらが良いかは判りませんが。
IEとネスケで処理が違うというのはHTML言語の違いとしても現れています。新化としてのそれ
ぞれ独自の拡張というのは良いのでしょうが、使う側にとってみればどちらにターゲットを置く
か、また共存させるためにはそれなりの処置が必要という面倒なこともありますが。同じブラウザ
でバージョンによる違いは進化の過程で当然のことですから、どのバージョンに基準を置くか
ということになりますが、IEとネスケとの違いほど大きくはありませんよね。サイトを作成する
ときには色々と悩まされるものです。
で、Content-typeの前にprint文があったということはそれが空行であろうが何かを出力して
いようが同じことです。空行も改行ということをしている(設定にもよるが筈)ので何かを出力
しているときと同じと思います。
.txtファイル等の場合はContent-typeを出力しないままブラウザに渡すことになるので、Content-type
が来なかったらデフォルトでtext/plainになるのでしょう。IEはその後に来たContent-typeで
それまでに送られてきたものを破棄していたのに対してネスケでは最初に決められたContent-type
で処理を続ける仕様であるためにこのようになったものと思います。An HTTPdに関してはどのよ
うに処理しているかは中田さんでなければ解らないのだと思いますが、IE相当の処理をしてから
送っていたので発見できなかったのでしょう。
プログラムとはPerlなどのことですか?スクリプトとは色々ありますけど、シェルスクリプト
ならMSでいうところのバッチファイルに相当します。これはコマンドを実行してその結果を得
るものです。JavaScriptであればプログラム(CGI/Perlなど)がサーバ上で処理してブラウザ
に結果を渡すことに対してJavaScriptはブラウザ(クライアント)上で処理してブラウザに
結果を出力するという点で呼び方が違うだけでどちらも(見た目も)同じようなもの(プログラム)
と言えると思います。
JavaScriptはブラウザが行っている処理の各モジュールを関数のような形などで呼び出せるよ
うにして、またプログラムとしての制御機能を付加したものと考えられると解釈しています。多
くはCGIが使えないサーバにおいてJavaScriptでCGI相当のことを実現させています。
ものによって同じようなことが色々な言葉で呼ばれるのは混乱のもとですし、ただそうするし
かなかったのかも知れませんが、某社のように何でもかんでも独自の名前を付けようとしている
感のあるのも混乱の元になるという点ではどうかなという気もするのですが。
CGI(Perl等)とJavaScriptのことを言っておられるのなら、ベースをどちらかにおいて必要
なら他方で補完するという考え方で良いと思います。
先のContent-typeに関連してはContent-typeの出力から出力完了までが1つのページを構成
する出力となる訳ですが、一回に1つのContent-typeしか出せませんよね?たぶん。方法はあ
るのかもしれませんが、複数のフレームに対して1回のCGIの呼び出しで同時に処理できればな
ぁと思うことはよくあるのですが、それを実現するためにJavaScriptを組み合わせるのが一般
的であるようです。
ayaです。
ご迷惑をかけていた件ですがなおりました。原因ははっきり把握していないの
ですが・・。
実はContent-typeのprint行の前に、print行を一つ書いていました。CGIの動作
勉強中に書いた一行をそのまま残していたみいです。(自分のプログラムなの
に把握していなかった・・)それが原因でContent-typeをtext/htmlに指定して
いたのに、text/plainで送信されてきていたみたいです・・。
でも、そういうものなんですか?確かContent-typeの前には空行を作ってはいけ
ないというのは勉強していたんですけど・・。しかもIEでは問題なく動いていた
からいいものだと思っていたし、さらにAN HTTPDではIEもNETSCAPEも問題なく動
いていたのでそれが原因とは思わなくていろいろ考えてしまいました。
そこらへんのことがおわかりの方は教えてください。
中田さんをはじめ、いろいろ考えてくださった方、書きこみをしてくださった方
本当にどうもありがとうございました。
またわからないことがあればお伺いしたいと思います。
あ、一つ教えてほしいんですけど、プログラムとスクリプトってどう違うんですか
?どういう使い分けをしたらいいんでしょうか。教えてください。
キャッシュの途中切れの件です。
すでに判明済みかもしれませんが、
1.ブラウザがリソースを要求する。
2.転送が中断されて、途中で切れたデータがキャッシュに残る。
3.ブラウザが再度同じリソースを要求する。
4.AnHTTPDが、途中切れしたキャッシュのヘッダにあるLast-Modifiedから生成したIf-Modified-Sinceをヘッダに付けて、サーバに転送する。
5.サーバが304 Not Modifiedを返す。
6.ブラウザには途中切れしたキャッシュの内容が200で返される(1.15b)。
という筋書きで途中切れが再発したようです。
対策としては、途中切れしているキャッシュのLast-Modifiedは使わないようにすればいいと思います。
いつもお世話になっております。
Win95+IE4.01(+SP1)の環境で使用しております。
ローカルのHTMLファイルをデーモンを通して見るために、
FAQを参照すると、
IEのバージョン3の場合は、オプションの「接続」で、
「必要に応じてインターネットに接続する」のチェックをはずしてください。
バージョン4の場合は、インターネットオプションの「接続」で、
「LANを使用してインターネットに接続」を選択してください。
となっておりますが、直接レジストリを変更してラジオボタンのチェックを
変えるためには、どの値を変更すればいいかご存じの方、いらっしゃいませんでしょうか。
以上、よろしくお願いします。
AN-HTTPのバグのようなので報告します。
AN-HTTPをWinNT4WSでキャッシュなしのプロクシサーバとして動作させLANに繋がったWin95マシンから
プロクシ経由でフォームがPOSTメソッドの掲示板やサーチエンジン登録などに書きこむと送信されたデータが壊れるのか
FORMデータが規定の形式になっていないと弾かれます。
利用バージョンは1.15bです。
マイコーさん、
http://www.tcd.co.jp/seihin/NC/index.htmlで設定画面を見る限りでは、LAN設定/NATテーブル設定でいいように思いますが。
どなたかテレコムデバイスのルータNetCruzとこちらのソフトをご利用している方いらっしゃいませんでしょうか。グローバルIPとローカルIPを変換するとことがうまくいっていないようです。IPアドレスにアクセスしてもルータの設定画面になってしまいます。
メーカーに聞いてもクリティカったアドバイスは帰ってきません。
メーカーが言うには、「ソフトの方の設定」だそうなんですが、自分はそう思いません。
何かいいアドバイスがあれば教えてください。
>中田さん
特にプロバイダ側はサーバ情報をこれ以上は公開していないようなので詳しいことは判りま
せん。
>きっちょさん
いずれの件もAn HTTPd+Perl.exe/PerlIS.dllで機能していることを確認済みです(自作CGI)。
最近は時間がなくて動かしていませんが。
ただし、i486用以外にもあるらしい?(i586?Pentium用に最適化されているのかな?)ので
何か問題があるのかも知れませんがi486でしか確認できていないので悪しからず。GWにはよう
やくPentiumマシンが動き出す予定ですが。
あと、ActivePerlとかPerlExとか(PerlはPerlExに変わった?)色々と出ているようですが
チェックしている時間がなくて確認は出来ていません。これらだとまた違うのかもしれません。
ちらっと見たところではActivePerlには問題が残っていると書かれていたような?
何とかGWには休みが取れそうなので色々たまっていることをやろうと思っていますが。
きっちょさん、
設定が悪いのでしょう。もっとも AN HTTPD に POST を区別する設定はありませんから、スクリプトの方かもしれませんが。
クッキーもスクリプトの問題だと思いますが、ブラウザを クッキーを受ける時に警告メッセージが出るように設定して、本当にクッキーが出ているか確認してみた方がよいでしょう。
どちらも PerlIS.dll を使っているときは一抹の不安はありますが。。
ぴゅあさん、
コンテンツを見て判断するということは、CGIWrap かその類でしょうか(?)。
Apache 単独ではそこまで設定する項目はなかったような。。。
実行権をはずして Forbidden は納得できますけど。
どうも。はじめまして。
ネットサーフレスキューさんのcgiスクリプトを使って、社内掲示板を作ったのですが、
POSTメソッドがつかえず、GETメソッドを使っています。
前は、POSTメソッドでも使えたような気がしたんですけど、設定が悪いんですか?
ここで質問していいのかなあ。
掲示板のクッキーを食べることができないのは、httpdのせい?掲示板スクリプトのせい?
確認ブラウザは、NC4.5とIE4です。
>仙太郎さん
LANに関して言うなら何もないでしょう。
普通にインストールして単純に使うだけなら。
あるとすれば、もしポート80がぶつかっているなら(AN HTTPdを起動したときにエラー通知
が出る)例えば8080に変えてみるくらいです。
このときブラウザではhttp://192.168.0.1:8080/~xxxx/のように指定することになります。
LANの中で 動かす時の注意 ありますか??
漠然すぎて ごめんなさい
聞きたいことが まとまってなくて
はぅ
やっぱし、<,>逆だった(T_T)
まあ、伝えたいことは解るから良いわな(~_~;)
>中田さん
Forbiddenが出たので
print ">HTML<>HEAD<>/HEAD<>BODY<\n";
print ">H1<Test>/H1<\n";
print ">/BODY<>/HTML<\n";
としました。
先の投稿の前に念のため消して試しておいたんですけどやっぱり駄目でした。
AN HTTPdではなくてプロバイダのサーバですよ。
これはブラウザに関係しない筈なのでネスケ v4.51/ja for Winだけで確認しましたけど。
ログから確認するとApache/1.2.6(確かSUN-OS),プロトコルHTTP/1.0みたいです。
ログとはアクセスログとして組み込んであるものです。
サーバの入れ替えが行われる前にどうだったかは忘れましたが今の環境では実行権を外すだ
けでForbiddenとなるようです。
ぴゅあさん、(サンプルについて)
print "<HTML><BODY><H1>Test</H1></BODY></HTML>\n";
だと実行できるのでしょうか?
そうだとするとちょっと不思議ですが。。
>ayaさん
IEでは正常に動作することを確認しているんですよね?
それでネスケだけ駄目というのが解らないんですけど。
もしIEでの確認をしていないなら実行権を与えていないということはないでしょうか。
うちのサーバ(Apacheだったかな?)ではサーバの増強と共に権限にも厳しくなったらし
く確認できませんでしたが実行権を与え忘れているとそのまま表示してしまうサーバもあるの
ではないかと思います。
因みにうちのサーバではHTMLタグも出力してやらないと動作しないようになっている(中田
さんの挙げたサンプルは実行できない)ようです。
>中田昭雄さん
判りました、じゃあ何ともないんですね。
ご説明頂いたとうりに、ちょっと名前変えてやってみます。
ありがとうございましたm(__)m
仙太郎さん、
もちろんリンクは歓迎です。よろしく。
aya さん、
ちょっとわかりませんが、
#!/usr/local/bin/perl
print "Content-type: text/html\n\n";
print "<H1>Test</H1>\n";
というスクリプトでも Netscape で text/plain になってしまうのでしょうか?
サーバソフトは何でしょうか? Apache かあるいは IIS ?
ともっちさん、
それでよいのですが、
HTTPサーバ名は、下の2つのうちどちらかになっていると思います。
(1)コントロールパネル/ネットワーク/ユーザ名 の コンピュータ名
(2)TCP/IPのプロパティが「DNSを使う」になっている場合は、そこの ホスト名
コンピュータ名ないしホスト名をそれらしく変えた方がよいでしょう。
ただし、このHTTPサーバ名は環境変数を出力するCGIを作らなければ外には出ないはずだと思います。
リンク貼ってもいいですか??
ご無沙汰してます
ayaです。前回の質問です。少し間があいてしまったのですが。
CGIの内容はprint文でHTMLを出力するものです。ネットスケープだけで
この問題(そのHTMLの内容が表示されてしまう)が発生します。
AN HTTPD ではうまく動くのですが、実際のサーバにのせるとうまくいきません。
そのサーバは.htaccessを作る必要がないサーバです。どんな原因が考えられますか?
MIMEを調べると、AN HTTPDのときはtext/htmlでくるのですが、サーバにのせると
text/plainできてしまいます。わかれば教えてください。よろしくです。
ちょっと間抜けな質問で恐縮なのですが。
AN HTTPD1.15のインストールに成功したと思って立ち上げて見たら、ファイル、編集とかのあるダイアログ(?)の画面で、「HTTPサーバ名」が私のダイヤルアップのアクセスIDになっているのです。ちょっと怖いな、大丈夫なのかなと不安なのですが、こういうものなんでしょうか?それとも、単に私が設定を間違えているのでしょうか?(1.13でもやってみましたが、同じでした。OSは窓98です)
一応FAQも見たんですけど、判らなくて。他の説明してるサイトも見たんですけど、こんなこと判らない人は居ないようで。
この程度のヤツが使っちゃいけないのかもしれないんですけど、覚えれたら良いなと思ってこれから頑張るつもりです。
これで良いのか、ダメなのかだけで結構です。心細いので、どなたか教えて頂けないでしょうか?宜しくお願いします。
皆さん、お返事有り難うございました。
ファイルの管理や保全性の点でNTWSはWindows9xより優れていますから、OSとしてはNTWSを使いたかったのです。
一方、皆さんご承知のとおり、NTWSにはPWSが付属しているのですが、これの同時接続制限がNTWSと同じ10になっています。MSのサポート情報に拠れば、IEは1接続でソケットを4つ開く可能性があるので、PWSのレジストリの数値を10から40に変えることは認めているようです。
私の今考えている使い方では、瞬間最大で10台を超えるか超えないか(常時は数台)ですし、マシン性能で自ずと制約されてくると思います。
微妙な発言で波紋を呼んだことを陳謝いたします。
同時接続数については、ベータ版で制限を実装して非難が集中し、ライセンスへの記述になったものと聞いています。
この話は技術的な問題ではないので、公開の場では「Workstation でも十分使えます」とはいいにくいのでくちごもるわけです。
何度かお話ししたかもしれませんが、AN HTTPDの作り始めの頃には Apache for Win32 はまだ出ていませんでした。3年前に Apache for Win32 があったら、AN HTTPD は作らなかったかもしれません。
うえぽんさん、
ヘルパーは起動時に立ち上がります。そしてhttpdからのCGI起動のリクエスト待ちになります。
httpdプロセスとヘルパープロセスの間は共有メモリを使ってやりとりをしているのでまだ不具合があるのかもしれません。どんな時にハングしやすいかなど情報がありましたらお知らせ下さい。
タイミングだけの問題かもしれませんが。
>Pico-Chan さん
NTWSの同時接続数の制限については、
http://sl.hunet.ne.jp/index/f-chlng2.htm
の、
#2 NT Workstationで大丈夫? (12.8/98)
を見て下さい。
同時接続数10の制限については、どうも相当玉虫色の記述となっているようですね。
#ここから独り言
AnHTTPを使ってみてつくづく「意識せずに日本語が使えるのはいいな」と思いました。
あと、「慣れればCUIベースの方がイイ」と言いますが、不慣れな私はやっぱりGUIで
設定をしたい。
私のマシンにはAnHTTPとApache1.3.6が入っていて全く同じ動きをするように
設定してありますが、AnHTTPの方がラクです。
(初心者だからです。慣れればどうってことない?)
あと、開発者から直接Resが付くのは、やっぱり心強いですよね。
(中田さん、ご苦労様です。)
LinuxはApache、WinはAnHTTP、そんな日が来るよう、応援しています。
では。
Pico-Chan さんへ追記
・NTの方が良いという点
質問の内容からしてAN HTTP Serverをインタネ上に出すことを考えておられるのだと思いま
す。
ひとつにWin95/98はマルチタスクに充分に対応できていないように感じます。NTはマルチ
ユーザ,95/98はシングルユーザの環境で使われることを前提としているのでしょうか。MSの
開発スタッフではないのでその辺の仕様は判りませんが、NTは複数のプロセスがちゃんとディスパッチ
されて動作するのに対して、95/98はちょっと何かを動かすとそのプロセスに集中してし
まうように感じます。AN HTTP Server自身の動作は一瞬で完了してしまうものと思いますがCGI
を使うとその違いが大きく現れてくるのではないかと思います。
もう一つは安定性の問題です。以前、95で動作させていたときには何等かの原因でWin自体が
固まってしまうということが頻繁に発生していました。これは98に変えてからも(24時間稼動さ
せっぱなしですが)何度かリブートが必要になっています。一説には定期的にリブートさせた方
が良いと言われているようです。95のときには主にインストーラ(Winのセットアッププログラム)
にバグがあることをつきとめ対処方法を探し出しました(それでも完全ではなくハングアップ
は発生していたが)。98でも既にインストーラのバグらしいものを見つけています。これはGW
に入ればようやく時間が出来そうなので調べてみようと思っています。NTの方はNTSを使ってい
ますが殆ど電源を落としたことはありません。テレホの間自動運転をさせていますが95のときに
ハングアップするたびにダイヤルアップIPアドレスが変わるので面倒でしたが(大抵一晩に一回
は発生する)、NTにしてからまずシステムダウンしたことはありません。因みに95/98で使って
いるマシンとNTで使っているマシンは偶然にも全く同じハード環境になっています。
この2番目の理由からも開発業務では95/98よりNTの方が多く使われているのでしょう(σ(^ー^)
が関わった開発の中では/NTSの端末にはNTWでないといけないと思いこんでいる開発者も居るよ
うですが(^ー^;))。
テレホの自動運転を考えているなら95/98よりNTにした方が良いと思います。
尤もマシンが古いために普通に使っている人とは違った特殊な環境になっていることが、バグ
の部分が影響して出てきているのかもしれませんが。
NTWはNTSと全く同じカーネル(だったかな?)であるにも関わらず(確か)レジストリの設定
を変えてわざと重くしているとか。どうなったのかな?個人的にはNTSを買わせるためとしか思
えない....
NTSで稼動させるよりNTWの方が少し重くなる(システムが巨大な分95/98よりは重いでしょう
が/今は98の方がかなり重い)ので(ということは)同じに入って来れる人(軽さ)がNTSよりも
制限されることにはなりますが、95/98よりはメリットがあると思うのですがどうでしょう。
もっとアクセスできる数(先の投稿が目安/現在はマシンスペックもかなり上がっているので
既に過去の数字かもしれませんが)を増やしたいならLinuxを導入するのがベストなのでしょう。
軽さは全然違います。AN HTTP Serverは利用できなくなりますが。
ちょっとAN HTTP Serverとはかけ離れた内容で長くなってしまってごめんなさい。
いつもありがたくAN HTTPを使用させていただいております。
現在v1.15bを使用させていただいており、かなり安定して動作しているのでうれしい限りです。
ただ、Windows98環境でヘルパープロセスをチェックして使用していると、たまにデータ転送中の雷マーク(?)が出たままハングすることがあるので、現在はチェックをはずして使用させていただいています。
私のところでは、AT互換機、PC-9821のどちらでも同じような状態になるのですが、このような状況になるのは私だけなのでしょうか? 他のコメントを見てもこんなこと誰も書いてないし(^^;
それと、ヘルパープロセスをチェックしているときは、AN HTTPを立ち上げただけでも「Helper」が動作しているようですが、これはこれでいいのでしょうか?
いろいろ書いて申し訳ありませんが、よろしくお願いします。
中田さんへ
そうですか。原因が分かってほっとしました。
何となく気持ちが悪かったものですから。
よろしくお願いします。
あら....
>Pico-Chan さん
そこでいう接続数とは外からNT「自身」に接続して来たときの接続数の筈です。
既に自分自身が入っているので残り9接続ということになりますが(筈)自分自身がインタネ
上に出ていってその回線上を使っている(共有してと言えば良いのか、送受信のデータの中に他
の人からの送受信データが含まれている=自分自身が行っている送受信とは内容が違うものの同
じ種類のデータ通信)ということでNT自身としての接続数は変わらない(使われない)筈です。
後はマシンパワーとAN HTTP Serverの制限によります。
普通は一瞬しかデータ転送が発生しないので問題はない筈ですがチャットCGIなどでは頻繁に
データ通信が行われるので5MBとかの専用線なら兎も角64KB ISDN程度であれば10人程度が快
適に通信できる上限でしょう。FTPサーバを使う場合には人数が増えるに従って極端に重くな
ります(単純計算64KB/人数分という感じ)。従ってFTPサーバに入ってくるのは一人か二人程
度が快適な人数でしょう。
と思うのですが。
Pico-Chan さん、
使ってみて、何かありましたらどうぞ。
NTWSの接続数の制限についてはどういえばいいか。。。どうもはっきりとはわかりません。
にゃんこタレさん、
ブラウザに打ち込んだ URL はどんな内容でしょうか?
http://127.0.0.1/ のあとどういうふうか、という意味ですが。
yoshiさん、
ActivePerl の PerlIS.dll では、513からやり方が変わったようですね。
History に GetServerVariable(PATH_TRANSLATED) から ServerSupportFunction(HSE_REQ_MAP_URL_TO_PATH) に変えたと書いてありました。
AN HTTPD 側で対応するようにします。
ayaさん、
ちょっとわかりませんが、単純なCGIではOKでその検索結果を出す時だけそうなるとすると、スクリプトの問題のような気もします。
検索結果をHTMLファイルに入れて Location: で呼び出すような方式でしょうか?
こばやしさん、
キャッシュオンリーでは有効期限はチェックしないはずだと思いましたが、見直してみます。
はじめまして。
このような素晴らしいソフトが世の中に存在していたのですね!
これから使ってみたいと思います。
ところで、NT4.0-Workstation上で動作させた場合、接続ユーザ数は10に制限されるのでしょうか? それならWindows9xで動かした方がいいのかな、などと思っています。
はじめまして、にゃんこタレと申します。
KENT WEBさんから来ました☆
早速ですが、CGIを動かせなくて困っています。
CGIテストページのCGIは正常に動くのですが、
ブラウザからアドレスをうってCGIを動かそうとすると、
ブラウザに「ホスト127.0.0.1を見つけた」という内容のメッセージが出て後、
応答がなくなり、そのまま時間がたってアクセスが切れてしまうのです。
ちなみにhtml文書は普通に見られます。
CGIスクリプトに問題があるのでは、と思いいろいろ試しましたが、
どれも同じ結果でした。
どうかご助言よろしくお願いします。
>PerlIS.dll はどこの何というバージョンでしょうか?
アクティブパールの5.1.3をインストールしましたが、そのパッケージの中に
含まれているものです。
ちなみに、51KBで99/02/26 18:25となっています。
ayaです。ずいぶんお久しぶりになります。AN HTTPDを利用してCGIを勉強し、
ホームページを造ったのですが、一つ問題があるので誰か教えてください。
FORMを使い検索をするCGIで、検索開始ボタンを押すと、検索結果を表示する
CGIなのですが、これをIEで実行すると問題ないのですが、NETSCAPEで実行
すると、HTML自体が表示されてしまいます。NETSCAPEでMIMEファイルを調べて
みるとtext/plainになってしまっています。なぜでしょうか。
そこのサーバは.htaccessの設定はいらないところです。IEでは正常に作動
します。わかる方教えてください。よろしくお願いします。
AN HTTPD愛用しております。
最近気がついたのですが、
キャッシュのみで使用している時にもキャッシュ有効期限をチェックしている様で、
古い物を見ようとすると"192.168.1.1に接続中"が出たまま停止してしまうことがあります。
キャッシュ有効期限をチェックをはずせば問題ないのですが、インターネットに
アクセスする際に2ヶ所設定を変えなければならず少し不便です。
キャッシュのみで使用する場合はキャッシュ有効期限を無条件でチェックしないように
出来ないでしょうか?
実在するサーバからかけ離れた機能の追加要望かもしれない...
ひろつぐさん、
Win95/98では、標準エラー出力は標準出力につながっています。
WinNTでは、標準エラー出力へそのまま出て(標準出力に何か出ていれば)どこにも出てきません。
。。。要検討ですね。
an httpdは大変良いですね。
結構、長い間使わせて頂いています。
1つ質問をさせてください.
an httpdのCGI(perl)でprint stderrを実行した場合、どこに出力されるのでしょうか?
apacheの場合は、error_logに出力される様ですが…。
すいませんが、よろしく、お願いします。
返事が遅れましたm(_ _)m
解決されていれば良いのですが・・
tockeyさん>
>残念ながら、ちゃんとHidemaru.exeを設定しています。
ありゃりゃ。そうでしたか(汗)
私も今日 AnHTTPD v1.15b にバージョンアップして
ログビューアの設定をしてみました。
が、問題なく秀丸が起動しています。
使用環境の問題だとすれば、私は
Windows98 + NN4.51 & 秀丸 v2.28 ですので、
役には立たないです(^^;
失礼しました〜。
ぴゅあさん、
AN HTTPD は、HTTP/1.1 にできるだけ合わせようとしているつもりです。
独自にやれるのは、設定部分やCGI/SSIの動作の実装部分でしょう。
一般のサーバというのがUNIX上のサーバのことを指すとすれば、WindowsとUNIXとの違いに起因する部分は説明が必要かもしれませんが。
パーミッション特に実行権のあたりの話かな(?)と思うのですが。。。
> 最近(一時期)実在するサーバからかけ離れた機能の追加の要望が多くあるなぁと感じたこ
>とはあるのですが、
たとえばどんな要望ですか? マジでぜんぜん見当がつかないのでさしつかえなければ例を挙げていただけませんか?
>中田さん
../は、ここの(プロバイダの)サーバでもちゃんと対応しているようですね。これが一般
てきなサーバの動作であるなら、処理するべきなのでしょう。
最近(一時期)実在するサーバからかけ離れた機能の追加の要望が多くあるなぁと感じたこ
とはあるのですが、一つはAN HTTP Serverが現存するサーバの仕様に反響を与えられるまで
になれば良いことだと思う反面、AN HTTP Serverに慣れすぎてしまうと一般のサーバで正常
に動く文書を作るときに混乱することにならないかなという気もしました。
AN HTTP Server独自の機能(即ちHTTP/1.1(だったかな?)から離れるということですよね)
がどの部分であるのか明確にしておくのが良いのではないかと思ったりします。AN HTTP Server
のみで運用している方々には必要のないものではありますが。
yoshiさん、
そうですか。そのスクリプトで HSE_REQ_MAP_URL_TO_PATH が必要になるとするとちょっと変ですね。
一行目の #!i:/perl/bin/perl を変えてもかわらないでしょうね。。。
PerlIS.dll はどこの何というバージョンでしょうか?
高橋さん、
なるほど。
現在 AN HTTPD は ../ を含むURLは無条件にはじきますが、ルートより上にあがらなければ通してもよいのかもしれませんね。そうすることを考えましょう。
ブラウザは http://localhost/hobbit/index.html と解釈するでしょうから、HTML-lint がそうしてくれれば確かにその方がいいですね。
以前質問させて頂いた内容でまことに恐縮ですが、
もう一度質問させて頂きます。
実は下記のような非常に簡単な内容のCGIを
試しにPerlIS.dllで実行してみたのですが、
やはり下記のようなエラーとなりました。
このような簡単なものでも動かないという
ことは何か私の設定に問題があるのかとも
思います。
何か考えられることがありましたら、
お教え下さい。
宜しくお願いします。
[現象]
PerlIS.dllで実行時、エラーとなる
[ウェブ上の表示]
'\cgi-bin\test.cgi' script produced no output
[エラーログ]
Fri Apr 16 11:57:17 1999 ISAPI: ServerSupportFunction(HSE_REQ_MAP_URL_TO_PATH) not supported.
[test.cgiの内容]
#!i:/perl/bin/perl
print "Content-type: text/html\n\n";
print "<TITLE>テスト</TITLE>\n";
print "<BODY>うまく動くかな?</BODY>\n";
BZGさん wrote:
> ログビューアの設定で、Hmsetup.exe を指定していませんか?
> これは秀丸の環境設定プログラムで、実行すると秀丸のセットアップ画面になります。
> Hidemaru.exe を指定すると大丈夫だと思います。
BZGさんありがとうございます。
残念ながら、ちゃんとHidemaru.exeを設定しています。
何らかの理由でHidemaru.exeの代わりにHmsetup.exeを起動してしまってるようです。
しかも、手動でHmsetup.exeを起動した場合既にセットアップが完了している旨が書かれた
画面が出ますが、AnHttpdのログを開くから起動すると初めてセットアップをした時の画面
が現れます。
再現条件が分かりました。
高橋のan HTTPD に/hobbitという仮想パスを作っていて、その下に/tolkienという
サブフォルダがあります。このサブフォルダ内のhtml文書のチェックをしました。
ここで、http://の参照先をチェックさせると、この文書から、一つ上の階層を参照
するために、
href=../index.html
というタグがあったので、htmllintは
http://localhost/hobbit/tolkien/../index.html
という文書を要求してこれがエラーになっているようです。
errors.logにも載っていました。
html lintが ../ を解釈してくれてもうまく行くかと思いますが、
一応ご報告まで。
tockeyさん>
>秀丸エディタをログビューアに設定し、「ログを開く」メニューからログを開こうとすると
>秀丸のセットアップ画面が出ます。
ログビューアの設定で、Hmsetup.exe を指定していませんか?
これは秀丸の環境設定プログラムで、実行すると秀丸のセットアップ画面になります。
Hidemaru.exe を指定すると大丈夫だと思います。
では
お久しぶりです。
忙しくて最近いぢっているひまが全くありませんが....
★ログを開くときの動作がおかしい件に付いて
確認してみましたが全く問題なく表示されました。
ただし他の人と違うと思われる点は
実際に作られたログファイルがない(再構築してから格納されるべき場所をまだちゃんと作っ
てない(^ー^;))ため適当なファイルを選んで開いてみたこと(ただし基本的な動作には変わりは
ない筈です。パラメータもちゃんと渡されているようですし)。
クリーンな状態にしたいために(本来ならレジストリも削除するべきですが設定しなおすのが
面倒なのでそれは省略して)AN HTTP Serverをインストールしているフォルダ内を全て削除し
てフルセットを入れるようにしている。差分によるアップデートではない。
というところでしょうか。
もしかしたらビューアの設定のところが壊れているか、改めて設定したのなら何か間違えてい
るのかということもあるのかも知れませんが(発生している状況が変なような気もしますが)。
エディタ側がおかしくなっているということも考えられなくはないでしょうが、普通に使う分
にはちゃんと動いているのでしょうし。
なお、WindowsNT4.0 Server + SP4 + IE5.0,AN HTTP Server v1.15bです。
中田様、早速返答いただきありがとうございます。
私の投稿で一部わかりにくい表現がありましたので訂正します。
本文中で「エラーログ」と表現しているものはすべて「ログ」と読み替えて下さい。
では、宜しくお願いします。
こんばんわ、かきおかです。
中田さん、ドメイン/ホストフィルタ組み込み対応していただけるとの事、
ありがとうございます。
こんなに早くレスポンスが返ってくるとは思わなかったので感動してます。
AN HTTPを使用して、気になることがあったらまた、質問しますね。
今後ともよろしくおねがいします。
かきおかさん、
ドメイン/ホスト名でのフィルタはできた方がいいですね。
1.15b まででは未対応ですので、組み込みを考えます。
吉田さん、
はい、残念ながら自動削除時の問題は 1.15[ab] では変わっていません。
現在キャッシュファイルを毎回全部調べ直すようになっていて、かつ、メモリ上に全部情報を載せる方式なので、これを変える予定です。
対策を施したらそれを明記しますので、しばらくお待ちを。
ログについては、秀丸云々というのがちょっと不思議ですが、調べてみます。
tockey さん、
了解しました。調べて対応します。
Heiny-Meederさん、
現在のところ Apache でいう外部モジュールです。
Perlスクリプトで perl.exe を起動するのと同じような感じで php.exe を別プロセスとして起動しています。
Apache 用の mod_php が使えるようにするのはちょっと大変なので。
また、PHP3の ISAPI の DLL はまだ一般公開していないようです。
はじめまして。かきおかと申します。
Ver1.14を使用していますが、質問があります。
#はっ、すでにバージョンが上がっている!(^^;)
#ダウンロードせねばっ!
アクセス制御はIPを指定してフィルタをかけていますが、
ドメインやアクセスしたホスト名でのアクセス制御を行いたいのですが、
機能として盛り込んでくれると非常に助かるのですが。
ログファイルとかには、ホスト名+ドメイン名って形でログに書かれているので、
ドメイン毎、ホスト毎のアクセス制御ができると予想しています。(^^;)
実は、ホスト名だけのアクセスのログがあって、DNSに対応していない気味の悪い
ホストのアクセスを制御したいなぁ〜とおもって質問した次第です。
すでに新バージョンで解決しているかも知れませんが、何卒回答をいただければ、
幸いです。
お忙しいとおもいますが、よろしくおねがいします。
吉田です。
お久しぶりです。
1.15はキャッシュの自動削除は改善されていないのですよね。きっと。
今回、自分のマシンにキャッシュ用として1.15aを入れました。
#実は1.15bが出てたのね。早速DL中です。
こんな情報が、というのがありましたら,収集できると思いますので,
ご連絡ください。自分だけ接続しているのでキャッシュの溜りが遅い・・・
あと、tockeyさんの言われている秀丸についてですが、僕も1.15aを入れて,
httpからログを参照すると、ちょっとおかしいです。
tockeyさんのようにセットアップは動きませんが,秀丸がユーザ登録していません。
っていわれてしまいます。何でだろう?
環境はTockeyさんと同じく
Windows4.0 Workstation + SP4 + IE5.0
です。
自分のマシンに他のバージョンは入れたことがないので古いバージョンは分かりません。
初めまして、tockeyと申します。
会社のLANでv1.15bを使用しています。
不具合と思われる点を2件ほど報告します。
1. エラーログが更新されない
オプション設定でエラーログの更新を「毎日」に設定していますが、httpd.logが一日分
別ファイルになった後、同一ファイル内にしかログが作成されません。
errors.log等は問題なく日付ごとにファイルが作成されます。
2. エラーログを開く事ができない
秀丸エディタをログビューアに設定し、「ログを開く」メニューからログを開こうとすると
秀丸のセットアップ画面が出ます。
この現象はv1.14以前では発生していませんでした。
上記2点について対応宜しくお願いします。
使用環境
OS:WindowsNT4.0sp4+IE5.0
中田さん、素早い対応ありがとうございます。
php3動作しました。
一般設定の「拡張子」に".phtml"、
「実行プログラム」に"c:\php3\php.exe"
と入れただけで動くようになりました。
php3.iniはWindowsディレクトリに置き、autoexec,batにはphp3.iniのパスを切って
あります。
あまりにもあっさりと動いているので拍子抜けしてしまいました。
現在、odbc経由でDBのデータが読めています。
一つ質問があります。
Apacheでは、php3を「外部モジュール」として動作させる方法と、
「Apacheの一部」として動作させる方法があると本にはあります。
現在のAnHTTPdの場合、どちらで動いているのでしょうか。
#ちょっと的外れな質問かもしれませんが、初心者ゆえ、ご容赦願います。
重ね重ね、素早い対応ありがとうございました。
高橋さん、
再現しないとなると問題の所在をつきとめにくいですね。
不安定さで 403 エラーになるのも不思議なので、ブラウザ(やプロキシサーバ)のキャッシュの問題かもしれません。
httpd.log で HEADリクエストに対する応答コードをみてみるとわかるかもしれません。
(httpd.log で 応答が 200 なのにブラウザ上では 403 になっているとか。)
どうもおかしいということがあって再現するようならまたお知らせ下さい。
のぶさん、
エラーメッセージの最初が、
Unrecognized character \377 ignored at C:\www\ace\public_html\hello.cgi line 1.
ですから、hello.cgi がテキストファイルになっていないと思われます。
メールにも書きましたが、hello.cgi は何を使って作ったのでしょうか?
#発信元のメールアドレスのミスのため返信が戻ってきてしまいました。
#再度送りましたのでみてください。
an HTTPD上のローカルファイルの参照でエラーになりました。
ただ、再現しようとしたら、うまくチェックできました。
発見時、同じ環境でPWSに変えてエラーにならないのまでは確認したのですが
不十分だったようです。どうもすみません。
どうも、サーバをどちらにしても、HTML Lintのリンク先チェック機能は
不安定なようです。
お手数掛けて済みません。
ほんとにご迷惑おかけします。ささいな間違いかもしれません。
英文がずらーっと並んでいてよくわかりません。
一番上にエラー500とはでていますが。
KENT WEBさんのところでまったく同じように設定したのですがだめです。
しかしBBSなどDLLした物に関してはうまく作動します。
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "<HTML><BODY>\n";
print "<H2>Hello! WORLD</H2>\n";
print "</BODY></HTML>\n";
exit;
こういった簡単なcgiに関して駄目みたいです。
エラーに関しては大変長文になりますのでメール送らせていただきます。
初心者なので良くわかっていないと思いますがご指導よろしくおねがいします。
のぶさん、
そのエラーの場合は、そのあとのエラーメッセージ(標準エラー出力の内容)を教えてください。
原因はさまざまあって、perl.exeがみつからない、jperl.exeでjcode.plを使っている、jcode.plがみつからない、Windowsでは使えない関数を使っている、「#!の行を調べる」にチェックがはいっている、などなどです。
どの問題なのかはエラーメッセージによってわかります。
高橋さん、
403だとアクセスはできるのにドキュメントに対するアクセス権がない、ということですね。
プロキシ経由だと htmllint.env のノープロキシドメインリストにローカルのホストは入れているでしょうか?
あとは、AN HTTPD のアクセス制限の問題かもしれませんが。
いずれも関係なければ、AN HTTPD の HEADリクエストに対する応答にバグがあるかもしれませんので、その403エラーの出る URL を教えて下さい。
えむけいさん、
どうも。
nph と 途中切れ の件は調べてみます。
初めて書き込みさせてもらいます。
いろいろHPを見て設定してみたんですが
cgiを使うと
CGI エラー - Content-Type ヘッダがみつかりません。
とでます。
環境はWin98です。
PERLとJPERLをつかってAN HTTPD1.15をつかっています。
これはどうすれば直るんでしょうか?
よろしくご指導おねがいします。
えっと、preoxyは使う設定にしていますが、自分のページ相互間のリンクのチェックを
しているので、an httpdから読もうとしています。
エラーコードは403になりました。
ところでLast-Modifiedの修正がらみかどうかわかりませんが、途中で切れたファイルがキャッシュにあるときそれを返してしまう現象が再発していないでしょうか?
速攻で対応していただいてありがとうございます。画像がたくさんあるサイトとか巨大なテキスト(RFCとか)の読み込みでは目に見えて違いが分かります。長らく要望した甲斐がありました。ほかにも前バージョンで私が要望した点についてはすべて確認しました。
ずいぶん前に書いた気がしますが、parse CGI Outputのチェックをはずしたとき、nph-付きでもそうでなくても応答ヘッダの内容が変わらない気がします。
parse CGI Outputをチェックするとたしかに出力内容が変わるのでnph-を認識していないとは思いにくいのですが…。
高橋さん、
htmllint.env ではプロキシを使う設定でしょうか?
あと、「存在しません」というときのエラーコードは3桁の数字でしょうか?あるいは1桁でしょうか?
1桁だと、接続自体がうまくいっていないということなので、プロキシ経由でホストがみつけられないということもありえますが。。。
なお、1.15bもこのあたりは変わっていません。
こーじさん、
ここの書き込みについては Referer(HTTP_REFERER)をみています。
投稿フォームが http://www.st.rim.or.jp/以下なら大丈夫なはずなのですが。
えむけいさん、
そうでした。304応答をいじっているうちにおかしなことにしてしまいました。1.15bで 200 を返すようにしました。
304の時の Date書き替えは、そうですね、そうしましょう。
1.15aとhtmllintの連動やってみました。
以前のようにだんまりになたりはしないのですが、an HTTPサーバ上にあるはずのと
ころも「ネットワーク上に存在しません」が出てしまいました。
>「オフライン作業」
>現在、インターネットに接続していません。
>−−−中略−−−
>再接続する場合は、[再試行]をクリックしてください。
私の場合、このダイアログはベータ版のときIEのキャッシュにないページを見ようとするたびに必ず出ていましたが、正式版になってから出なくなりました。
ちょっと、AN HTTPDとは関係ないことなんですが
さきほど、IE5から投稿しようとしたら
「投稿フォームから投稿してください」と出てしまい
何度やりなおしても、同じ状態になってしまいました。
アドレスが、"www.st.rim.or.jp"ではなく"www<font color=red>1</font>.st.rim.or.jp"
となっていたのが気になります。
ちなみに、下の投稿と、この投稿は、ネスケでやっています。
暫く、忙しさでIE5のローカル接続のテストができずにいました。
(ネスケで問題なかったので逃げてたんですけど)
その間、いろいろと議論があったようですね。
で、私の調べた結果をお知らせします。
まず、最初にローカルにあるCGIを実行しようとしたとき
「オフラインでは利用できないWEBページ」
要求されたWEBページは、オフラインでは利用できません。
−−−以下略−−−
というメッセージがでます。
この時、「オフラインの継続」と「接続」の選択を聞かれますので
この時に、「接続」をクリックします。
そうすると、次に
「オフライン作業」
現在、インターネットに接続していません。
−−−中略−−−
再接続する場合は、[再試行]をクリックしてください。
のメッセージが出ますので、「再試行」をクリックします。
これで、CGIの実行が可能になります。
これ以降は、AN HTTPを立ち上げなおすまで、警告はでません。
立ち上げなおすと、「オフライン作業」のダイアログが出る場合と
「オフラインでは利用できないWEBページ」のダイアログが出る場合があります。
これが、どういうタイミングでどっちかということは、結局のところ
よく解りませんでした。
ブラウザとHTTPの立ち上げの順序などかと思いましたが
それも、違ったようです。
JUNさんの書いておられた、イントラネットのセキュリティは「中」のままです。
勿論、ダイヤルはしない設定になってます。
ロケーションは「イントラネット」になります。
とりあえず、ローカルでのCGI実行はできますので
私は、特に問題はなくなりました。
恐らく、IE5のロケーションの感知の仕方が変わったのではないかと思いますが
詳しいことは解らず仕舞です。
一度期限切れになったキャッシュについては、以降アクセスするたびにチェックが行なわれてしまうと思うのですが、最新であることを確認したらしばらくチェックの必要はないはずなので304に含まれるDateを使ってキャッシュのDateを書き替えられないでしょうか?
ヘッダの長さが変わると厄介なのはわかりますから、DateがRFC822形式(固定長)の場合だけでもかまいません。
補足です。
もちろんブラウザがIf-Modified-Sinceを付けてきた場合は304を返してかまいません。
If-Modified-Sinceをプロキシが付けてサーバから304が返ってきたとき、ブラウザにも304を返してしまうようですが、この場合ブラウザはキャッシュにデータを持っていないので304を返されてもどうしようもありません。ブラウザには200でキャッシュの中身を返すようにしていただけないでしょうか? というかそうしないとプロキシがほとんど使いものになりません。
LAN接続が遅い件・・・
どうも早速のお返事ありがとうございます。
最新バージョンにアップ&設定で上手くいきました。
それでは♪
えむけいさん、
Content-Location と Last-Modified は 1.15 で対処しました(したつもりです)。
ただし、CGI出力を検査にチェックしてある場合は、まだうまくいきません。これは次版で。
おちゃさん、
情報どうもありがとうございます。
書籍名を出してもさしつかえはないとは思いますが。
YAMAHAの担当の人もいろいろ大変なのでしょう。
さくらいさん、
了解しました。
オプション変更時にメモリリークを起こす症状は確認できて 1.15 で直しましたが、それとはまた別かもしれませんね。
もう少し調べてみます。
もかさん、
メインマシンのDNS検索で時間がかかっている(接続ごとに1、2分かかる)ようなら、メインマシン上に hostsファイルを用意して、サブマシンの IPアドレスとホスト名を入れてみてください。
CGIでContent-Location:を出力するとAnHTTPDがLocation:が含まれていると勘違いしてステータスコードを302にしてしまうようなのですが、なんとかならないでしょうか。
あとCGIがLast-Modifiedを出力しても、必ず削除されるかDate:から生成したヘッダに置き換えられてしまうようなのですが、CGIがLast-Modifiedを出力しているときはそちらを優先するようにできないでしょうか? CGIスクリプト自身のほうが生成したコンテンツの最終更新時刻に関していちばん正確な知識を持っているはずです。
ご無沙汰しております。以前(3/17)LAN接続の中の特定のパソコンで「AN HTTPD」
を使ったサーバのインターネット公開の仕方について質問したのですが、無事解決しました。
今更ですけどご報告まで(汗)。
環境は...長くなるので省きますが(笑)、「YAMAHA RTA50i」で「NAT機能」と
「IPマスカレード機能」を使用し、
「nat masquerade static 1 *.*.*.*(プライベートアドレス) tcp 80」
(最後のポート番号80は「www」でもいいみたいです。)
の3行を「TELNET接続で」行うだけでした。
フィルタリングの設定がまだよく解らないので公開はしていないのですが、無事別回線、別プロバイダ
経由で繋がりました。これでやっと「AN HTTPD」を堪能出来ます...出来るかな(汗)。
質問した「YAMAHA」さんが速攻で返事を下さったので喜んだはいいのですが、「担当の者が
電話を差し上げますので電話番号を教えて下さい」とのメールに電話番号と「平日は居ませんので
出来ればメールで...」と返事を書いたらそれから約一月、何の連絡も来ません(泣)。
何か失礼なことを書いたかなぁ。
こっちから催促のメールを出すのも嫌だなぁと思っていたら「日経BP」社より丁度良い本
が発刊(書籍名は伏せますね)されておりましたので、専門用語、機能その他諸々勉強して
取りあえず成功させました。
今度はCGI、Perlについて初心者丸出しでお馬鹿な質問もするとは思いますがよろしくお願いします。
しかし...「YAMAHA」さん...ちょっと人間不信になっちゃいました(笑)。
>中田さん
返事が遅くてすみません・・・。
PerlISもヘルパープロセスも使っていません。
最近ゆいぼっと(とその周辺?)しか(CGIは)動かしていないです・・・(一体)。
いつもお世話になっています♪
質問があります、もし解る人がいましたら
お手数ですが教えて欲しいです(*^^*)
ケーブルLAN接続でメインマシンからインターネットしてますが、
試験的にサブマシンから(メインマシン=HTTPDを起動・プロクシサーバ)
経由でインターネットをすると大変時間がかかり重たいのですが
何処か設定できる所はあるのでしょうか?
100ベース、直接クロスケーブル接続してます
(ペンU400、128めもり、IE.5使用)
よろしくお願いします\(^○^*)/
さくらいさん、
調べてみますが、ISAPI(PerlIS.dll)およびヘルパーの使用の有無を教えてください。
お久し振りです。
多分1.14に変えてからのことだと思うのですが、ゆいちゃっと(ゆいぼっと)を動かしていたところ、時々「不正な処理を行ったので云々」と出ます。
詳細は下のように出ます(大体いつもほぼ同じようです)。
HTTPD のページ違反です。
モジュール : HTTPD.EXE、アドレス : 0137:0048d0fc
Registers:
EAX=83783000 CS=0137 EIP=0048d0fc EFLGS=00010246
EBX=00000000 SS=013f ESP=02b40b5c EBP=02b40b7c
ECX=11071107 DS=013f ESI=01638ffc FS=4f77
EDX=00000000 ES=013f EDI=02b4a87c GS=0000
Bytes at CS:EIP:
8b 10 83 c0 04 8b ca 81 ea 01 01 01 01 81 e2 80
Stack dump:
0048d3ba 83781000 02b4a87c 01638ffc 00000000 02b4a634 0042450b 00000017 02b4a634 004247aa 83781000 004a9030 02b4a87c 01638ffc 00000000 00000000
私がおかしな改造を施したせいだという可能性も有りそうなのですが・・・・・・(爆)。
ワタルさん、
話の感じからすると binmode の問題ではないかと思いますが、cgi_Lite.pm などは必要に応じて binmode を使うようになっていたように思いますし。。。
GIFなどのバイナリデータの中に \0 や \n などがあると Windowsデフォルトの text mode ではうまく扱えないので、binmode(STDIN)やbinmode(STDOUT)などを実行して入出力を binary mode にする必要がでてきます。
藤田さん、
そうですね。 NET START/STOP ではうまくいかないようです。
とりあえず対処法はありません。 うまくいくように組み直すことを考えます。
細谷さん、
参考になれば幸いです。
CGI/SSI の Perlスクリプトではなく Perl だけであればコマンドラインでやる方がいいのかもしれませんが。
galaxy さん、
カスタムメッセージは、やる予定でいる(TODO参照)のですが、まだしばらく先になりそうです。
ファイルリストの表示形式もあわせて考えます。
中田さんへ
アドバイス有り難うございました。
何か胸騒ぎがしてPATH関連を調べCGIモジュールの
置き場所を変えたら問い合わしたエラーは消えました。
ただ一歩進んだおかげでやっかいなモジュール内部での
エラーがでてさらに苦戦しています。
TXTデータはきれいにアップロードされ、表示も可能なのですが
GIF,JPEGデータ等はうまくいきません。うまく表示されるGIFも
たまたまあるのですがなぜだかわかりません。データはそのまま
送られているようですが表示されなかったりくずれていたりと。
いずれにしてもCGIスクリプトやモジュールを直接変更しなくては
いけないようです。いまの私の力ではちょっと勉強不足ですので
あわてずじっくり学んでいきます。また力になって下さい。
ありがとうございました。
中田さん、いつもお世話になっております。
当方では、WindowsNT Server (SP3)にて
AN HTTP(Version 1.10)をサービスとして動作しています。
さて、
DOSプロンプトからのnetコマンドでサービスを開始・停止しようとしたところ
以下の状態になりサービスを開始することができませんでした。
<パターン1>
AN HTTP Service サービスを開始します
AN HTTP Service サービスは正常に開始しました
のメッセージ出力の後、AN HTTPのサービスが停止する
<パターン2>
AN HTTP Service サービスを開始します
AN HTTP Service サービスは開始できませんでした
なお、停止のほうは正常に停止します。
対処方法等がございましたなら、ご伝授のほどよろしくお願いします。
仕事でPerl等を使用しないと行けなくなりました。
当サイトを参考に勉強させていただきます。
はじめまして。こんにちは。
いつもCGIの動作テストなど出httpdを使っています。
ところで、エラーメッセージ(NotFound)のHTMLや
ファイルリストの表示形式がカスタマイズできるようになりませんか?
えむけいさん、さっそくの回答ありがとうございます。
自分のPCへ外部からアクセスして(固定IPアドレスがあるので)ファイル転送を
AnHTTPDでWWWから全てをと思ってたのですが、ちょっと違ってたみたいですね。
FTPに関しては別にFTPサーバソフトを導入しないとだめみたいですね。
ありがとうございました。
ワタルさん、お久しぶりです。
Perl のインストール先の lib 以下に Exporter.pm があるはずですが、ありませんか? lib ディレクトリは @INC に はいっているはずですから。
ないとしたら、インストールされている Perl のバージョンは何でしょうか?
あるいはもう少し根の深い問題かもしれませんが、とりあえず。
えむけいさん、
おっしゃる通りで、CacheOnly でエラーになったときリクエストが保持されていませんでした。
ついでに、CacheOnly で キャッシュファイルがあるのに HEAD に対して 404 を返してしまいます。
また、ディレクトリがあるのに 302 で返さないのもおかしいですね。
いずれも直します。(直しつつあります。)
>えむけいさん
対応、ありがとうございました。
これからもよろしくお願いします。
中田さんへ
約2年ぶりの訪問です。画像のアップロードのテストを試みているのですが
うまくいきません。初期的なエラーのようですがアドバイスお願いします。
(win95,ie4.0,anhttpd 1.14を使っています)
Error 500
CGI エラー - Content-Type ヘッダがみつかりません。
CGI 出力メッセージ:
Can't locate Exporter.pm in @INC at cgi_Lite.pm line 452.
BEGIN failed--compilation aborted at d:\homepage\testcgi\upload.cgi line 4.
>pegasusさん
AnHTTPDのftpプロキシ機能はNetscapeやIEなどでftp://で始まるURLにアクセスするための機能で、このときの手順はftpクライアントが使う方法とは異なるので、ftpクライアントソフトでは外部にアクセスできないと思います。
Ver1.14になって以前質問した、index.cgiの実行ができるようになり感謝してます!
で、それなら本格的にサービスをしようかなぁって思いましてFTPや家庭内でつながってる
他のPCからPROXYで外に出たりとしてるのですが、FTPに関してうまく動きません。
接続はするのですがそれで止まったままになってしまいます。
AnHTTPDの設定とFTPソフトの設定がうまく行ってない為だと思うのですが・・・
AnHTTPDではFTPプロトコルにチェックをつけ、ポートは80でユーザ名、パスワードを適当なものに設定しました。
で、FTPソフト(CuteFTP,FTPエクスプローラ)などのファイアウォールの設定がうまくいっていないのかと
思うのですが、よろしくお願いします。
細かなことですが、プロキシ機能をCache Onlyモードで使っているときに http://www.xxx.yyy.zzz/ など適当なURLを渡すと当然 Not Found になりますが、ログファイル (httpd.log) 上はなにか化けたような文字列が渡されているように見えます。本当に化けた文字列が渡されているのであれば Bad Request になるはずなのでリクエスト行を保持するバッファが破壊されているのだろうと勝手に思っているのですが…。
えむけいさん、
了解しました。
UTF-8(UNICODE)の方は(URLを受け取ったところで変換するだけでいいのであれば比較的簡単にできそうですが)考えてみます。
>とある高専生さん
サーバがUTF-8に対応するのが本来の姿ですが、もっともIE5のようにエスケープもせず生のUTF-8を送信するのが規格的に正当なのかどうかもちょっと怪しいのですが、とりあえず「いつもUTF-8としてURLを送信する」のチェックをはずしてください。
というわけでUTF-8対応オプションを付けませんか? > 中田さん
もしかしたらApacheより早い対応になるかも。
初めまして。ANHTTPDを愛用させていただいています。
早速質問なんですが、IE5.0で、日本語のファイル、ディレクトリを指定すると
うまく接続できません。
LANにマシンを接続しているのでルータのせいかと思いルータ経由で接続、localhostで接続、
外部から接続など、いろいろ試してみたのですがうまく行きません。
ログファイルを見てみるとどうもうまくHTTPDに日本語が伝えられていないみたいです(文字化けしてます)
IE4.01SP1以前ではこのようなことは起こらなかったのですがIE5.0を使用すると起こります。
もしかしたら以前に同じような問題があって、解決されているかもしれませんが、
わかる方、是非教えて下さい。よろしくお願いします。
問題のファイルはすでに消してしまったので再現を試みてみましたが、確かに再現しませんでした。また発生したらそのときあらためてご報告しますのでとりあえず気にしないでください。
えむけいさん、
対処しますが、proxy経由でftpのダウンロード中に回線を切断しても再現できませんでした。
500 エラーの中身(メッセージ)を教えてください。
Cache Onlyのときプロキシ経由でftp:にアクセスするとゴミが付く問題は直ったようですが、プロキシ経由のftpでダウンロード中に回線の不調などで電話を切られると、やはりダウンロードしたファイルの末尾に「HTTP/1.0 500 Server Error」ではじまるゴミが付いてしまいます。すでにダウンロードした部分を利用して残りをダウンロードするとき、今はバイナリエディタでゴミを削除してとりあえずうまくいっていますが消し忘れるとかなり致命的です。
対処していただけないでしょうか?
ZEROさん、
どうも。何かあるタイミングで重なった時におかしくなるようですね。
ちょっと手探り状態ですが、なんとか対処したいと考えています。
中田さん、お久しぶりです。
Anhttpd1.14の件で報告です。
1.13より比べてCPU100%になるのが同じぐらいなっております。
バージョンアップされてから今まで使っていて5回なっております。
そのうち2回はマウスすらきかない状態で、キーボードでctrl+alt+delで強制シャットダウンを
実行し、それで再起動をしました。
前回と同じく、アプリケーションとして立ち上げたら場合、100%になっても終了できずだったため、
現在はサービスとして起動しております。
その場合はCPU100%になった時点であっても強制に終了できるからです。
また、なる問題とかんがえましたが、2日前チャットを導入してからマウスすらきかない状態に
なったと思います。
クライアントは4人ぐらいでチャットはしています。
以前、誰かが(お名前忘れてすみません)おっしゃってたようにリロードが立て続けになれば
そうなるのかもしれませんね・・
現在はこのような状態です。またしばらく様子を見てみます。
ながながとすみません。ではこれにて
>Junさん
確認では接続タブ以外全くいぢっていません。
結果としては全くいぢる必要がないという結果となりましたが。
話からするとここにくるのにはIE5を使っている訳ではなさそうですが、接続ウィザードを
一回実行しておくとどうでしょうか。
デスクトップにはネットワークコンピュータのアイコンが出ているものと思いますが、普段
ネスケを使われているならIEとは全く別の環境で動作しているかもしれません(必要なドライバ
などがないかも?)。尤もセキュリティレベルとは関係ないと思いますけど。
それからPC98であったりWin95で使っているのではないですよね?
P.S.
折角ですので追記
Perlですけど、Win98ではAUTOEXEC.BATに環境変数PATHが正しく設定されないような?
クライアントマシンでは古いためCドライブに当たるHDDの容量が非常に少ない&5つのOS
をマルチブートしているという関係でWin98本体はDドライブにあるのですが、それでも作ら
れるAUTOEXEC.BATは正しくありませんでした。NT Serverでは全く問題なかったのですが
(Win95の方では未確認)。
以前正常にパスが切れてないと言われていた方。もしかしたら、この辺が関係していること
も?
P.S >JINさん。
「通常の接続でダイヤルする」でもローカルテストできましたよ。
IE5について。
僕のやり方は関係なかったみたいですね。やっぱり。
お騒がせしてすんません。2ヶ月の初心者ですんで多めに見てやってください。
実際プロキシサーバのとこのチェックはずしても動きました。
けどなんでその前まではつながらなかったんだろ?
IE5の件でお騒がせしております。
皆様のおかげで何とかローカルテストできるようになりましたのでご報告します。
自身ぴゅあさんの指摘どおり設定していたのですが、(当然ダイヤルしない)
そのままではうまくいきませんでした。(私の説明不足、申し訳ございません)
そこで「イントラネット」という言葉をヒントにセキュリティのレベル(イントラネット)を「低」まで下げたところ例のメッセージが出ずに、目的のファイルを表示させることができました。localhostであろうが127.0.0.1であろうが関係無いみたいです。
ちなみに設定状況は、LANの設定ではチェックが全く入っておらず、以前の投稿にあったような接続ウィザードでの設定も全く行っておりません。当然ダイヤルアップはしないをチェック。
[このページの表示が認められていません
このディレクトリを表示する権限がないか、または提供されたアカウント情報を使用してページを表示する権限がない可能性があります。]
のメッセージはやっぱりセキュリティレベルに関係があるみたいですね。
しかし右下の表示は「イントラネット」でなく「インターネット」のままですけど。
結果オーライです。いろいろありがとうございました。
yoshi さん、
申し訳ありませんが、AN HTTPD では、ISAPI の ServerSupportFunction の HSE_REQ_MAP_URL_TO_PATH はまだサポートしていません。
httpd-docs/isapi.html にもある通り、ServerSupportFunction で現在サポートできているのは、
HSE_REQ_SEND_RESPONSE_HEADER
HSE_REQ_SEND_URL_REDIRECT_RESP
の2つだけです。
HSE_REQ_MAP_URL_TO_PATHも含めその他のものもできるだけはやくサポートするようにします。
なお、ServerSupportFunction をはじめ ISAPI のリファレンスは、ISAPI Reference にあります。
PerlISでしたら、このファンクションを避けるようにスクリプトを変更することは可能かもしれません。
PerlIS.dllの設定で苦しんでいます。
やっとPerlIS.dllのパスを認識できるようになりましたが、こんどは
Thu Apr 01 15:05:15 1999 ISAPI: ServerSupportFunction(HSE_REQ_MAP_URL_TO_PATH) not supported.
というエラーメッセージがでるようになり、もう一息というところです。
このメッセージはどういう時にでるのでしょうか?
教えて下さい。
★IE5でダイヤルアップ接続してしまう件に付いて(追記2)
それからダイヤルアップ接続状態である場合はlocalhostではなく127.0.0.1としないとIEの
方で?勝手にドメインが修飾されてしまうようなので注意が必要なようです。
★IE5でダイヤルアップ接続してしまう件に付いて(追記)
ちょっと気になることが書かれていましたので再度確認しました。
localhostを指定しようとしているということはLAN環境ではないわけですよね?
そして「ダイヤルしない」を選択して「LANの設定」(プロキシサーバを使用するに
チェック)を行っているような気がするようなことを書かれているのですがどうなのでしょうか。
もしそうであれば正常に動作しません。「ダイヤルしない」を選択していても「プロキシ
サーバを使用する」にしてはいけません(たぶん/ここの設定はサーバへの接続のままでし
か確認していませんので)。
「このページの表示が認められていません・・・」と表示される点に付いてはhttp://localhost/
とだけ指定しているのではないでしょうか。ここにはindex.htmlを置けないからだと思いま
すがエラー403を返します。http://localhost/~aaa/などのように指定してドキュメントルート
のpublic_htmlフォルダ(デフォルトで)にindex.htm[l]がある状態でなければ或いは
http://localhost/~aaa/page.htm[l]のように実際に存在するHTML文書を指定しないとこの
エラーとなる筈です(http://localhost/~aaa/でindex.htm[l]が存在する場合の確認はして
いませんが)。
うちの環境ではIE5はかなり重いので確認はここまでとしておきましたが確認してみてくだ
さい。
★IE5でダイヤルアップ接続してしまう件に付いて
junさんの質問だったでしょうか?
普段NT Serverの方で自動運転していますのでテレホが終わるのを待って完全に切断された
状態でWin98の方にv1.14を入れて確認してみました。
まず先に確認しておきたいことはダイヤルアップ接続により正常に接続できる状態にIE5を
設定されているでしょうか。少なくともここに来られているということは必要なドライバなど
は入っていることと思います。
ここでダイヤルアップ接続のダイアログが出てしまうということですが、それはIE5を立ち
上げたときのことではないのでしょうか。IE5はインターネットオプションの接続タブで
「ダイヤルしない」を選択していない限りIE5立ち上げ時にこのダイアログを表示して待ちます。
たぶんURLを入力してからではないと思うのですが。もしそうであればこれ以降に書かれてい
ることは無効です。
普段そのIE5でインターネットに接続しているならインターネットオプションをいちいち変
更するのは面倒でしょうからそのままで構いません。このダイアログが表示されたら右上の
「×」(閉じる)ボタンを押してください。これでデフォルトページに飛ぼうとする筈です。
結果として「オフラインでは利用できないWebページ」と表示されることになると思います。
ただしキャッシュに残っている場合は一応表示されるでしょう。このときオフライン作業状
態となっています。つまり「×」ボタンでなく「オフライン作業」ボタンでも良い筈です
(未確認)。
その後、http://127.0.0.1/...或いはhttp://localhost/...のようにURLを入力するこ
とで「オフラインでは利用できないWebページ」ダイアログで接続を要求してくると思います。
ここでは「接続」ボタンを押します。これでイントラネット(右下確認)として正常に表示さ
れる筈ですがどうでしょうか。
中田昭雄さま
あいまいな話を確認頂きありがとうございます。
1.15楽しみにしています。
レスありがとうございます。ご迷惑をおかけしております。
IE5でのローカルテストですが、その後もなかなかうまくいってません。
みなさんのブラウザのインターネットオプションの設定を具体的に教えていただけませんか?
当然ダイヤルしない、とか…
現在アドレスにlocalhostと入れると、
「オフラインでは利用できないWebページ」ということで、
「接続」OR「オフライン」を確認されます。
そこで接続を選びます。
そうすると再度「オフライン継続」OR「再試行」を聞いてきます。
オフラインを選んでもなにも表示されませんので、再試行。
しばらくするとこれが表示されます。
(その間ブラウザはプロクシの設定を確認しているみたいです)
[このページの表示が認められていません
このディレクトリを表示する権限がないか、または提供されたアカウント情報を使用してページを表示する権限がない可能性があります。]
いろいろ思考錯誤してもこのメッセージばかりです。(IE4のときはこんなこと無かったんですけど…)
ところで接続ウィザードってなんか関係しているんですか。
お知恵かしてください。(中田さん、すいません。)
>「オフライン作業」の時は「接続」するか聞かれますが、「接続」にするとつながりましたよ。
>つなげなちゃだめなんじゃないすかねー?
こーじさんのもオフライン作業になっていて接続を選んだらそのままダイヤルアップに行くと勘違いしているだけのような気がするのですが違ってたらすみません。
すくなくとも私の環境ではダイヤルアップしないとlocalhostにアクセスできないという不具合は一切ありません。
>JINさん
「オフライン作業」の時は「接続」するか聞かれますが、「接続」にするとつながりましたよ。
つなげなちゃだめなんじゃないすかねー?
的外れな書き込みだったらごめんなさい。