あられさん、
なるほど www.css がないので 404 ということですね。
私もスタイルシートは使ったことがないので思いつきませんでした。
わかってよかったです。
s.sipa さん、
戻るようならよいのですが。。
参考までにWin98 のバージョンを教えてください。
プロセス番号は、同じプロセス番号になることがあるのかもしれません。
ちょっとやってみたところでは、プロセス3つ毎に同じになったりすることはあるようです。
連続した2つで同じというのはどうかわかりませんが。
佐々木さん、
プロバイダに接続後 AN HTTPD を起動するとそのIPが表示されるのではないかと思います。
いずれにしろ LANアダプタやダイヤルアップアダプタなどアダプタの数だけ複数のIPアドレスが有効なので、一番手近なIPアドレスを表示してしまうかもしれません。
(いずれもなければ最悪 127.0.0.1 になるはずです)
解決しました!お騒がせして済みませんでした。
htmlファイルの内容自体に問題があったようです。
head部分にあった以下の行を削除したところ、うまく動作するようになりました。
<LINK REL=StyleSheet HREF="www.css">
テスト用ファイルを自分で作成せず、たまたまブラウザに表示されていたページを適当に拝借したのがいけなかったようです。(^^;
#ちなみに私、上の行の意味をよく理解してなかったりします...。(^^;;
加えて、以下の理由からファイル内容を再確認することに考えが及ばなかったこともありました。
> 3)ファイルを直接読み込むときちんと表示される(URLが、http://...ではなく、file:///)
【結論】テスト用htmlファイルはシンプルなものを使いましょう。(^^;
こんにちは、回答ありがとうございました。>中田さん
ファイル名に全角文字やスペースが混じっているとは考え難いのですが...。
#以下はその根拠(?)です。
1)windows上で表示されるファイルのアイコンは html のものになっている。←たぶん拡張子は正しい
2)ファイル名の拡張子を txt にすると、読み込めてしまう。←たぶんファイル名も正しい
3)ファイルを直接読み込むときちんと表示される(URLが、http://...ではなく、file:///)
...もしや他の環境の問題でしょうか?
こちらの環境は、HTTPD ver.1.17, Netscape Communicator ver.4.51, Windows95 です。
>Win98でヘルパーをオフだと、システムリソースが
>かなり急に減少していくのではないかと思うのですが、
>それは大丈夫ですか?
これはリソースメータで見た値でよろしいでしょうか。
私は大きなcgiをまだ動かしていないのですが、問題なさそうです。
幾つか動かしてみましたがシステムリソースに特に変化有りません。
実行中は2〜3%落ちますが、実行後は元に戻ります。
もう一つ質問してもよろしいですか。
特殊変数 $$ プロセス番号が取れると思うのですが
ヘルパープロセスoffだとプロセス番号が変わらない場合があります。
これはこういうモノなのでしょうか。
中田さんありがとうございます。m(_ _)m
「自宅WWW入り口」というリンクにあったあったHPにいったら
私のIPは、httpdで表示されるものと違っていました。
もしやと思い、それで接続を試みたら外部の人も私のローカルな環境へ
くることができるようになりました。(逆流ができた^^)
過去ログを調べてみたら、「グローバルIP」というものらしいのですが
どうして、httpdで表示されるものと食い違うのでしょう。
最初からこのグローバルIPを調べる方法ってないものなんでしょうか。
s.sipa さん、
ご報告ありがとうございます。
1.17 でヘルパーの問題は出ないかと思っていたのですが、まだだめなのですね。
ヘルパーオンは Win98 ではデフォルトです。
Win98でヘルパーをオフだと、システムリソースがかなり急に減少していくのではないかと思うのですが、それは大丈夫ですか?
あられさん、
うーむ、なんでしょうね。
ファイル一覧からクリックで読めないとなると、スペース入りか漢字のファイル名ぐらいしかとりあえずは思いつきません。。
佐々木さん、
プロバイダの接続形態によって外からはアクセスできないということはありえます。
プロバイダに聞いてみる方がよいでしょう。
高橋さん、
情報ありがとうございます。
ZEROさんにもお願いしたのですが、AN HTTPD のオプションのログで 「トレース」にチェックを入れて、CPU 100%になったとき、その近辺の trace.log をメールで送っていただけるとありがたいです。
中田昭雄様、はじめまして。
私もcgiテストの為、httpdをwin98で使用始めました。
非常に便利で嬉しいです。 m(__)m
早速で申し訳ないですが、私の環境で不具合が出る場合が有ります。
ちょっと前のコメントにも似たような事象があります。
16サイ女子、さんのコメント
-----
4回くらい更新すると、「CGI/SSIプロセスを起動」
という、ものになりページが表示されなくなります。
終了しても、stophelperというものになり、終わらせることが出来ません。
再起動をすれば平気なので、やるたびに再起動していました。
-----
私の場合も何度かcgiを動かすとブラウザ(NN)が通信中のままになり
応答が返ってこなくなります。
以後ブラウザとhttpdはストールします。再現性もあります。
んで、いろいろ試してみたのですが、
オプションのヘルパープロセスがonになっている
(98だとデフォルト?)とこの現象になるようです。
単一スレッドになっていても、いなくても関係ありませんでした。
対策としてはヘルパープロセスをoffにしておけば
若干動作が遅いですが問題無く動作します。
ストール状態になっている場合は、ctl+alt+delで
httpdとhelperを強制終了してからhttpdを再起動し
その後オプションのヘルパープロセスをoffにすればリカバリできます。
httpdのバージョンは1.17
osはwin98
ブラウザはNN4.51です。
当面、ヘルパープロセスoffで使用するので問題無いです。
一応報告でした。
初めまして!
CGIの練習がしたくて、インストールさせて頂いたのですが、
*.htmlという拡張子のファイルだけ読み込めません...。(泣)
→ Error 404 みつかりません - ドキュメントがないか、読み込みができません。
http://127.0.0.1/を指定すると、
ディレクトリ内のファイル一覧は表示されますし(意図的にindex.htmlはなくしました)、
他拡張子のファイル(*.cgi、*.txt)はちゃんと読み込めるのですが...。
#ファイル一覧をクリックしてファイル選択してますので、スペルミスなどはないと思います。
過去のコメントを途中までcheckしたのですが、力尽きました。
対処法をご存じの方、ご教授下さい〜。
補足:過去の質問で似たようなものも見つけました。
・サルさん:kazzn@pop01.odn.ne.jp 1999/05/29 03:1
→ アドバイスはスペルミスの確認。←私のケースでは違いそうです。
・大ちゃん:carnival@ma2.justnet.ne.jp 1998/12/08 15:58
→ デフォルトインデックスを削除したところ好転。←私もやってみましたが、ダメでした...。
こんにちわ。
To 中田様:
了解しました。将来、put/delete対応予定ということで、たのしみにまってます。
ありがとうございます。
To ぴゅあ様:
有益な情報ありがとうございます。
an httpdに後ろ髪ひかれつつも、apacheでとりあえず実現する方向で考えて
いきたいとおもいます。
中田昭雄 さん、回答ありがとうございました。
test.batは、相変わらず、動きませんが、CGIのテストはできるようになりました。
実は、htmlをエクスプローラから起動していたので、ハードディスク上のHTMLをそのまま開いていました。(汗)
すみませんでした。//127.0.0.1/から開くと大丈夫でした。
自宅のパソコンでサーバを立ち上げてみたくて、使ってみました。
設定が終了して、うまく起動した時の感動は今でも鮮やかです。(ローカルで)
そこで、今度はダイヤルアップでプロバイダに接続して、IPを指定してみても
自分のハードディスクにアクセスして、ホームページが表示されて・・よし!と
思っていました。
ところが、友達に私のそのときのIPを教えて外からこれるのか試してみたら
何回やっても「サーバエラー」になるというのです。
色々と調べてみたら、どうもプロバイダがプロクシを使用しているとIPを指定しても
自分のパソコンには来てもらえないというような雰囲気でした。
では、ローカルでCGIをチェックするだけで、私は外部の人に自分のローカル環境に
アクセスはしてもらえないということなのでしょうか?
よろしければご教授ねがいます。
はじめまして。
いつも、便利に使わせてもらってます。
この前の、zeroさんのコメントにあったCPU100%の現象ですが
僕のところでも起きます。
ネスケで、CGI動作中にブラウザから中止、または違うURLに飛ぶと
CGI終了時にCPU100%の状況になるようです。
IEでも試したんですが、こちらのほうは現象が起きませんでした。
とりあえず、僕の環境を書きます。参考になれば。
NT4.0 SP3
IE4.0
ネスケ4.0
落書きになってしまいます。ごめんなさい。
>かきおかさん
何故かユーザ名+パスワードを通すことは出来ていました(IMail Serverで試す前)。
そしてネスケ立ち上げ時にはちゃんと読み込んでくる振り?をし終了させたときは書きに行っ
ている振り?をしていました。
が、当然ながらブックマークには変化はありません。
さてブックマークのデータは何処へ行ったのでしょう?
最初の実験ではAN HTTP Serverをプロキシサーバとして機能させWinGateへ貫いていまし
た。ユーザ名とパスワードのところはAN HTTP Serverのユーザ認証のところを使ったのだっ
ただろうか?でもこの辺はまだ必要としていないので十分に使い方が解っていないのですけど。
ここの設定ではうまくパスワードが通らなかったような気もするし?もしかしたらNT Serverの
ドメインユーザマネージャが応答したのだろうか?
確かにAN HTTP Serverがその可能性を含んでいるならAN HTTP Serverに頼りたいものです。
ただ実現するまでは代用品という考えも決して悪いものではありません。IMail Serverの使い
方がちゃんと解れば使えるようになるのだろうとは思いますが。
σ(^ー^)にはローミングアクセスは必要ないかなと思いつつも3台のマシンの間でバラバラに
ブックマークされているのでPerlプログラム或いは手作業で同期を取っているより楽で良いかな
という気も確かにあります(でもWin98+IE5の環境/メイン環境として一番使っているでは
ローミングアクセス機能を持ったバージョンのネスケは使えないんですよね....)。
こういう内容は電子掲示板を使ったほうが....と思いつつも誰もこないし(~_~;)
でもAN HTTP Serverに全くの無関係でもないと思えますしねぇ?
失礼しました。
(少しずつでも知識を増やしているつもりではいるもののなかなか....)
たくさん、
/cgi-bin に echob.exe はあるでしょうか?
.exe のダウンロードの方は、ちょっとわかりませんが、/cgi-bin のエイリアスは実行パスの方にはいっているでしょうか?
かきおかさん、
少なくとも HTTPサーバの方は関係ないとはいえません。
HTTP/1.1 では PUT/DELETE がありますから、いずれ AN HTTPD でもサポート予定です。
ローミングサービスは PUT/DELETE は必須のようです。
ということは、残念ながら現状の AN HTTPD ではできない、ということになります。
こんにちは。質問させてください。
httpdをダウンロードさせていただいたのは、CGIのテストをしたかったからです。
現在、httpdを起動したところです。
127.0.0.1でも、LANに繋がってるIPアドレスでも、readme.htmlは読めました。
さっそくcgisample.htmlに行ったのですが、どの動作をテストしても
<P>
インターネットサイトhttp://127.0.01/cgi-bin/test.batを開けません。
無効または認識されない応答をサーバが返しました
<P>
と表示されてしまいます。
また、cgi-binの直下に置いてある.exeファイルもダウンロードになります。
どのようにしたら、cgisample.htmlのテストが行えますか。
よろしくお願いいたします。
ぴゅあ様、コメント及び、フォローありがとうございます。
私の方は進展がなくて申し訳ないです。m(_o_;)m
あっさり、apacheを入れて動かせば、なんとかなるってのはわかっていますが、
お気に入りのソフトで実現したい、いちユーザ(私)のわがままなんです。(^^;)スミマセン
ネットスケープローミングアクセスの仕組みは、
ユーザ名+パスワードで、指定したサーバ(LDAPorHTTP)にアクセスして、認証して
ファイル(bookmark等)をクライアントローカルに取ってきます。
クライアントは、ネットスケープを終了することにより、指定したサーバ(LDAPorHTTP)
にファイルを上書きします。
ということで、指定したサーバで一元管理ができるわけですね。
という仕組みが実現できれば、どこにいても、ネットさえつながっていれば、デスクトップ
PCと同じ環境(ネットスケープ)が維持できるわけです。
で、パスワードも特にWinでは、設定の記述が無いんですよね。>ネスケ
これさえも手がかりがなくて困っているんです。
ということで、ほんと、AN HTTPDと関係無い話題で申し訳ないです>中田様&びゅあ様
中田さん、
リモートホストを「常時」にしたところ、ログにホスト名で書き込まれるようになりました。
マニュアルを見直したら、ちゃんと載ってました。お手数お掛けしました。
Suzukiさん、
DNSサーバに常にアクセスできる環境なら、AN HTTPD のオプション/一般で 「リモートホストを取得」のところを「常時」にしてください。
ログもホスト名で記録されます。
★ネスケのローミングアクセスについて その後
先の投稿の後IMail Serverというものを試してみました。
元々SMTP/POP3/IMAP4 ServerだったらしいのですがHTTP Serverを含め多くのサーバを含
んでおりその中にLDAPサービスも持っています。
結局失敗に終わったのですがHTTP Serverの方は試していません(いまいち詳しい解説がない
しサポート受けられないし....)。
NT Serverの調子が悪いので再構築したらまた時間を作って見てみたいと思ったりします(FDD
壊しちゃったから再構築できない(T_T))。
>中田さん
先の投稿のサイトにあるようにApacheでは外部的?カスタマイズもできるようですね。今回の
LDAPに付いては単に実験のためだけでしたがこのようなことも出来ると良いですね。なかなか時
間が作れなくてちゃんと読んでないm(__)mので既に出来るのかもしれませんが(どうせやるなら
Win的に?GUIでとか。それなら他の人が担当した方が良いかもしれませんね)。
でもクライアント2台(クライアントが使えないときはたまにはサーバも使ったり。注:
サーバはクライアント的に使ってはならない。UNIXサーバなら許しても良い気も)なのでbookmark
の同期が取れると(そう言う意味もありますよね?<ローミングアクセス)便利かもしれません
が。ただメインのクライアントにはローミングアクセス機能がない。。。。(T_T)
初めまして、MINIBBS10.14の見てくれを変えまくりたくてhttpd117を
使い始めましたが最初の登録をするとやおらシステムエラーとMINIBBSが表示しますので
FAQを拝見したところMINIBBSは10.30まで上がっていてそれならば
問題なさそうとのことで早速DLしてみたら、httpd117の設定を何もいじらなくても
書き込みができるようになりました。さ〜てどんなレイアウトぶちかまそ〜かな〜と
ワクワクしてますっていってもHTMLを出力する文をちょこっと変えるだけなんで
10.30はOKっす。ってことでした。
ありがとうございます。
★ネスケのローミングアクセスについて
AN HTTP Serverは対応していないようです(って中田さんが答えられていますが)。
WinGateは何かをやっているように反応していましたが(AN HTTP Serverは接続時にエラーを
返す)何処へ行ったんだかというよりHTTP Serverではないので何処かへ送ることが出来るだけ
でしょう(AN HTTP Serverのプロクシも通していましたし)。
或いはプロバイダのサーバなどを利用すれば取り敢えずは使えるのでしょうね?
参考までに
http://www.asahi-net.or.jp/~ae5t-ksn/apache/roaming/
中田様、フォローありがとうございました。
たぶん、ネスケの方でファイル(ブックマーク)とかを
書くときに、ファイルが無いってことで、PUTしたファイルをいちょう、deleteしている
ようにみえます(予想ですが)。
うまく、そこのところが解決できれば、PUT,GET,HEADのメソッドだけで充分なはず・・・。
私の方でも調べて、もしうまくいくようでしたら、こちらにご報告したいと
おもいます。
また、すでにネットスケープのローミングアクセスがうまく行っている方が
いらしゃったら、ご教授おねがいします。
よろしくおねがいします。
WindowsNT4/SP4で1.17を使用しています。
httpd.logにIPアドレスではなく、ホスト名で記録するにはどうすればよろしいのでしょうか?
DOS boxからnslookupで逆引きできますから、DNSの設定は正しいようなのですが・・・
中田さま>「CGI出力を検査」のチェックをはずしてみてどうなるか試してみてください。
チェックを外したらうまく動作しました。
ありがとうございました。
不思議?
あまりの説明の素晴らしさで何の苦も無く素人の私が
自宅マシンをwwwサーバ化してしまいました!!!
CGIを試してからサーバにアップしようとの思いつきで
お伺いしたのですが質問する間もなく完成してしまいした!!
事後の勉強になりますが、これから基礎を学びたいと思います!!
今後ともよろしくお願いいたします!!!!!
御礼 m(_ _)m
はじめまして。七ツ沢まつりといいます。
昔のpcコンピューティングに紹介されていたURLを
見てやってきました。
さっそく98で動作するというhttpdアプリを
DLさせてもらいます!
何に使うかというと、もちろんCGIの修行です。
ありがとうございました!
かきおかさん、
ローミングアクセスの仕組みは知りませんが、
AN HTTPD は PUT/DELETE メソッドにはまだ対応していません。
現在のバージョンは、GET/PUT/HEAD しか処理できません。
tAco.otsuka さん、
おおやまさんが言われている通り、「待機中、接続要求待ち」で正常です。
HTTPサーバは、通常待機していてブラウザからの接続要求を待っています。
接続要求がきたら、それに応答します。
どうもうまくいかない、という内容(何をやったらどうなったか)を説明してくださればお答えできると思います。
HTTPサーバ名は、
(1)TCP/IPのプロパティでDNSを使っている場合はそこに指定しているホスト名
(2)DNSを使わない場合は、ネットワークのコンピュータ名
になります。いずれかに会社のホスト名を指定してあるのだと思います。
ZEROさん、
3つだとすると、応答するスレッドがビジーループに陥っているということになると思います。
trace.log に手がかりが残ることを期待しています。
index.xml などもデフォルトインデックスに指定すれば使えると思います。
バーチャルホストだと今のところだめですが。
tAco.otsukaさん、何度もまぜっかえしてすみません。
一度「CGI入門」などの本を読んだほうが良いと思います。
失礼ですが、おそらくtAco.otsukaさんは「CGIって何?」という状態ではあ
りませんか?
失言であればお許しください。
すみません、tAco.otsukaさん。ローカルでCGIをテストするんでしたよね。
httpdはその状態で動いています。
tAco.otsukaのおっしゃることはCGIスクリプトが動かないということでしょう
か。
もしそうなら、CGIスクリプトがあるべき場所にあるか、JPerl.exeの存在
するディレクトリに間違いが無いか確認してください。
tAco.otsukaさん、その状態は誰かがHTMLファイルの表示やCGIの実行を
要求するのを待っている状態です。
よーするに「ブラウザよ、URLをよこさんかい」という状態で、ちゃんと動
いていますよ。
tAcoさん、CGIより、まず普通のHTMLファイルでテストされてはどうでしょ
う。
いつもお世話になっています。
httpdと関係無い話で恐縮なんですが、よろしいでしょうか。
私は会社内で自席PC(win'98)でAN httpd1.17を立ち上げています。しかしながら、
会議とか別の場所で行うのでNotePC(Win'98)を持って会議室でミーティング
をすることが多いのです。
ところが、自席のPCのネットスケープのブックマークには、URLが入っている
のですが、NotePCに入っていない状態で困ったことがあります。
そこで、Netscape4.6の編集→設定→ローミングアクセスという設定を
行って自席PCをサーバとしてNotePCでも、ブックマークを共有できると
便利だとおもい、設定したのですが、どーも、設定不足のようでうまくいきません。
どなたか、うまくローミングアクセスを動かしている方がいらっしゃれば、ご教授おねがい
します。
----httpd.log-----
www.honge.ne.jp - - [24/Jun/1999 11:54:15 +0900] "PUT /~usrname/WRITETEST HTTP/1.0" 500 196
www.honge.ne.jp - - [24/Jun/1999 11:54:15 +0900] "DELETE /~usrname/WRITETEST HTTP/1.0" 500 199
------------------
----errors.log----
Thu Jun 24 11:54:16 1999 Error Response 500 Thread 0(ID= -1620911) for "/~usrname/WRITETEST"
Thu Jun 24 11:54:16 1999 Can't Create Message File
------------------
よろしくおねがいします。
tAcoともうしまうす。
Win初心者、CGI初心者な迷惑人な私がCGIをローカルでテストしたいと
思っています。
httpdをインストールして試しているのですが、どうもうまく行きません。
状況は以下とおりです。
Hard:COMPAQ PRESARIO 5201
os: windows98
network:PC MacLanで他のmacにつながっている。
httpdを立ち上げると
HTTPサーバ名:[会社のホスト]ポート:80、プロクシポート:80
Microsoft wsock32.dll,ver2.2,32bit of Apr 28 1998, at 19:33:24.(Win98)
ドキュメントルート:C:WWW
と出て「待機中、接続要求待ち」となりますが、
これは、サーバとしてまだ自分自身を認識できないのでしょうか?
なぜ、会社のホスト名を返してくるのかさえよくわかっていないので、
すいませんけれど何かよいアドバイスをいただけないでしょうか?
中田さん
わかりました、本日よりLogをとってみます。
また、本日も100%になっていたのですが、スレッドは4ではなく3でした。
SSIのアクセスログを何回も読み込みをしていると今回はおこったと思われます。
現在報告まで。
また、デフォルトのファイルをindex.htmやindex.htmlは入れなくても表示するのですが、
今後index.xmlも対応する予定などはないでしょうか?
できればいいかと思います。
では
ご指摘の通りでした。
お騒がせして申し訳ありませんでした。
これで正常に稼動してので、次は基本的なイントラネットのHP作成に移れます。
又、CGIにも挑戦したいと思っています。
また何かありましたらご教授お願いします。
>あひるさん
「なぁんだ」でなくて「んん?」ですが。
例えばC:\usrにPerlをインストールしたのでしょうか?
Perlへのパス(AUTOEXEC.BATに記述/NTならシステムにパスが設定されるのでインストール
失敗?)が通っていないのですね?
用途にもよりますけど、1.のチェックは外す,2.は直さないとしてPerlへのパスをちゃ
んと通すかAN HTTP Serverのオプション−一般の一般プロパティシートでC:\usr\bin\perl.exe
のように設定したほうが良いと思います(今後の問題解決のためには前者の処置をしておいたほ
うが後々楽だとは思いますが)。
余計な一言でした。
みなさま、大変お騒がせいたしまして、誠に申し訳ございませんでした。
全てチェックし直した結果、下記の点を変更したらCGIが動くようになりました。
1.オプション・一般の 「#!の行を調べる」にチェックを入れた
2.各CGIのファイルの1行目のPerlの記述の所で、「#!/usr/local/bin/perl」とあったのを
「#!/usr/bin/perl」と直した。
できちんと動くようになりました。
う〜ん、皆様にとってはたいした事ではなくて「なぁんだ」と、お怒りかもしれませんが、
上記2箇所の修正で動くようになりました。
本当に、ご迷惑をおかけして、申し訳ございませんでした。
中田さんやおおやまさんのアドバイスのおかげで、ひとつひとつチェックしたおかげです。
ありがとうございました。
すみません、ブラウザの「クッキーを受け取る時に警告する」をチェックを入れるとちゃんと警告が出たので、どうもチャットのGetcookieに問題が有るようです・・・。
さくらいさん、
v1.17 ですか? ちょっと確認してみたかぎりではクッキーは動作しているように思います。
CGIが Set-Cookie: を出しているかどうかは trace.log で確認できます。
あひるさん、
オプション/一般の CGI出力を検査 にチェックが入れてあれば、ブラウザに Error 500 に続いて Content-type がどうこうというHTTPサーバが出しているエラーメッセージが見られるはずです。
Netscape だとそのメッセージが確実に見られますが、IE5だとサーバの内部エラーという表示になる場合があります。その場合も、メッセージの詳細とかで、サーバが出しているエラーメッセージが見られると思います。
エラーログの方では、Error 500 であることしかわかりません。
ZEROさん、
httpd.exe を起動するとそれで1スレッドで、ポート80の接続待機のスレッドがひとつできて、それで2スレッドになります。 あとは、接続要求が1つあると1スレッドできます。
100%になったとき4スレッドということは、接続要求が2つあってそのスレッド間でデッドロックのようなことになっているのかもしれません。
トレースログのチェックを入れて、100%になったらそこまでの trace.log の関係すると思われる範囲をメールで送ってもらえますか。
ZEROさんのところは trace.log は急激に大きくなると思うので、trace.log 全部だと大きすぎるでしょうから。
なお、トレースをオンにしていると、trace.log の排他処理のため動作が遅くなると思います。
カメヤマさん、
リネームのタイミングの問題なのかもしれません。
「CGI出力を検査」のチェックをはずしてみてどうなるか試してみてください。
出力検査しない場合は、リネーム作業をしないはずなので。
一公さん、
文字通り 「(行番号)」と表示されるのなら、CGIスクリプトがおかしいということになります。
行番号と何かしら英語のメッセージが出ている場合は、CGIスクリプトに文法エラーがあるのだと思います。その場合は、メッセージの内容をお知らせ下さい。
"/~ahiru/test.cgi"は cgi 用のパスに置かれていますか?
或いはエイリアスがちゃんと設定されていますか? >あひるさん
最近チャットのSetcookieとGetcookieを変更して気づいたことなのですが、どうもクッキーをセットできていないようです。
以前もあったのと同じ症状(?)でしょうか?
初めて、インストさせていただきました。
しかし、CGIファイルを実行させると下記のようなエラーが出てしまいます。
いろいろ自分なりに調べましたが、大体が初心者に毛が生えたようなものなので原因がわかりません。
何卒、くだらない質問で申し訳ありませんが教えてはいただけないでしょうか?
エラーはログを見ますと、
Wed Jun 23 11:08:02 1999 Error Response 500 Thread 0(ID= -430573) for "/~ahiru/test.cgi"
と書いてあります。
ちなみに、CGIの記述に関しては、中身はコピーアンドペーストで入れたのですから、間違いはないと思います。
また、初期のテストとして、ローカルのインデックスファイル等は、きちんと表示されます。
お忙しいとは存知ますが、何卒ご指導のほどよろしくお願いいたします。
ども中田さん
>100%がどうかまだ予断を許しませんが、httpd.exe という名前は変えられるようにしておいた方がいいということですね。
そうですね、他のとかぶる可能性がありますね。anhttpd.exeとかの方が分かりやすいかと思われます。
それと、CPU100%の件ですが、リモートアクセスを抜いても問題はなります。
通常スレッドは2つ動いているのですが、100%になった時点で確認すると、4つとなっていました。
これが何かの糸口になればと思うのですが、なにか調べられることがあれば言って下さい。
ではこれにて
中田さん、回答ありがとうございます。
サービスとして組み込んだまま、NTの再立上げはしていますが、
何度でも同じ現象が発生します。
サービスとして組み込むとダメでそうでないときはOKの理由がわかりません。
中田さん、
さっそくご返事ありがとうございます。
CGIを実行したときのエラーメッセージをお知らせします。
-----------------------------
Error 500
CGI エラー - Content-Type ヘッダが正しくありません
(行番号)
-----------------------------
これはCGIファイル内のスクリプト上の問題のようですね...。
>ctvrtさん・中田さん
ワードパッドを使っていました。ためしに全部メモ帳にしたら、動きました(T_T)
絶対にテキストファイルで保存してたし、
今までのいただきものスクリプトもすべてワードパッドで開くようにしてました。
理由は「印刷したときメモ帳だとばける」「大きくなるとメモ帳でひらけない」
ということです。
それでいままでプロバのサーバで動かすだんには全く問題なかったんですが・・・
なんだかこんな初歩的なことで、おおさわぎしてすみませんでしたm(_ _)m
>ぴゅあさん
・・・ということでした(*^^*ゞでも今後の参考になりますので、
コメントはきっちりメモらせていただきました。
ちなみに、perlは現在までに2〜3回再インストールしました(httpdも・・・)。
win98を使っておりますが、確かに不安定です。そろそろ再インストールしなければ・・・。
そしてcpuはpenMMXのノート使用です。分類というのは全くチェックしてなかった(というか、認識もなかった(^^;))です。いちおうfor winとあるものの最新バージョンをおとしたんで今回はセーフのようですが、以後チェックするようにします。
みなさん、どうもありがとうございました!今後ともよろしくお願いしますm(_ _)m
カメヤマさん、
通常そのエラーはCGIの一時出力ファイルをオープンしたまま httpd.exe のプロセスが落ちてしまった後に出ます。
NTを再起動してもだめでしょうか?
朱鷺化さん、
バーチャルサーバごとのデフォルトインデックスが機能していませんでした。
現状では、常に、バーチャルサーバではないときのデフォルトインデックスの指定を使ってしまっています。
これは仕様ではなくてバグですので直します。
一公さん、
特に決まりはありません。
「CGI出力を検査」のチェックを入れておくと手がかりがでることが多いと思います。
うまく動かない内容を説明してくだされば、なぜ動かないのかわかるかもしれません。
NTアマチュアさん、
サービスにチェックが入っていて AN HTTPD のサービスの状態を調べようとしてエラーになった、ように思えます。
レジストリの HKEY_LOCAL_MACHINE\SOFTWARE\AnHttpd 以下を削除してから、再度 httpd.exe を起動してみてください。
それでも同じなら、お使いの NT のバージョン(NT Workstation ServicePack 4 とか)をお知らせ下さい。
なお、サービスがらみのエラーにかかわらず「接続要求待ち」の状態はそれで正常です。
なかじまさん、
CPU100%は、私自身が再現できなくて困っているところです。
どんな拍子になるのか、あるいは更地からやってもだめ、などがわかればありがたいです。
えむけいさん、
サーバ側でできることは前のお話の通り「大文字小文字の違いだけのロケーションへの301はキャッシュしない」というのがせいぜいということですね。
ブラウザに200応答のキャッシュができているときには AN HTTPD の(200応答の)キャッシュファイルができている、という状態ならいいのでしょうから。
もっと前の話の、大文字小文字を区別してキャッシュができればその方がいいのでしょうが。。
はじめまして。カメヤマと申します。
AnHTTPDを利用してイントラネット(サーバはWindowsNT)を構築しようと
しているのですが、サービスとして動作させPerlを実行しようとすると、
Error 500
CGI エラー - stdout.x を .cgitmp.x にリネームできません
となり、CGIがエラーとなってしまいます。
これはどのような原因が考えられるのでしょうか?
既知の問題でありましたらすいません。
なおサービスから外しておくと、問題なく実行できます。
Perlインタプリタは ActivePerl 5.003 "Build "313" です。
よろしくお願いいたします。
中田さん、いつも素早い回答ありがとうございます。
メールいただいたように、ホスト名にドメイン名まで記入すると、
ドキュメントルートまでは案内するようになりました。
しかし、まだ問題があります。
wap.〜において、デフォルトインデックス「index.hdml」へ案内せず、
「index.htm」へ案内してしまうのです。
これは、現段階の仕様では仕方ないことなのでしょうか?
はじめまして。サーバ初心者の者です。
今までネット上でCGIの作成をしてきました。
自宅内でCGIの動作テストしたいのですがうまくいきません...
「このファイルはこのディレクトリ」という
お約束はやはりあるのでしょうか?
本当に素人級な質問ですみません!
(Perl for Win32は入れました。こちらはちゃんと動くようです)
どうぞ宜しくお願いします。
エラーの状況をお知らせします。
(1)HTTPD アイコンクリック
(2)HTTPD 起動中ウィンドウ表示と同時にDEBUGウィンドウを表示(Failed open......)
(3)DEBUGウィンドウのOKボタンをクリック、続けてDEBUGウィンドウ表示
(In OpenSCManager.....1400)
(4)その後は待機中,Httpd-接続要求待ちの状態です。
尚、設定はデフォルトの状態です。
サーバ素人です。簡単にHTTPサーバができて、
しかもCGIや、アクセス制御もできるのでとてもすばらしいです。
でも、私のマシンで動かしていると、最近なんかの拍子でhttpdがcpuを100%占有して、
シャットダウン(これもすごく時間かかるんです (^_^; )しないと復帰しなくなるんです。
一度、OS入れかえて、更地から構築し直した方がいいんでしょうかねぇ・・・ (^_^;;
>301 応答がくればブラウザは Location: 先へのリクエストを出すのでは?
IEの場合、Location: 先のリソースがIE自身のキャッシュにあると要求を出す代わりにキャッシュの中から取ってきてしまうようです。結果として最初の要求しかプロキシからは見えません。IEのキャッシュにあるならいいではないかという話もありそうですが、その後IEのキャッシュをクリアしたり、別のブラウザで見たり、別のマシンから見たときに困ります。
>ブラウザのキャッシュがあるときは 301 のキャッシュが残るようです。
の原因もこれのようです。
みんさん、
\320,\317,\021,\340,\241,\261 は8進数でこの並びだとワードパッドないしワードの書式になっているということになります。
test.pl は単純テキストファイルでないと困るので、ctvrt さんの言われている通りメモ帳を使ってください。
必ずしもメモ帳でなくてもいいのですが、"テキストファイル"で保存してもらわないと。
"テキストファイル" であれば、DOSプロンプトで、
>type test.pl
としたときに、test.pl の中身がそのまま表示されるはずです。
現在の test.pl だと 半角カナで "ミ" "マ" で始まっているはずです。
NTアマチュアさん、
そのエラーは httpd.exe を起動した限りでは出ないはずだと思うので、どのようにしたら出たのかお知らせ下さい。
ZEROさん、
なるほど。
100%がどうかまだ予断を許しませんが、httpd.exe という名前は変えられるようにしておいた方がいいということですね。
朱鷺化さん、
了解しました。簡単にチェックした限りではちゃんと動作するはずなのですが、何かおかしいのでしょう。
調べてみます。
念のため、バーチャルホストの設定内容とtrace.logをメールで送っていただけますか(?)。
えむけいさん、
>それだと2度目の要求がブラウザから来ない
という意味がちょっとわかりません。
301 応答がくればブラウザは Location: 先へのリクエストを出すのでは?
。。。ちょっと混乱してきました。
もっとも、えむけいさんの言われたURLで、現状では具合が悪いことは確認したので、ちゃんと動作するように直す予定でいます。
初めてメールします。
今度部門イントラネットを中田さんのHTTPDを使用させてもらって構築しようと思い、
さっそくダウンロードして起動かけましたが、以下のエラーなります。
原因はどこにあるのでしょうか? 尚、当社ではEXHANGESERVER でOUTLOOKが稼動中です。
エラー
Failed to open SMCanager
IN Open SNmanager with Error 1400
以上です。
>みんさん
注意する点は1行目「#!/usr/local/bin」は必ず1行目に書かなくてはならない(その前に
改行などをいれてはならない)ということです。
それ以外は自由なので「1行目の下に改行を入れる」必要もなければ入れても全く問題ありま
せん。
それでは
print "Hello!";
という1行をhello.plとでもしてDOSプロンプトから
perl hello.pl
として(フォルダ(ディレクトリ)はどこでも良いですがhello.plを作成したフォルダに移動
すればC:\www\....\Perlのように書かなくてもperlだけで実行できるはずです。ちゃんと環境
変数PATHが設定されたなら)
Hello!
と表示されるでしょうか。
もしこれがおかしいならPerl.exeの異常と言える筈です。
1.Perlのフォルダを削除して再度インストールしてみる。
ちょっとISAPIが入っているので全部でファイル数がいくつだったかあとで確認しますが(
寝坊して3時間半仕事に遅刻した(T_T)。って何してる<ぢぶん(-_-;))ダウンロードに失敗し
てファイルが欠落しているのが問題というのは少なそうな気はしますが。libフォルダ関係。た
ぶんダウンロードからのやり直しは必要ないのではないかとは思いますがこれも合わせて後で。
2.Win95でしたっけ?頻繁に異常終了したりハングアップしたりしていませんか?
可能性は低いですが何処かDOSプロンプトとPerlの関係している部分(Win側の)システム
モジュールが壊れているということが絶対にないとは言えないかもしれません。
3.確かσ(^ー^)が落としたときにはi486という分類がされていました。他の方が落としたもの
にi586(これはPerl for Winではなかったはず。ActivePerlかなにか)。
一応486(5x86),Pentiumで問題ないのですが他のCPUであるとか?(PentiumUとかVとか)
i486はこれらのCPUにおいて包囲されているとは思いますが。
それでは続報を待ちます。
おひさしぶりです。中田さん
Httpd.exeが2つある件はとHttpdのスレッドが分かりました。
私のサーバにリモートメンテナンスをするためにIBMのDesktopOnCall2.5を入れていたのが
同じファイル名でhttpd.exeとなっています。
それがサービスとして動いているためhttpd.exeが2つあったわけです。
それをアンインストールしたら問題無く1つになりました。
それと、Httpd.exeのスレッド数ですが、2つです。
そのDeskTopOnCallがCPUを100%にしている原因だとしたらこれで解決すると思いますので、
しばらく様子を見てみます。
アンインストールをして2日目ですが現在のところ100%問題は出ていません。
では
中田さん早速のご回答ありがとうございます。
ご指摘通り、トレースログのホストを確認しましたが、
正しく記されています。
また、AnHTTPDの設定をもう一度確認してみましたが、
ホスト名等も正しく設定されています。
ということは、DNSはちゃんとhttp://wap.〜 http://www.〜 ともに、
正しい場所へ案内していると考えて良いわけですよね。
そして、AnHTTPDもホスト名そのものは拾っていると考えて良いわけですよね。
だとすると、AnHTTPDがそれぞれのホスト名に対応するドキュメントルートと
デフォルトインデックスに案内する際に、なんらかの不具合が生じてるとしか
考えられないのですけれども。
はじめまして。
>みんさん
まさかWordPadとか使ってないですよね?
NotePad(メモ帳)とかのエディタですよね?
まさかとはおもいますが・・・。
中田さん,こんにちは。
レス,有り難う御座います。
>CGIとして有効な拡張子は変更できません。
>.exe は、/cgi-bin などの実行パス以外の(一般)パスにあればダウンロードになるはずなのですが。。。
本件了解です。
有り難う御座いました。
では。
>ぴゅあさん
いつもレスありがとうございます。
#!/usr/local/bin/perl
print "Content-type: text/html\n\n";
print "<HTML><BODY>test</BODY></HTML>\n";
test.plのコピーです。ここからいただいて、そのままはりつけました。
若干改行などはいれましたが・・・改行はいれるとまずかったですか?
1行目の下に空行をいれたほうがいいとどっかでよんだので、いれたのですが・・・。
>みんさん
リブートとは再起動のことです。Windowsを終了するときに再起動するか終了させるかなどの
選択がありますよね。一度Windowsが終わっていればOKです。
(2)に関して以下のように表示されるはずです。
C:\WWW>perl test.pl
Content-type: text/html
<HTML><BODY>test</BODY></HTML>
C:\WWW>
この場合直接perl.exeを呼んでいるのでtest.plの1行目の記述は無視されます(このとき
AN HTTP Serverは関係ありません)。
何処か書き間違えていないでしょうか?
「認識できない文字である」というような通知ですね(制御コード文字が通知されていたりす
る)。
何かごみが入っていたりしないでしょうか?
ブラウザの表示からコピー&ペーストするか手で打ち込めば問題ないと思いますが。
-----で囲まれた中の3行だけになっていますよね?
>そうですね。キャッシュしない場合も一度は作って直後に消しているつもりなのですが、うまく消えていないようです。
それだと2度目の要求がブラウザから来ないのでキャッシュには何も残らなくて、結局あとでCacheOnlyで閲覧できないので残さないようにする意味がないと思います。
>ぴゅあさん
ありがとうございます。そうです、中田さんのレスをそのままコピーして動かしましたが結局タイムアウトでした。
PERLのインストール時のDOSプロンプトで2回yと答え、そのあとそれが終了したら再起動しています。リブートというのがわたしにはわかりませんが、24時間稼働ではありません。
>中田さん
さっそくやってみました。
結果は
(1)>C:\www\perl\bin\perl.exe -v としてやると、version 5.003_07とでました。
(2)C:\www test.plは中田さんのレスをコピーしてそのままはりつけて作ってあります。
DOSプロンプトで、
>C:\www\perl\bin\perl.exe C:\www\test.pl
としてやると Content-type: ... などは出力されず、
unrecognized character \320 i%nored at c:\www\test.pl line 1.
というようなメッセージが\317,\021,\340,\241,\261に関してでました。
これはなんでしょうか?1行目のperlのパスが認識されてるということですか?
ちなみに#!の行は調べないように設定しています。ブランク行もありません。
中田さん今までいろいろサポートしていただき有り難うございました、本日システムを再インストール
し問題のCGIを実行したところ正常に動作しました、私のコンピュータの異常でした
アドバイス有り難うございました
みんさん、
ちょっと様子をつかみきれませんが、、、
Perl で不安定になる、というのは私は聞いたことはありません。
(1)
DOSプロンプトで、
>C:\www\perl\bin\perl.exe -v
としてやると Perl のバージョンが表示されますか?
(2)
C:\www に 前回言った test.pl が作ってあるなら、同じくDOSプロンプトで、
>C:\www\perl\bin\perl.exe C:\www\test.pl
としてやると Content-type: ... とか出力されますか?
以上(1)(2)が どうなった かを、お知らせ下さい。
えむけいさん、
そうですね。キャッシュしない場合も一度は作って直後に消しているつもりなのですが、うまく消えていないようです。
Location: まで一回で返ってくればいいのですがそうでない場合もあるだろうということで、後から消すかどうか判断します。
大文字小文字の違いは無視するはずなのですが。。。
ブラウザのキャッシュがあるときは 301 のキャッシュが残るようです。
いずれにしろ、残らないように直します。
もっとも次のバージョンは前の懸案も含めて今日は無理で、しばらく先になります。
>みんさん
「中田昭雄 nakata@st.rim.or.jp 1999/06/17 21:20」をテストしてそうなっているのでし
ょうか?
ずっとPerl for Win v3.1.6(表記の仕方は違っていたかも?)を使っていますがこれは問題
なく動くと思います(試してはいませんが)。今使っている掲示板もこのバージョンのPerl/ISAPI
を使って開発しました。
PerlのインストールのときUnzip後DOSプロンプトが開いて2回「y」を答えるように確認(と
最後にAny key)が来ると思いますがこれはちゃんと行われて正常終了していますよね?それと
完了後のリブートと(これは24時間運転していなければいつかは行われているでしょうけど)。
今までこのPerl.exeをWin95/98/NT4.0で使い続けています(ISAPI中心ですが)。
まだAN HTTP Serverの最新バージョンには時間がなくて入れ替えていませんがISAPI周りの修
正もされたと思うのですがこれに問題は出ていないですよねぇ?>中田さん
>らぅさん(補足)
推測だけで言うと。。。。
どこかのサイトから落としてきたまま使ってはいませんよね?
排他処理(flock()やsymlink()関係)を生かしているとWinでは動いてくれません。
あとgethostbyaddr()(って名前だったかな?)とかnameとか呼び出しているところも。
前者は大抵個別の設定部分で無効にできるようになっていると思います。
取り敢えずはこれらを探して無効或いはコメントアウトしてみれば。。。。
「絶対パス」とは「絶対、バス」ではなくて「絶対パス」ということですよね?
ブラウザにURLを入れるときC:\www\...などとはしていないでしょうか?
http://127.0.0.1/...のように入れないとCGI/SSIは動いてくれません。
それからオプション−一般の一般プロパティシートでISAPIを入れているかどうかでISAPIを
使うかどうかを正しく設定してやらないといけないと思います。
またhttp://127.0.0.1/cgi-bin/...のような呼び出し方?, [(注)文字化けのためこの部分一部削除] をデフォルト状態から変更した場合エイリアスプロパティシートの実行パスの部分を手で
直す必要があった筈です。
取り敢えずはこんなところでしょうか。
中田さん、レスありがとうございました。
やってみたのですが、やはり途中でどうもループしてるような感じです。
パールのパスをわざとまちがったものにすると、ちゃんとエラーがでるんです。
ということは、
やっぱりパールとの相性がわるいのかな・・・と思ったりしています。
パスをはずしているときは、テスト用に添付されているCGIなどほぼうごきます。
ところが、パスをとおしたとたん、うごかなくなります。
たぶんパール以外の言語でかかれたサンプルだとおもうのですが。
ちまたで、パールを入れると不安定になる、といううわさもききましたが、
そういうことでしょうか?
http://www.interq.or.jp/mars/mai_hino/s17_010.gifへの301応答がv1.17のプロキシでも相変わらずキャッシュされているのですが、キャッシュしないのは大文字小文字も厳密に一致している場合だけでしょうか?
らぅさん、
もうちょっとエラーの内容の説明がないとなんとも。
当て推量で言うと、
一番可能性があるのは、perl のところを C:\Perl\bin\perl.exe のようにフルパス指定にする、くらいでしょうか。。。
ども^^
最近つかいはじめたのですが、CGIがうまくうごいてくれません;;
perlはちゃんといれたし。
でも、カウンタとかちゃっととか;;
絶対パスはあってるんですけど^^;
なんでだか・・・わかるひといます?(;;)
朱鷺化さん、
IPアドレスが同じでホスト名が違うバーチャルホストの場合は、リクエスト中の Host: ヘッダでどのバーチャルホスト宛てか判定します。
Host: ヘッダがあって、かつ Host: にあるホスト名とバーチャルホストの設定のホスト名が一致していることが必要です。
一致するものがなければ、バーチャルホストの設定の最初の行のホスト宛てとみなします。
リクエストのモニタは トレースログをオンにすると見ることができます。
以上が正しいのにちゃんと認識しないとなると AN HTTPD 側がおかしいということになりますので、その旨おっしゃっていただければ、調べてみます。
兎さん、
t_koba さんのおっしゃる通りで PROGRA~1 を使うか、全体を " " で括るかすればよいと思います。
レジストリのキーは HKEY_LOCAL_MACHINE\SOFTWARE\ActiveWare\Perl5 でいいと思います。
ActivePerl をインストールした場合は、HKEY_LOCAL_MACHINE\SOFTWARE\ActiveState\ActivePerl ができて、HKEY_LOCAL_MACHINE\SOFTWARE\Perl 以下のパスを見て PerlIS.dll のありかを探します。
ActiveWare と ActiveState の両方がある場合は、ActiveState の方を優先します。
三輪さん、
CGIとして有効な拡張子は変更できません。
.exe は、/cgi-bin などの実行パス以外の(一般)パスにあればダウンロードになるはずなのですが。。。
16サイ女子さん、
AN HTTPD のバージョンが 1.16 かそれ以前であれば、その現象が出るかもしれません。
1.16b かそれ以降であれば、大丈夫のはずなのですが。。。
場合によっては、オプション/一般の「単一スレッド」にチェックを入れればOKということかもしれません。
岳さん、
その場合のアップロードはFTPを使ってのアップロードのことだと思うので、サーバPC上で FTPサーバソフト を動かせばよい、ということになります。
FTPサーバ(ソフト)は、ソフトウェア紹介サイトでいくつかみつかると思いますが、FTPD とか FTPデーモン とも呼ばれます。
>兎さん
Perl ISAPI レジストリのパスに空白があるとエラーになるようです。
うちでは、
WindowsディレクトリにあるREGEDIT.EXEで、
HKEY_LOCAL_MACHINE\SOFTWARE\ActiveWare\Perl5
内の、
BIN "C:\Program Files\Perl\bin"
PRIVLIB "C:\Program Files\Perl\lib"
HTML-DOCS "C:\Program Files\Perl\docs"
を
BIN "C:\PROGRA~1\Perl\bin"
PRIVLIB "C:\PROGRA~1\Perl\lib"
HTML-DOCS "C:\PROGRA~1\Perl\docs"
に書き換えてうまく動くようになりました。
※HKEY_LOCAL_MACHINE\SOFTWARE\ActiveWare\Perl5
の部分はちょっと自信ありません。
<バーチャルホストの設定について質問致します。>
同じサーバにWAP用ページを作ろうと思い、
http://www.〜とhttp://wap.〜で別のドキュメントルートに行くように
DNSとAnHTTPの設定を行ったのですが、http://wap.〜に接続しても
http://www.〜のドキュメントが表示されてしまいます。
DNSは、CNAMEで同一サーバにアクセスするように設定
AnHTTPDは、wwwのドキュメントルートをD:\wwwrootに、
wapのドキュメントルートをD:\wwwroot\wapに設定しています。
なぜ、うまくいかないかご教授願えませんでしょうか。
AN HTTPD、いつも有効に使わせていただいております。
今までPerl for Win32でCGIを動かしておりましたが、
HTTPDのVer1.17導入と同時に、PerlIS.dllに切り替えようと思い、
PerlIS.dllを入手、Perl.exeと同じフォルダにコピーし、
「.pl, .cgiを PerlIS.dllで実行」にチェックを入れて再起動してみたところ、
errors.logに・・・・
Fri Jun 18 13:59:50 1999 LoadLibraryEx("C:\Program") failed with errorcode = 1157
と出てしまい、CGI/SSI部分が全く動作しなくなりました。
どの辺の設定がまずいか、教えていただけないでしょうか。
よろしくお願いいたします。
初めまして。
過去のゲストブックも読んだのですが,分からなかったので・・・
httpdの設定で,CGIの拡張子を編集(というか選べる)方法を教えて下さい。
現在は.bat .exe .pl .cgi .sh がグレーアウトされていて編集できないです。
結果としてブラウザで*.EXEを指定すると,サーバ側で実行されてしまうのです。
宜しくお願いします。
では。
こんにちわ。
httpdはすごくいいですね。
CGIのテストにすごく役立っています。
でも、困ったことがあります。
4回くらい更新すると、
「CGI/SSIプロセスを起動」
という、ものになりページが表示されなくなります。
終了しても、stophelperというものになり、終わらせることが出来ません。
再起動をすれば平気なので、やるたびに再起動していました。
最近再起動が面倒になります。
このCGI/SSIプロセスを起動を解除する方法はありますか?
教えてください。
お願いします。
使い始めたばかりです。もっぱら、ローカルで、HTML文法チェックやってます。
LAN内でも使えるようなので、こんどはサーバとして使おうかなとか考えているのですが、ほかの人が、ファイルをアップロードしたりできるでしょうか?友達にスペースを貸してあげたいのです…。一応FAQ見たのですが、無いようなので。以前のコメントも見ようと思ったのですが…途中で挫折しました。後で見ます(笑
今後ともよろしくお願いします!
(セキュリティとかさっぱりわからん…、どうしよう…汗)
えむけいさん、
後ろに ':' と '/' があるとおかしくなるかもしれませんね。
対策を考えます。
大山さん、
ポートスキャンがあったとしても、AN HTTPD では自分が開いているポートしかわかりません。
接続を試みただけだとすると errors.log に
Warning: Recv() received 0 bytes
というログが残るとは思いますが。
雲海さん、
お示しのエラーログは、yybbs.cgi のエラーとは対応していないように思えます。
現在使っている yybbs.cgi と関連するデータファイル一式を添付してメールで送っていただけますか(?)
まささん、
Microsoft の NT Option Pack には Win95 で使える PWS があって、これをインストールすると ASP.DLL がはいっています。
Win95 でも NT用 Option Pack をインストールしてよいようです。
Microsoft のページをご覧になってください。
みんさん、
c:\www に test.pl を作って、
---------------------------
#!/usr/local/bin/perl
print "Content-type: text/html\n\n";
print "<HTML><BODY>test</BODY></HTML>\n";
---------------------------
とでもして、
http://127.0.0.1/test.pl
で、どうなりますか?
t_koba さん、
そうするとやはり Win98 の問題でしょうか。。。?
まだ私は確認する時間がとれていないのですが、調べてみます。
URLの?以降に//が含まれていると(http://www.xxx.yyy.zzz/hoge.cgi?url=http://a.to/b.htmlとか)
キャッシュファイルは作られるようなのですが実際にCacheOnlyのときにアクセスしようとするとNot Foundになります。このようなURLにも対応できないでしょうか?
ちなみに IPSX は窓の杜で手に入ります。
AN HTTP と IPSXの組み合わせは強力です。簡単にWinマシンを
Webサーバにできます。
しかも設定も簡単です。
IPSXでプロバイダから割り当てられたIPアドレスをリンクし、そのIP
を先のホストに自動的にジャンプします。
つまりたとえば
http://プロバイダから割り当てられたIPアドレス/~hogehoge/
に他のユーザはアクセス可能になり、自宅サーバが構築できるんです。
あと気になるのはセキュリティ関係でしょうか。
悪意ある人間の侵入は撥ねたいですからね。
AN HTTP と IPSX を使って、掲示板をテスト運用してみました。
通常アクセスのログは、HTTPD.LOGで分析できるのですが、クラッカー
のポートスキャン等は、どのようにして検出するのでしょうか。
先に述べたツールを使いテレホタイムにWebを公開することを考え
ています。
中田様早速返信を戴き有り難うございます
I.E5.0で表示されるエラー内容は
インターネット サイト http://127.0.0.1/~temari/bbs/yybord/yybbs.cgiを開けません
処理がタイムアウトになりました
エラーログは以下のとうりです
Thu Jun 17 09:58:32 1999 Error Response 403 Thread 2(ID= -786859) for "/~temari/bbs/yybord"
Thu Jun 17 09:58:33 1999 Client Abort?- detected during CGI/SSI process
Thu Jun 17 09:58:33 1999 Client Abort?- detected during CGI/SSI process
Thu Jun 17 09:58:34 1999 Client Abort?- detected during CGI/SSI process
ですが、他のC.G.Iスクリプトでは正常に動作するプログラムも有ります
よろしくお願いします
ども、ASP推進者のまさです。
このBBSは結構勉強になりますね。
難しすぎてわけ分からん時もありますが、
解説者がなかなか分かりやすいと言うか、
率直に答えてくれるのは良いですね。
しかもみんなで(?)討論してるしてるところがまたニクイっすね。
これからも観続けます。
俺にもレス出来るようなことがあったらしますので(^_^;)
でわでわ。ASPのサポート一刻も早く実現してください。
ASP.DLLですがどこかで公開してるのでしょうか?
初めまして。初めてローカルサーバを構築してます。
いろんなサイトも見てだいたい書いてあるとおりやったと思うのですが、
CGIを実行すると途中でぴくりともうごかなくなります。
SSIの記述のあるHTML文書は、その記述の手前で動かなくなります。
たぶんPerlは動いてるようではあるのですが・・・
というのは、Perlのパスがとおってないときは、ちゃんとエラーが表示されたからです。
バーチャルホストは設定してません。
パールはPw32i316.exeを起動してつくったもの 、httpdは最新版を使わせていただいてます。
ちなみに、httpd起動中に、直にindex.htmlファイルをダブルクリックして開き、
そこにリンクしているCGIを起動させると、
print 〜 \nなどの文字もいっしょにでなからhtml形式で表示されるものと、
ダウンロードになってしまうものがあります。
もちろん、「LANを使ってインターネットに接続」を選択してあります。
申し訳 [(注)文字化けのためこの部分一部削除] ので書き込みしました。
環境は、DOS/Vノート・win98。c:\wwwがルートになるようにつくり、そこに
perlフォルダをつくってperlはその中のbinフォルダにいれています。
index.htmはルートに直におき、動かしたいCGI等はcgitestというサブフォルダにいれています。
お忙しいところ申し訳ありませんが、回答よろしくおねがいします。
さっそく、trace.logで確認してみました。
<<< Wed Jun 16 23:08:08 1999 <<<
POST /rt/bbs/bbs.cgi HTTP/1.1
>>> Wed Jun 16 23:08:08 1999 >>>
<b><font color=ffff00>GET</font>
となっています。
GETも確認したところ、
<<< Wed Jun 16 23:18:15 1999 <<<
GET /rt/bbs/bbs.cgi?name=test HTTP/1.1
>>> Wed Jun 16 23:18:15 1999 >>>
<b><font color=ffff00>GET</font>
こちらはOKでした。
t_koba さん、
POSTの件では、trace.log を有効にして、リクエストが POST になっているかどうか確認してみてもらえますか?
たとえば、
<<< Wed Jun 16 21:12:13 1999 <<<
POST /cgi-bin/test.pl HTTP/1.0
...
のような表示があるはずですが、それが "POST" なのに、$ENV{'REQUEST_METHOD'}が "GET" なのかどうか、ということですが。
もっとも私も Win98 で確認はしていないので、やってみますが。
APi517eでPerlISが使えない件は
APi515eのPerlISで使えていたopen (IN, "<count")などの
ファイル操作関数がErrorになっていただけで、
PerlIS自体はきちんと動作していました。
APi515e、APi517のPerlISで、
print $ENV{'REQUEST_METHOD'};
を表示したとき、POSTでデータを送っているのに、
"GET"と表示されました。
Perl.exeでは、
"POST"と表示されます。
Win98だからでしょうか?
ZERO さん、
そうですね。バーチャルホストはスレッド数は増やしますがプロセスhttpd.exeは作らないはずです。
何かわかったらご連絡ください。
もっとも、100%の問題とは直結しないのかもしれませんが。。
雲海さん、
>Tue Jun 15 09:01:23 1999 Error Response 500 Thread 0(ID= -912025) for "/~temari/bbs/cgi/petit.cgi"
のエラーログが出ているということは、エラー内容が表示されるはずです。
IE5だと、エラー500 内部エラー のように表示されているかもしれませんが、どこかそのあたりでサーバが送ったエラーメッセージ(の詳細)を見ることができるはずですので調べてみてください。
サーバが送ったメッセージがわからないと、ちょっと原因がわかりません。
>いずれにしてもポートを変えて2つ動かしているのでない限り
>2つあるのはちょっとおかしいのではないかと思います。
>(ヘルパーは動かしていませんよね?)
ヘルパーは動かしてません動かしているのであれば、バーチャルホストですね。
Workstationでみればバーチャルホストをいれてもやはり一つだけしか動いていません。
なにか設定がわるいのかもしれませんね・・・
ちょっとしらべてみます
httpdを使っています、中田さん有り難うございます
最初は順調に動作していましたが最近エラーが出て直せません、どうすればよいかどなたか教えて下さい
Tue Jun 15 09:01:18 1999 Client Abort 2-- detected during CGI/SSI process with thread 0 (ID=-912025) nReadyCount = 10
Tue Jun 15 09:01:18 1999 Client Abort detected during CGI/SSI process
Tue Jun 15 09:01:18 1999 KillProcess: Got Process ID = 0, dwExitCode = 0
Tue Jun 15 09:01:18 1999 Aborted in procHeader(2)
Tue Jun 15 09:01:18 1999 Aborted in procHeader(3)
Tue Jun 15 09:01:23 1999 Error Response 500 Thread 0(ID= -912025) for "/~temari/bbs/cgi/petit.cgi"
困っていますぜひお願いします
Ken さん、
それはよかったですね。最初からすんなりとはいかない方がいいのかもしれません。
また何かありましたらどうぞ。
中田さん、こんにちは。先日質問をしたKenです。
動きました!動きましたよぉ〜。人生初めてのCGIです。
今後とも何かあったらよろしくお願いします。
えむけいさん、
適用ボタンについては使えるようにすることを考えます。
>現在のプロキシは Host:の有無にかかわらず URLから接続先を決めていますので、
RFC2068の5.2にそうしろと書いてあるのでそれで問題ないと思います。
>/.cache_welcome で、例の 404 ではなくて 302 を返すタイプの場合も大丈夫ですか?
CacheRootをさかのぼってファイルを作成する方法が思い付かないのでとりあえずは大丈夫だと思います。どうしても心配ならあらゆるキャッシュファイルの作成前にCacheRoot配下のパスかどうかチェックしてみてはいかがでしょうか?
---
なんか要望ばかり書いていますが、設定ダイアログの[適用(A)]ボタンを有効にできないでしょうか? オプションをいろいろ変えながら実験しているときにいちいちダイアログを開き直すのはけっこう面倒です。
ZERO さん、
確かにタスクマネージャでは見られませんね。
パフォーマンスモニタで Thread を見るようにすると、各プロセスのスレッドが全部表示されます。
いずれにしてもポートを変えて2つ動かしているのでない限り2つあるのはちょっとおかしいのではないかと思います。
(ヘルパーは動かしていませんよね?)
えむけいさん、
現在のプロキシは Host:の有無にかかわらず URLから接続先を決めていますので、Host: の補完はできますね。そうするようにしてみましょう。
ゴミは trace出力ではなくて本当にゴミのようです。もちろん出ないようにします。
/.cache_welcome で、例の 404 ではなくて 302 を返すタイプの場合も大丈夫ですか?
どうも中田さん。
実はスレッド数はどのように見るのでしょうか?
管理ツールの中にあるソフトで確認するんでしょうか
Winntタスクマネージャでプロセスをみると2つHttpd.exeとあるのです。
よろしければ教えていただけませんか?
では
プロキシがブラウザから受信したヘッダにHostがない場合、サーバへ転送する前にURLのホスト名の部分からHostを補完できないでしょうか? これはRFC2068でも推奨されていますし、HostがないためNot Foundを返すサーバや、Hostがないと正常にアクセスできない同一IPを使ったバーチャルホストはすでに実在します。
>ゴミについては、trace 出力のときのゴミかもしれません。
このゴミを出ないようにすることは可能ですか?
あと危うく忘れるところでしたが
>キャッシュで、ちょっと思ったのですが、/.cache_welcome を指定されると具合が悪いでしょうかね。。?
とりあえず /.cache_welcome を使った攻撃方法は思い付きません。サーバ上にたまたま同名のリソースがあったときに面白いことになりそうな気はします。
ZEROさん、
どうもです。
httpd.exe が2つあるというのがちょっとわかりませんが。。。
それぞれスレッド数はいくつでしょうか?
えむけいさん、
予約デバイス名を含むキャッシュファイルを作るわけにはいかないので、作る際に名前を変えないといけないということですね。オープンして GetFileTypeで調べるようにします。
Not Modified をそのまま返す方は調べてみます。
ゴミについては、trace 出力のときのゴミかもしれません。
お久しぶりです中田さん。
CPU100%の件ですが今回の方がなる確率が高いです。
前回のバージョンでは1週間に1回ですが、今回のバージョンは1日に1回必ずなります。
ただ、ちょっと気になった事が一つあります。
CPUが100%になってる時に、タスクマネージャでどういう状況か見ていると、
Slaved.exeが26%前後占有されてて、2つあるhttpd.exeの多くメモリを食っているほう
(私のところで今みると884Kと2860Kです問題は2860Kの方です)が74%前後で合計100%となっているパターン(P1とします)と、
メモリを多く食っている方だけで97%前後(P2とします)といった2つのパターンがあります
P1はカミナリマークでハングアップを起こしているのに対し、P2は待機中でハングアップを起こしています。
ただ、P1の方でなっている確率は少ないです。
P1:P2=3:7ぐらいの確率ですここまでは今のところ分かった動き方です。
[(注)文字化けのためこの部分一部削除] これぐらいしか今のところ分かり [(注)文字化けのためこの部分一部削除] ではこれにて
v1.17ですが、まだブラウザがIf-Modified-Sinceを付けていないのにNot Modifiedを返すという現象が発生する場合があるようです。以下、そのときのtrace.logです。
ところで「<<< Fri Jun 11 02:21:43 1999 <<<」の「is5.swf」以降の部分は実際にサーバから返されているのではなくてバッファのゴミを出力しているような気がするのですがどうでしょうか?
-----------------------------------------------------
<<< Fri Jun 11 02:21:41 1999 <<<
GET http://www.catv-inet.or.jp/whatis/whatis5.swf HTTP/1.0
Referer: about:http://www.catv-inet.or.jp/whatis/whatis5.swf
Proxy-Connection: Keep-Alive
User-Agent: Mozilla/4.6 [ja] (WinNT; I)
Host: www.catv-inet.or.jp
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */*
Accept-Encoding: gzip
Accept-Language: ja
Accept-Charset: Shift_JIS,*,utf-8
>>> Fri Jun 11 02:21:42 1999 >>>
GET /whatis/whatis5.swf HTTP/1.0
If-Modified-Since: Wed!
, !
07 Jan 1998 06:26:13 GMT
Ref
erer: about:http://www.catv-inet.or.jp/whatis/whatis5.swf
Proxy-Connection: Keep-Alive
User-Agent: Mozilla/4.6 [ja] (WinNT; I) via proxy gateway AnWeb/1.17
Via: 1.0 192.168.0.103
Host: www.catv-inet.or.jp
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */*
Accept-Encoding: gzip
Accept-Language: ja
Accept-Charset: Shift_JIS,*,utf-8
<<< Fri Jun 11 02:21:43 1999 <<<
HTTP/1.1 304 Not Modified
Date: Thu, 10 Jun 1999 17:43:57 GMT
Server: Apache/1.2.6
Connection: close
ETag: "3efa5-159c0-34b32005"
is5.swf
Proxy-Connection: Keep-Alive
User-Agent: Mozilla/4.6 [ja] (WinNT; I) via proxy gateway AnWeb/1.17
Via: 1.0 192.168.0.103
Host: www.catv-inet.or.jp
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */*
Accept-Encoding: gzip
Accept-Language: ja
Accept-Charset: Shift_JIS,*,utf-8
>>> Fri Jun 11 02:21:43 1999 >>>
HTTP/1.1 304 N! ot! Modified
Date: Thu, 10 Jun 1999 17:43:57 GMT
Server: Apache/1.2.6
Connection: close
ETag: "3efa5-159c0-34b32005"
<<< Fri Jun 11 02:21:44 1999 <<<
HTTP/1.1 304 Not Modified
Date: Thu, 10 Jun 1999 17:43:57 GMT
Server: Apache/1.2.6
Connection: close
ETag: "3efa5-159c0-34b32005"
-----------------------------------------------------
>なるほど予約デバイス名ですね。COMx と あと PRN と CON でしたっけ。
あとNULとLPTxとCLOCK$(PC-9800ではCLOCK)とWin95/98ならCONFIG$も確実にありますし、CONFIG.SYSしだいで理論的にはどんなデバイス名もありえます。GetFileType関数で判定するのが確実だと思います。
えむけいさん、
なるほど予約デバイス名ですね。COMx と あと PRN と CON でしたっけ。
キャッシュファイルのオープンに成功してしまって、そのあと読み込もうとして落ちるのかもしれません。
手を入れないといけませんね。
原因と思われるものの見当が付きました。
いつも「Plug-inをロードしています…」で落ちていたのでてっきりShockwaveムービーが原因かと思ってしまったのですが、真の原因はcom1.gif、com2.gif、com3.gifでした。おそらくファイル名がMS-DOSの予約デバイス名(COM1,COM2,COM3)と衝突している関係でおかしくなっているのだと思います。
v1.15bで落ちなかったのが謎ですが、キャッシュファイルのタイムスタンプをいじるようになった関係でしょうか?
わかやま神さん、
バージョンアップは上書きでいいはずです。
ついでに、
別のディレクトリに展開しても引数なしで起動するとオプション設定は以前のものを使います。
オプション設定の保存場所は、引数なしの場合、レジストリ HKEY_LOCAL_MACHINE\SOFTWARE\AnHttpd\default以下です。
引数をつけて起動、たとえばショートカットで "httpd.exe 117" とすれば HKEY_LOCAL_MACHINE\SOFTWARE\AnHttpd\117 以下に新しい設定ができます。
えむけいさん、
それぞれ2回程度ずつ強制リロードも含めてやってみましたが v1.17 で落ちませんでした。
もう少しやってみますが、キャッシュの条件で違うのでしょうか。。。
中田さん、こんばんは。
AN HTTP Server1.16bようやく動作しました。
結局、原因は不明のままです。(再インストールしたら動作しましたので、そのまま使用しています)
ほっとしたのもつかの間、1.17にバージョンアップしたんですね。
またGETさせて頂きます。
ところで、1.16bから1.17へのバージョンアップは上書きインストールでよいのでしょうか?
(当面はそのままの予定ですが・・・)
初歩的な質問ですいません。
よろしくお願いします。
http://himawari.kix.or.jp/monolith/demo1.htmlや http://himawari.kix.or.jp/monolith/demo2.htmlのShockwaveデータをv1.16以降のAnHTTPDのproxyを経由してブラウザで開こうとすると、ANHTTPDが落ちます。私の環境では再現率100%です。v1.15bでは問題ありませんでした。
香取さん、
「CGI出力を検査」にチェックが入れてあって、Ken さんが書いておられるようなエラーメッセージがブラウザ上に出ませんか?
それは別として、
minibbs の バージョンは、10.22 ですか? 今公開されているのは 10.30 で、履歴をみると、その前は 10.21 なのですが。。。
10.21 については、
gbook.22.htmの
>TAKU takuyaf@yellow.plala.or.jp 1999/02/22 23:27
の前後でいろいろ話がでていますので参照してください。
おおよそ、times( ) や ls を使っているところが問題です。
ls の問題は、10.30 で改善されているようです。
ただ、結構ややこしいので説明もややこしくなりそうですので、香取さんお持ちの minibbs.cgi をメールで送ってくだされば確認して直して返送します。
ひょっとしたら、設定の問題かもしれませんし。
Ken さん、
King2 チャットは、jcode.pl は同梱のようなので、require './jcode.pl'; でも大丈夫だと思います。もちろんフルパスでもいいので、これは問題ではありませんね。
"error" というメッセージは、*.cgi の中で、open(. . .) || die "error\n"; という部分が出しています。ただ、こういう行がたくさんあるので、どの *.cgi のどこの open がエラーになったのかわかりません。データファイルなどがちゃんとあるか確認してみるのがよいでしょう。
不明なら、"error\n" のところを番号でもつけて、どこでエラーになったのか確認してみないといけないかもしれません。
えむけいさん、
exe? の件、了解です。
キャッシュで、ちょっと思ったのですが、/.cache_welcome を指定されると具合が悪いでしょうかね。。?
山本さん、
そうですね。ちょっと変なように見えますが、それで正常です。
jgawk.exe がパスの通ったディレクトリにインストールされていれば、カウンタも正常に動作します。
(jgawk.exeがあれば「コマンドまたはファイル名が違います」というところが出なくなります。)
jgawk.exe がないのならそれで正常ですから、無理に jgawk.exe を入れなくてもいいと思います。
MiniBBS/v10.22をwindowsでminibbs.cgiを以下のように変更しました。
minibbsの説明書に従ってperlのパスを#!/user/bin/perlに変更し、reloadをhttp://127.0.0.1/cgi/minibbs.htmlに
modoruもとりあえず同様に書いてminibbsを実行すると
まずminibbs.cgiが動いてマスターキーの設定/変更画面にいきます。
ここでキーを入力してokを押すとHTTP 500 - 内部サーバ エラー
httpd.logにはPOST /cgi/minibbs.html HTTP/1.0" 500 235でした。
minibbs.cgiのどこがいけないのでしょうか?
はじめまして。最近CGIの勉強を始めたものです。早速ですが質問です (--;;。
チャットのCGIを試すとエラーになります。コメント集によくある質問のようで恐縮ですが、
エラーメッセージは...
------------------------------------------------------------------------------------------
Error 500
CGI エラー - Content-Type ヘッダが正しくありません。
CGI 出力メッセージ:
Can't locate /kenz/public_html/cgi-bin/jcode.pl in @INC at C:\www\kenz\public_html\cgi-bin\king2fr.cgi line 9.
------------------------------------------------------------------------------------------
....です。そして該当する「line 9」の「require "/..../... .cgi"」の部分をフルパスに書き換えると....
--------------------------------------------
Error 500
CGI エラー - Content-Type ヘッダが正しくありません。
CGI 出力メッセージ:
error
--------------------------------------------
[(注)文字化けのためこの部分一部削除] だと思いますが、ちょっとわからないで教えて下さい。
--------------------------------------
島本 拓 taku@cc-net.or.jp 1997/07/14 22:37
>perlに変えることによって正常に動作します。
名前を変えるということですか?
--------------------------------------
島本 拓 taku@cc-net.or.jp 1997/07/14 22:33
Parse CGI outputをチェックしてやりましたら
Error 500
CGI Error - can't find Content-Type
CGI Output Message:
Can't locate ../jcode.pl in @INC at c:\unzipped\httpd086\minichat.cgi line 13.
こんな、エラーがでました。
--------------------------------------------------------------
中田さん、ぴゅあさん へ。
たびたび、失礼します。
私が、随分長い間質問していたSSIが、動かないという、質問の件ですが、
やっと、解決しました。
何が,原因だったかと言いますと、HTTPDの設定の一般で、
”POSTメソッドを除く”と言う所にチェックが入っていました。
ここの、掲示板に書くと同時にいろいろな人に相談していたのですが、
その結果、解決することが出来ました。
いろいろ、長々とした、私の質問に答えてくださって、本当に有難うございました
これからも、何かありましたら、一つよろしくお願いします。
中田さん、ぴゅあさん へ。
今回も、早速のレス有難うございます。
早速,HTTPDの設定と、counter.plの、中身をもう少し見てみようと
思います。
また、何かありましたら、よろしくお願いします。
セキュリティホールへの対応ありがとうございます。1.16bが速攻で出たときは驚きました。これでひとまず安心して使えます。
.exeに「?」が付くと問答無用でサーバ側実行されてしまうという仕様もかなり怖いのですが、オプションで禁止できないでしょうか?
初歩的な質問ですが
ssisample.shtmlを表示すると
##########
echoではタグはいれられません。
タグを入れたいときはテキストファイルに入れて typeでstdoutに出力してください。
##########
counter は、countファイルを用意して、
あなたのアクセスは、コマンドまたはファイル名が違います. 114 番目です。
というところでしょうか。
(注意)このサンプルは jgawk.exe を使っています。
##########
と表示されてしまいます。これで正常なのでしょうか?
初心者なのでわかりません是非教えてください。
>スズキさんに関して補足
何がどう駄目なのかが解らないので補足のしようもないのですが....
PerlISでも相対パスできてましたよ(確か)<掲示板でテストしてたとき>中田さん
尤もPerl for Winですが。
ただseek()だけではうまく行かないような気が?(ずっと前にここにサンプルを載せたと思
いましたが)
症状が解らないのでなんとも言えませんが。
openに失敗するということなのであれば中田さんのいう通りなのでしょう。
スズキさんへ補足。
フルパスの例は、
"+<C:/www/counter/counter.cnt"
"+<C:\\www\\counter\\counter.cnt"
などです。
スズキさん、
PerlIS を使わない設定では、そのままうまく動作しました。ので、PerlIS を使うにチェックを入れているのだろうと思います。
PerlIS では、実行時のディレクトリの関係で、"+<./counter.cnt" をディスク上のフルパスにすることでうまく動くようです。
でないと open に失敗するわけですが、'Power Down' を "Power Down\n" としておけば、 open に失敗した時に Power Down と表示されるはずです。
中田さん、ご無沙汰してます。スズキです。
毎回レスをいただきありがとうございます。私はしばらくアメリカの方に行っていて
この、ページを、チェックできませんでした。
それでは、この前の続きから質問して行きたいのですがよろしいでしょうか?
今までに,HTTPDの設定と、私の書いたSSIそして、ssisampleの方を、見ていただきました。
そして、次はcounter.plと、ファイルcounterの置き場所の問題ではないか、とのことでした
ので、私のcounter.plを貼り付けます。
チェックしていただけますでしょうか?
#!/usr/local/bin/perlあと、ファイルcounterの、置き場所ですが、counter.plと、同じディレクトリに置いて
#############################################
# main #
# GIF COUNTER OUTPUT Ver 1.0 #
# 1999/05/01 #
#############################################
#-------------- file IN OUT -----------------
if(!open(INOUT, "+<./counter.cnt")){
print 'Power Down';
exit(0);
}
if(!&lock_file(INOUT)){
print 'Lock .....NG';
exit(0);
}
$count = 1 + <INOUT>; # InPut File
seek(INOUT, 0, 0); print INOUT $count; # OutPut File
&unlock_file(INOUT); close(INOUT);
print "$count\n"; # カウンタの表示
exit(0); # 終了
#############################################
# File Lock #
#############################################
sub lock_file{
local(*FILE) = @_;
if( $uselock ){
eval( "flock(FILE, 2)");
if( $@ ){ # Lock Non
return 0;
}
}
return 1;
}
#############################################
# File UnLock #
#############################################
sub unlock_file{
local(*FILE) = @_;
if( $uselock ){
eval("flock(FILE, 8)");
}
}
あ
ん〜 いずれもあくまで本人の気持ち次第ということですね。
このような考え方があると言うだけで押し付けではありません。
>中田さん
使っているのはPerl for Win32 v3.1.6(確か)です。
それはたぶんActivePerlとかいうものですね?
他にもPerlExとか色々あって読んでいる時間がなかったのでPerl for Win32の最終バージョン
のそのまま使っています。
ということはそのバージョン自身が持っている不具合なのかもしれませんね。
いずれ書くつもりですし時間を作ってサイトを読んでみます(ActivePerlとか)。
あとちょっとした野望?も(笑)
>としひこさん
一応σ(^ー^)的考え方を書いておきます。いずれサイトのページに書くつもりでいますが。
・#flock()
#はコメント標識でこれ以降行末までがコメントになります。
コメントなので読み飛ばされるため無駄な解釈が行われない分速くなるという意味を持ってい
ます。ただ本当に速くするなら完全に削除してしまうのが良いのですがUNIXサーバにもって行
く予定がある場合には復元する必要があるので残しておく方が良いでしょう。
コメントはあとで読みやすくするためのものであったりデバッグ中にコメントアウトしたりす
るのに使ったりしますが実際に使うときはコメント部分を削除したものを別に作ってアップする
のがベストであろうと考えます。
・eval()(まだ書き方を確認していません(^ー^;)。使う予定もないから)
この中に記述したものがサポートされているかどうかを判断して処理してくれます(という言
い方がこの場合には一番解り易いのでしょう)。
従ってWin上ではflock()を書いていないこととして動作しUNIX上では処理されます。
どちらでも使えるものが書けることになるのです楽ですが関数を1個呼び出すことになるので
その分余計な処理が行われ重くなるということでσ(^ー^)は使うことを避けています。
・flock(...) if ($f_lock != 0);
訂正:f_lockの部分は$f_lockの記述漏れでした。ごめんなさい。
取り敢えずσ(^ー^)が採っている書き方ですがif文の式解釈がどれくらいのロスになるかは真
面目には調べていません。
Win上では$f_lock=0,UNIX上では$f_lock=1と予め定義しておくことで切り替えています。
・sub flock(){}
訂正:flock()関数の宣言名を間違えていました。ごめんなさい。
あまり使ってはいませんが本当は尤も最適な方法だと思います。
Winではダミーのflock()関数を呼ぶことで回避する方法で余計な処理が入りますがUNIX上で
はこれを削除しておくことで最速で動作します。
要はWinのみで動かすかUNIXにも(将来的に)持って行くかで選択することになるでしょう。
どうしてこういうことを考えるかはメインサイトのHTML文書関連で解説していますがいずれ
CGI関係も書かなければと思っています。
この件はSiliconValleyの掲示板でも良かったのですがまだ特に利用もないし十分な用意が
できていないのでここで済ませてしまいました。
長くてごめんなさい。ホントいつも長文です。ごめんなさい。少しは時間的な余裕が作れて
いる筈なのですが。
としひこさん、
そのままアップするものなら eval の方がいいです。
eval だと flock が実行されますが、# だと実行しないので。
ぴゅあさん、
ISAPIのPerlIS(APi515e, APi517e) で POSTメソッドで HTTP_USER_AGENT をはじめ各環境変数を取得できました。
環境変数の取得はどのようにされてます?
t_koba さん、
APi515e および APi517e の PerlIS.dll で、正常に $ENV{'REQUEST_METHOD'} が取得できてしまいました。
>中田さんとさくらいゆずるさんとぴゅあさん
どうもありがとうございます。
#もeval()のどちらでもうまくいきました。
この二つには何か違いがあるのですか?
とにかく今は書き込みを楽しんでいます。
アップせずに試せるって最高ですね。
ありがとうございました。
ASPを広げよう!(謎)
正常に動作いたしました。
もう、感動ものです! このようなすばらしいものを無料で提供されているとは・・・
頭が下がります。 どうもありがとうございました。
追記
evalってeval('...')ではありませんでしたっけ?
()は省略できたような気もしないでもありませんが。
それとも書かなかったかな?
普段使っていないのでちゃんと覚えていませんが。m(__)m
★flock()
eval()も使えますけど個人的には#flock()の方が好きです。
理由は省略。
汎用性という点でσ(^ー^)としては実際に書く時には「flock(...) if (f_lock != 0);」と
いうような書き方をしてはいますが。
どれにするにしても目的と好みによりということですね。
σ(^ー^)的に更に追求するなら「sub fclock(){}」という記述を追加するという方法でしょう
か。やってはいませんが。
あくまでσ(^ー^)的観点での話です。
これらがどういう意味を持っているかは興味がある場合に限って追求してみては?
flock(LOG,2);
なんかを
eval'flock(LOG,2);';
とすれば、使えませんか・・・?<flock()関係
としひこさん、
flockの置き換えは面倒で完全にはなりません。
とりあえずは flock の前に # をつけて #flock として、flockを無効にすれば動くことは動きます。
そのあと、 AN HTTPD のオプションで「単一スレッド」にチェックを入れておけば、flock が無効でもロックしたのと同じ動作をします。
勉強中さん、
ざっと電子私書箱2を見てみましたが、あまりに UNIX依存が強すぎるので、Windows上で動かすにはちょっと面倒な感じですね。 symlink の問題を回避してもその先がありそうです。
まささん、
うーむ、今のところ1ヶ月くらいをみてください。他の方からもASPの要求が強ければ早くなりますが。
HIROせんさん、
質問はご遠慮無くどうぞ。
ZnZ さん、
了解しました。直します。
えむけいさん、
なるほどそうですね。次の(今週末予定の)1.17 で対処します。
ぴゅあ様、どうもありがとうございます。ついに書き込めました。
やっぱりホスト名を取得するようになっていました。
ただ、CGIプログラムによっては直し方が分からないものも多いですが。
あとひとつあるのですが・・・_(._.)_
実はあるプログラムを実行すると
Error 500
CGI エラー - Content-Type ヘッダが正しくありません。
CGI 出力メッセージ:
flock() is not available on Win95!
という勉強中さんと同じようなエラーになります。
ログの作成など用にこのflock()を使っているらしいのですが
これは別のものに置き換えたりは出来ないのでしょうか?
頼り切ってしまって申し訳ありません。でも本当に感謝しています。
ありがとうございました。
>勉強中さん
ソースコードが判らないので取り敢えずその部分だけで言えば....
・lock()関数の中身を全てコメントにする。
・error()関数の中のunlink()関数をコメントにする。
で良いと思います(これだけでは他にもあるのかどうかは判らない)。
$lockfile=0としたというのが正しければ意味のない処置です。
詳細は省略しますがあるとすれば$lockfileではなく他の変数名になっているはずです。
中田さん。昨日はご指導頂き誠に有難うございました。
ロックを行っているのが原因ということはわかりました。しかしロック機能を無効にすることが出来ない状況に現在陥っており、未だエラーが解消されません。結城 浩氏著書の「Perlで作るCGI入門」でもAN HTTPではuselock=0とすることとなっております。昨日質問した電子私書箱ではこのuselockのスクリプトが残念ながらありません。
setup.plの問題文:sub lock {
$lockfile = $temp_dir . 'POBOX2.lock';例えば、lockfile=0としてもエラーが解消されません。
local($retry) = 3;
while (!symlink(".", $lockfile)) {
if (--$retry <= 0) { &error('リトライエラー','',''); }
sleep(2);
}
}
sub jis { $msg = $_[0]; &jcode'convert(*msg, 'jis'); }
sub error {
unlink($lockfile);
print "Content-type: text/html\n\n";
print "<html><head><title>$title</title></head>\n";
print "$body\n";
print "<center><h1>$_[0]</h1>\n";
print "<h3>$_[1]</h3>\n";
print "$_[2]<p>\n";
print "</center></body></html>\n";
exit;
}
1;
ASPのサポート待ってます
いつぐらいになるか、めどは無いですか
はじめまして。
「とほほ」さんのHPよりこのページに飛んできまして、「AN HTTP」をDLさせていただきました。 本当にありがとうございました。
回線接続無しのローカル環境でCGIスクリプトのテストをできないものかと
思っていたところ、このようなページを発見できて非常に嬉しく思っております。
なにぶん、まだまだ不慣れなもので(初心者という説も・・・)何かとご質問させていただくかもしれませんが、
よろしいでしょうか?
ではでは、またお伺いいたします。
HTTPサーバを停止して、接続状況を更新をするとhttpd.exeが落ちます。
こんどはプロキシサーバにセキュリティホールを発見しました。
http://members.xoom.com/..%2F..%2F..%2Fautoexec.bat
http://members.xoom.com/..%5C..%5C..%5Cautoexec.bat
http://members.xoom.com/../../../autoexec.bat (IEでは不可)
http://members.xoom.com/..\..\..\autoexec.bat (IEでは不可)
とか、キャッシュルートがあるドライブ上の任意のファイルを上書きして破壊できます。
XOOMのサーバはリソースが見つからなかったとき404ではなく302を返す点がミソです。
>としひこさん
もしかするとローカルホスト名を取得しているのでしょうか。確か止まると中田さんが書かれ
ていたような。
gethostbyaddr()辺りだと思うのですが(σ(^ー^)のCGIでの処理で使っているもので他の関
数で処理している場合もあるのだと思いますが)見つかったらその辺をコメントとすれば良いと
思います。検索には「host」,「REMOTE」(REMOTE_HOST),「HTTP」辺りを指定してみては?
排他処理とはロックファイルのところのことです。
>勉強中さん
symlinkによるロックを行っているのが原因ですね。
ソースコードは見ていませんがロック機能を無効,或いはWinで処理できるものを指定すれば
動くようになると思います。
The symlink function is unimplementedは「symlink()関数はインプリメント(組みこま
れて)いませんよ」ということです。Win版Perlではサポートされていません。
中田さん。はじめてコメントを書き入れさせて頂きます。現在、AN HTTPDをダウンロードさせて頂き、ホームページにCGIを導入する為、CGIのことに関して勉強しながらAN HTTPDを使用しております。
ぜひ私の質問に御答えして頂けないでしょうか。ネットサーフレスキューWEB裏技というサイトの電子私書箱2を導入したい為、AN HTTPDでテストを何度もこころみたのですが、正常に動作しません。AN HTTPDのオプション、電子私書箱のsetup.pl等の設定をしっかりと行ってはいるのですが、やはり正常に動作しません。
エラー内容:error 500 Content-typeヘッダがみつからない。
The symlink function is unimplemented at ./setup.pl line 100
上記エラーが発生します。setup.plにはもとからContent-typeが記入されています。どのような対策を施せば宜しいでしょうか。
どうぞご指導、ご鞭撻のほど、宜しくお願い申し上げます。
>ぴゅあ 様
レスありがとうございます。排他処理とは?
ロックファイルは使わないようにしてみましたが
変化はありませんでした。また、CGIは他の所からもらってきたもので
実際にはうまく動作しています。改造したかったのでlocalhostでためしてみたのですが・・・
あいかわらずカウンタはきちんと動作しています。
唯一書き込めないだけで・・・
他にはどのようなことが考えられるのでしょうか。
エラーメッセージさえでないというのはつらいです・・・
忘れていました。m(__)m
>としひこさん
その現象からいくと何処かから持ってきたCGIをそのまま動かそうとしているのではないです
か?
排他処理の部分だと思うのですが。
排他処理を行わないようにすると良いのだと思います。
>中田さん
ずっと前にもどなたかからインターネットに対してパソコンは安全かという質問があったよう
な気がしますが(他の掲示板かも知れない。確かに質問が来てるから)いい加減な知識からTips
for Win(SiliconValley)の方でまとめてみました(まとめたとは言えないと思う)。
AN HTTP Serverには問題のない内容だと思いますが暇なとき(まとまってないので長いです
m(__)m)にでも覗いて意見でも頂ければと思います。
初めまして。ANhttpdを使わせていただこうと
思っているのですがやはりつまづいてしまいました。
Perlのインストールはたぶんうまくいったと思うのですが
CGIに書き込めないのです。カウンタなどは正常に動作し
ていますがbbsに書き込もうとすると「ホスト localhost
に接続しました。応答を待っています」となったまま
なにもおこらないのです。
こういうときはどのような所を直せばよろしいのでしょうか?
ぜひアドバイスをよろしくお願いします。
Magata さん、
おっしゃる通りで、パスワードは8文字目までしか使っていません。
しばらくはそのままのつもりですので、オプションの説明に明記するようにします。
下の質問に対する追加です。
若干試してみたところ、
パスワードは8文字に設定されているようですね。
ログインネームも全部で9文字使用しているのですが、
こちらは全部入力しないと駄目でした。
ANhttpd1.15を重宝に使わせていただいています。
有り難うございます。
一つお聞きしたいのですが、パスワード設定に文字数制限があるのでしょうか。
アルファベット9文字と数字4文字を設定すると、
数字の部分を入力しなくとも、パスワードが通るようです。
過去のコメントや、Document類を検索してみましたが、
その記述はなかったように思いましたので、質問させていただきました。