いとさん、TYMさん、
TYM さんのはそうしているようにも思えましたが、まあそれは次の段階で、と思っていました。
TYM さんから次の質問があったら考えましょう。
いとさん、ありがとうございます。
>エラーメッセージからの推測ですが、仮想パス:/xxx, ローカルパス:\\Ne3\a\www2\...
>や /yyy, \\PC STATION\D\www\... のような設定をしていませんか?
その通りです。
たとえばNe3のCGIを動かそうとしていても(#!/usr/local/bin/perlとしても#!/usr/bin/perlとしても)、DOS/Vのperlが動いていたように見えました。
パスが通っているからDOS/Vのperlが動くのかな...??と思ったりしていたのですが。
(PCに何考えトンネンと聞いても答えません・・・。返って変な設定をしていれば
動くなといいたいくらいです。それだけAN HTTPDが優れているのかも知れませんが)
中田大先生のレスを見て、まず上記のperlの動作が変だと思い当たりました。
ブラウザでHTTP://192.168.0.xとしてからはNe3のcgiを動かすときは、
Ne3のperlが動く(Ne3は無茶苦茶トロイので)のがわかります。
多分、いとさん(中田さんもご指摘)の通りだと思います。
とすればPCも人と同じファジィな存在(127.0.0.1など「おまえの所為ジャ」と
いわれると、あわてて自分の所為かな?とあわてるような)ではないかと親近感を持ちました。
「レスの趣旨がわかってない」といとさんや中田さんのお叱りを受けるかも???と
恐れながら超初心者はカキコしました。
とにかくあたたかいBBSだとしみじみ感謝しつつ今日はもう寝ます。
TYMさん
エラーメッセージからの推測ですが、仮想パス:/xxx, ローカルパス:\\Ne3\a\www2\... や /yyy, \\PC STATION\D\www\... のような設定をしていませんか?
他PCのファイルを自PCのローカルファイルとしてアクセスして、表示されていた状況ではないかと思われますが。
他PCでAN HTTPDが動いていなくても htmlが表示されませんか?
TYMさん、
なるほど確かに "127.0.0.1" では、インターネット上のサーチエンジンなどでも解説記事にはたどりつきにくいかもしれません。
TCP/IP関係の本あたりにはちゃんと書いてあるとは思いますが、このアドレスは「ローカルループバックアドレス」といいます。
混乱させてしまうかもしれませんが、127.0.0.1 でなくても 127.xxx.xxx.xxx(たとえば 127.0.0.2 や 127.1.2.3)でも同じです。
LANの環境があるのなら他にネットマスクについても調べてみて自分でいろいろやってみるとよいでしょう。
中田さん、本当にありがとうございました。
「127.0.0.1 というのはIPアドレスと言っても特殊なアドレスで常に自分自身のことを指すIPアドレスです。どのコンピュータもIPネットワーク上でそれぞれのIPアドレスをもつものですが、それ以外に 127.0.0.1 は常に有効です。しかし 127.0.0.1 は常に自分自身のことなので、他のPCを指すためには使えません」
私のような初心者はこうゆう常識的なことがわかっていません。
多分、ひとりで何日悩んでいてもわからなかったと思います。
私の時間がどれだけ無駄に使われずに済んだかを考えると、
どんなに中田さんに感謝しても足りません。
本当にありがとうございました。
TYMさん、
質問の趣旨がちょっとはっきりわかりませんが、
127.0.0.1 というのはIPアドレスと言っても特殊なアドレスで常に自分自身のことを指すIPアドレスです。
どのコンピュータもIPネットワーク上でそれぞれのIPアドレスをもつものですが、それ以外に 127.0.0.1 は常に有効です。
しかし 127.0.0.1 は常に自分自身のことなので、他のPCを指すためには使えません。
単純なHTMLやCGIが自分自身にもあれば他のPCのつもりで自分自身にアクセスしていたということではないでしょうか(?)。
中田さん、ありがとうございます。
うまくいきました。
http://127.0.0.1/~katsu/...
http://127.0.0.1/~toyama/...
で接続するとhtmlや簡単なcgiは表示されていたのですが、
jcode.plを要求するものや複雑なcgiが動かなかったのです。
127.0.0.1 localhost Ne3
と書いたファイルhostsを削除し、Ne3を再起動して
DOS/Vのブラウザからhttp://192.168.0.3/~katsu/... で
アクセスすると掲示板やアクセスロガーのcgiがうまく動作しました。
Ne3からも同様です。
今までダイヤルアップルータを使っていたので
あまりIPのことなど気にしていませんでした。
AN HTTPDをインストールするとき、
「ルータを使っているのにIPは127.0.0.1でいいのかな?」
と思いながらkentさんの自宅マシンWWWサーバ化計画の解説の通り設定して
http://127.0.0.1/~toyama/...でうまくいったし、
9821Ne3にも同様に設定し、DOS/Vからhttp://127.0.0.1/katu/...で
Ne3のhtmlやhello.cgiが表示されたのでDHCPサーバのことなど忘れていました。
でもまだよく理解できないのですが、
なぜDOS/Vと98ノートが同じIPアドレス(127.0.0.1)でhtmlや簡単なcgiが動いたのでしょう?ばかばかしい質問かも知れませんが、教えていただければ幸いです。
TYMさん、
正しい接続方法は、
(1)Ne3(192.168.0.3)のブラウザで、Ne3のサーバにアクセスするには、
http://127.0.0.1/~katsu/...
http://192.168.0.3/~katsu/...
(2)Ne3のブラウザで、DOS/V(192.168.0.2)のサーバにアクセスするには、
http://192.168.0.2/~toyama/...
(3)DOS/Vのブラウザで、DOS/Vのサーバにアクセスするには、
http://127.0.0.1/~toyama/...
http://192.168.0.2/~toyama/...
(4)DOS/Vのブラウザで、Ne3にアクセスするには、
http://192.168.0.3/~katsu/...
となります。どういうURLを指定していてその時にどのエラーが出るかを具体的にお知らせ下さい。
レスありがとうございます。
中田さんの過去ログを斜め読みして、hosts.samのことが書いてあったので、9821Ne3(コンピュータ名Ne3)のみhosts.samをhostsに書き換えて
127.0.0.1 localhost Ne3とおまじないのつもりで書いています。
Ne3を先に立ち上げてもwinipcfg.exeでみるとNe3(LAN CARD)のIPアドレスが192.168.0.3となり、DOS/V(USB LAN Adapter)のIPアドレスが192.168.0.2となっています。DOS/Vのコンピュータ名はPC STATIONにしています。長いのでDOS/Vと書きます。
ドキュメントルートはDOS/VはD:\wwwに、htmlやcgiはtoyamaというフォルダのpublic_htmlの中に置いています。ローカルパスD:\www\toyama\public_htmlが仮想パス/~toyamaになっています。
Ne3がa:\www2をドキュメントルートに、ローカルパスa:\www2\katu\public_htmlが仮想パス/~katuになっています。
実行パスで相手のローカルパスを\\Ne3\a\www2\katuなどとしています。
どちらのindex.htmlもhttp://127.0.0.1/~toyama/とhttp://127.0.0.1/~katuから開きます。
前回の投稿で変にタグをつけておかしくなったのでテキストで再度表にしました
--------------------------------------------------------------------------CGIの勉強のためにはスタンドアロンでCGIが動くだけで十分かと思うのですが、
PC | OS | HTTPD | ActivePerl | PC内のCGI | 相手のPCのCGI
DOS/V | Win98 | ○ | ○ | 全て○ | 簡単なものは○
9821Ne | Win95b | ○ | ○ | 全て○ | 簡単なものは○
--------------------------------------------------------------------------
TYM さん、
なんだかちょっとおかしいですね。表の部分は確かにちょっと読み取れません。
それぞれのPCのIPアドレスは固定にしてありますか?
それがたとえば、192.168.0.1 と 192.168.0.2 だったとしたら、
192.168.0.2 から相手にアクセスする場合、
http://192.168.0.1/...
とするわけですが、そこは間違いありませんか?
そうだとしたら、それぞれドキュメントルートはどのように設定しているかお知らせ下さい。
つまり、DOS/V と PC9821 のそれぞれのIPアドレスとドキュメントルートを知らせてください。
申し訳ないです。表にしようと思ったところが、無茶苦茶になってしまいました。ごめんなさい。
(注)表は復元済
はじめまして
超初心者です。用語も勉強をはじめたところで、正しく記述できないかもわかりませんが質問にお答えください。
現在の環境はDOS/V(OSはWIN98)とNEC 9821Ne3(OSはWIN95)をダイヤルアップルータを介して、家庭内LANを張っています。
昨日AN HTTP 1.32fと ActivePerl 623をダウンロードしました。両方とも2台にインストールし、DOS/VとNe3の両方にCGIを置いて、家庭LANで動かそうとしました。
簡単なCGIはDOS/VからNe3のものも、その逆もブラウザ(IE5とIE4)から動作させ表示できるのですができました。たとえばHELLO WORLD!などと表示させたり、HTMLから送信しCGIで表示させたりすることはできるのですが、require './jcode.pl';の記述があるBBSのCGIを他方から動作させようとすると、
Error 500
CGI エラー - Content-Type ヘッダが正しくありません。
CGI 出力メッセージ:
Can't locate ./jcode.pl at \\Ne3\a\www2\katu\public_html\bbs\bbs.cgi line 16.
とエラーがでます。
アクセスロガーのCGIを動作させようとすると、
Error 500
CGI エラー - Content-Type ヘッダが正しくありません。
CGI 出力メッセージ:
Can't open perl script "\PC STATION\D\www\toyama\public_html\cp\index.cgi": No such file or directory
というメッセージが表示されたりします。
どちらもLANに接続したまま、それぞれのPC内のCGIは、それぞれのPC内で問題なく動作するのですが。
ちょっと問題点を整理します。
| PC | OS | HTTPD 1.32f | ActivePerl 623 | PC内のCGI | 相手のPCのCGI |
| DOS/V | Win98 | ○ | ○ | 全て○ | 簡単なものは○ |
| 9821Ne | Win95b | ○ | ○ | 全て○ | 簡単なものは○ |