AN HTTPD ゲストブック/コメント集(1999年12月8日22:15)


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

 『禁止されていない「らしい」』としたかった。
 ま、いっか(照)


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

>かむかむさん
 WinNT4.0でもユーザ名に日本語を使うことは禁止されて「いない」らしいので何が問題なの
かは判りませんけど。文字コードで見ると$40くらい?

 ドメインユーザマネージャ(名前は違うかも?)のプロファイルにそのパスが書かれている
ようなら漢字の部分を適当に変えてエクスプローラ等でフォルダの名前も変えてやれば環境を引
き継いだまま動くようにできるかもしれませんね。

 ただσ(>_<)は自分の環境の範囲内で騙し騙し動かしているだけで全く詳しくない素人ですの
でインストールしなおそうと思ったときに試してみるのが良いでしょう。

 因みにドメインユーザマネージャでのユーザ名の変更は単にログイン名が変わるだけで
プロファイルには以前のままのバスが書かれているのでこれは意味がないこと、逆に言えば
プロファイルを変更すればなんとかなる可能性があること、大抵雛型を作っておいてコピーから新しい
ユーザを作りますけど単に雛形であってプロファイルの中身はコピーされないので環境の引継
ぎは行われないことといったところでしょうか。
 一応原因となっている部分はシステム周りのようですし独自の処理をしているアプリでなけれ
ばプロファイルの変更から問題は出てこないのだろう(ただし未確認)と思いますが。
 原因が日本語にあるのかどうか判りませんけど(確かにオリジナルのWinから見ると日本語版
はオマケというかオプション的な存在?)日本語でユーザ登録をするときはプロファイルの設
定に注意しておかないかもしれないということかもしれませんね。
 尤も製品になるときには解決されていたりするかもしれませんけど。


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

かむかむさん、
わかってよかったです。
もっとも日本語の問題なのか空白の問題なのかちょっとはっきりしません。
いずれにしろこのようなケースでも正常に動くように AN HTTPD 側も考えておこうと思います。


かむかむ sebasu@mb.mailbank.ne.jp 1999/12/12 18:41

>ぴゅあさん
どうやら今までの問題はプラットフォームの判定の問題ではなく、
私のユーザ名が島 健一(私の本名)だったことのようです。
理由はプロセスログを見たところ

>Sun Dec 12 16:49:54 1999 F:\WINNT\system32\cmd.exe /C
>D:\tool\Perl\bin\Perl.exe D:\httpd\cgi\test.cgi
>F:\DOCUME~1\島 健一 \LOCALS~1\Temp\stdin.0 >
>F:\DOCUME~1\島 健一 \LOCALS~1\Temp\1.0

となっており、どうやらWIN2000というのは、自分の設定やテンポラリファイルを

ドライブ名:\Documents and Settings\アクセスするときのユーザ名\

以降にファイルを作るようなのです。もうおわかりかと思いますが、つまり私の
場合ですとユーザ名が島 健一なのでテンポラリファイルを

F:\Documents and Settings\島 健一\Local Settings\temp

に作っていたのです。
ここに日本語が入っているのが原因と思い、試しに Administratorでアクセスし
てやってみると、正常に CGIを実行できてしまいました。

しかし、Administratorからアクセスすると、今までにインストールしたアプリケーション
など、いろんな設定が最初の設定に戻ってしいます。

だから、ユーザ名を"島 健一"から"Kenichi Shima"に変えれば、設定ファイル
などを保存するフォルダの名前も変わるかなと思ったら、変わりませんでした(T_T)。
レジストリとフォルダ名を"島 健一"から"Kenichi Shima"に置き換えようかな、
とも思いましたが、レジストリに"島 健一"がいっぱいあったので、これで全部
置き換えてバグが起きてもやだなと思い、仕方がないので時間のあるときに
再インストールすることにします。このことによって、他のアプリケーションでも何
か問題が起きるかもしれないですし。

ということでWIN2000をインストールするときは、ユーザ名を日本語ではなく、
英語にすることをおすすめします。(言われなくとも英語にすると思いますが・
・・)

大変お騒がせして、どうも申し訳ありませんでした。
と同時にここまでつき合ってもらって、どうもありがとうございました。

MSさん、変なところに日本語使えるようにしないでよ(T_T)


中田昭雄 nakata@st.rim.or.jp 1999/12/12 16:32

Win2000のプラットフォームIDは WindowsNTと同じでしたので、かむかむさんのがなぜうまくいかないのか不明になってしまいました。今、プロセスログを調べてもらっています。


かむかむ sebasu@mb.mailbank.ne.jp 1999/12/11 21:50

>ぴゅあさん

なんか色々試したけどやっぱり無理でした。(T_T)
中田さんから下のとうりにメールが来たので、これが原因なら解決ですね。
色々つきあってもらってほんとにありがとうございます。
(こんなに騒いどいて、実はくだらない簡単なミスだったらタダじゃすまないな・・・)


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

ぴゅあさん、
かむかむさんの Win2000 の件は、プラットフォームの判定の問題かな、と思いはじめました。
現在、Win32s, Win95/98, WinNT を判定しているのですが、Win2000でこれがどうなるか不確かです。わからないと Win95/98 としてしまうので。
たぶん Win2000は新しいプラットフォームにしているのではないかと思うので、それを調べてからにしようと考えています。
かむかむさんにもその旨メールしました。


ぴゅあ pure@GalaxyCorp.com 1999/12/11 18:50

>かむかむさん
 なんとかしたいということで。。。。
 取り敢えず考えられることを試してみましたが。

 'Content-type'を出すコードの前にゴミが入っていると想定して。。。。

・コードの先頭に$1Aが入っている。
 「CGI エラー - 標準出力に何も出力されていません。」と出るので違いますね。

・コードの先頭にPerlとしてエラーとなる文字が含まれている。
 「CGI エラー - Content-Type ヘッダが正しくありません。」と出るのですが何処が悪いか
通知される。
 これは「!」,「"」あたりは無視されるようですね。

 原因究明にはなりませんでしたけどコードを新たに書き直してみれば?
 もしこれが原因であるとするならソースコードをバイナリダンプしてみるのも良いかも。
 尤もWin98で動いているものをそのままコピーしていると思うので問題はない筈。

 また中田さんの「ドキュメントルートを・・・」というのでふとスペース入りのパスかと思い
ましたがNTでは(つまり2000も同じ。95/98では試したことがない)関係ないようでした。
 なおPerlの方のパスの問題は一応動いているようなので問題ないのだろうと思い確認していま
せん。
 一応関係ないですけどもしかしたら何か思い当たる部分もあるのかも知れないということで
チェックの記録として。

※メモ
 因みにPerl for Win32を使っています。ActivePerlとかでは違うかも。
 またISAPIではエラーの場所を出してくれないんですね。
 ISAPIを使っていて悩んだときにはPerlに切り替えてデバッグするのが良いかも。

 ただエイリアスに実行パスとして設定していないフォルダを指定して実行したのにソースコード
が表示されないでCGIとして実行される?
 これで良いのだろうか。。。。
 ただバージョンはv1.21から入れ替えていません。
 あとでアップデートしとこ。


中田昭雄 nakata@st.rim.or.jp 1999/12/11 16:42

かむかむさん、
できれば、ドキュメントルートと perl.exe のフルパスを教えてください。


かむかむ sebasu@mb.mailbank.ne.jp 1999/12/11 16:10

ぴゅあさん、中田さんたびたびありがとうございます。
まとめレスで失礼します。

問題の件ですが、ファイル名はtest.cgiで指定していしいるURLは
http://127.0.0.1/cgi/test.cgiです。
test.cgiの場所を色々移動してやってみても駄目でした。
NetscapeCommunicator 4.6 でも試してみましたが、やはり

Error 500
CGI エラー - Content-Type ヘッダが正しくありません。
CGI 出力メッセージ:
指定されたファイルが見つかりません?

と、でます。・p>が抜けただけ(; ;)
コマンドプロンプトでtest.cgiを実行すると、ちゃんと処理されています。
なんかもうあきらめモードです・・・。OS切り替えればいいことですし。
色々ありがとうございました。


ぴゅあ pure@GalaxyCorp.com 1999/12/11 12:05

>かむかむさん
 もしかしたらwin2000j.comが助けになることもあるかもしれませんね。
 そういうレベルのものでないような気もしますが一応サイトがあったのでご報告まで。
 或いはサポート受けられるのかも?(自分で何とかしろって回答しかなさそうな気がしますけ
ど)
 またRC2は12/8に雑誌の付録になっているようでした。
 因みに正にさっきテレビでやっていたそのものという風にwww.win2000.comは取得済み。
 正にドメイン取得合戦をうかがわせるように工事中でしたけど。
 (番組の内容はそういう嘘な解説で良いのかって気はしましたけど)

 と、うちのらくがきネタ物でしたね。(^ー^;)
 あとで書いとこ。(照)


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

かむかむさん、
Content-type が正しくない、というのはちょっとメッセージが不適切ですが、エラーにより Content-type ヘッダが出力されていない、という意味になります。

本題のエラーですが、
>指定されたファイルが見つかりません・p>
というのは、メッセージが日本語化された Perl でしょうか。。。?
いずれにしろ、見つかりませんの後にファイル名が来るはずです。

で、そのファイル名が化けているので、ひょっとするとそのCGIは日本語のファイル名なのではないでしょうか?
かつ、IE5を使っているとすると、URLを UTF-8 にエンコードして送っている場合、そのように化けると思われます。
Win2000のIE5で「いつもUTF-8としてURLを送信する」のチェックをはずせるのかどうか知りませんが、できなければ、ファイル名を test.cgiとかにしてやってみてください。

日本語のファイル名ではないのであれば、指定しているURLをお知らせ下さい。


ぴゅあ pure@GalaxyCorp.com 1999/12/11 07:16

>かむかむさん
 確かにそれだけ(#!行もない)とすれば環境側(AN HTTP Server,Perlを含む)ということ
になりそうですね。
 AN HTTP Serverが作っている(かも知れない)中間ファイルの関係とか何処かインタフェース
等違うのか?。。。。
 もう確認していると思いますがこの程度のコードなら簡単なのでDOSプロンプト(NTでは
コマンドプロンプトですね)でPerlを直接動かしてみるとどうでしょう。動いてしまうと思うので
すけどもしかしてPerlがWin2000に適用できてなくて意味不明のエラーを出すとか。ファイルに
リダイレクトしてダンプしてチェックするくらいすると完璧でしょう。

 あとはAN HTTP ServerがWin2000に対応できていないのか?
 特殊なことはやっていないと思いますがWin2000の一部のインタフェースに問題があるのか
何かか。特にWin2000になって大きな仕様変更があったりはしないとは思うのですけど。
 手元にあればもっと追求できるかと思いますが取り敢えず想像できる範囲で。。。。

P.S.
 Win2000は旧称WinNT5.0だからやはりWinNT4.0等と同様非常に安定しているでしょう。
 それがWin95/98とは違う大きな売りでもあると思います。
 σ(>_<)はWin2000を手に入れられませんでしたが。

 IE5.5のレポートも書かなきゃ。
 連日それらしく(照)作業しててやっと残り4/10サイトの更新にまで。
 やることいっぱい。ちょっとらくがきの方の気力が。。。。(>_<)
 取り敢えず電子掲示板は普通に使えるようになりましたので。
 来ている方々へ。
 一応。。。。 


かむかむ sebasu@mb.mailbank.ne.jp 1999/12/11 00:54

ぴゅあさん、レスありがとうございます。
CGIのソースコードファイルは単なるテストのため、簡単な

print "Content-type: text/html\n\n";
print "<HTML>\n";
print "<HEAD>\n";
print "<TITLE>CGIテスト</TITLE>\n";
print "</HEAD>\n";
print "<BODY>\n";
print "CGIのテスト\n";
print "</BODY>\n";
print "</HTML>\n";

こういうものなので、指定しているファイルなんか無いのに・・・という感じです。
もし他に原因がありそうでしたら、レスよろしくお願いします。

余談ですが、WIN2000RC2は、全然落ちないし、安定していて、98より軽く
すごく良いです。だからこの問題のために、OSわざわざ切り替えるのが、めんどくさい。
私は近くの書店で配布していたのをもらったのですが、
今度の月刊アスキーの付録などにも付いてくるらしいので、
良かったら試してみてはどうでしょうか?


ぴゅあ pure@GalaxyCorp.com 1999/12/10 19:43

>かむかむさん
 2000の環境は解らないのでレスを控えようと思っていましたが一応一般的な範囲で。

 たぶん「指定されたファイルが見つかりません」はたぶんPerlが吐き出しているメッセージ
ですよね?
 というのは中田さんであれば解るのでしょうけど。

 それがPerlのメッセージだと想定すると言葉通り何かのファイルが足りないのでしょう。
 (これも同じく中田さんなら)「Content-Type ヘッダが正しくありません」と出るのはヘッダ
が出てくる(CGIから吐き出す)前に「指定されたファイルが見つかりません」のメッセージ
が吐き出されているためであって実際のContent-Typeヘッダがないということには無関係と思
います。
 という訳でちゃんとファイルが存在するかを確認するのが良いと思います。
 そのメッセージにまでなっているということはPerlとCGIのソースコードファイルはちゃんと
呼び出されて実行されているのでしょう。ソースコード内から呼んでいるrequireファイルや
データファイル等が見つけられないのではないでしょうか。
 ちょっとしたデバッグルーチンを作ってエラーが出ている個所を絞り込むのが早いかと思った
りします。


かむかむ sebasu@mb.mailbank.ne.jp 1999/12/10 14:57

中田さん、レスありがとうございます。よく見たらFAQにのってたエラーでしたね。
すみません。
それで、中田さんの言う通り、試してみたところ、
Error 500
CGI エラー - Content-Type ヘッダが正しくありません。
CGI 出力メッセージ:
指定されたファイルが見つかりません・p>

と、でました。でも、テストCGIのcontent-typeは、WIN98でテストしたものと一緒なので、あっているはずです。まだどこか設定が間違っているのでしょうか?
たびたびすみませんが、教えてください。よろしくお願いします。


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

かむかむさん、
オプション/一般の .cgi,.pl の実行プログラムのところをフルパスで C:\Perl\bin\perl.exe などと指定して、さらに、「CGI出力を検査」にチェックを入れてやってみてください。
それでエラーがなくなるか、あるいは原因を示すエラーメッセージが表示されるのではないかと思います。


かむかむ shim@orinime.net 1999/12/08 22:15

はじめまして。
今まで、WIN98でAN HTTPDを使っていたのですが、
最近WIN2000RC2を入れたので、WIN2000RC2でもAN HTTPDを
インストールしたところ、htmlは、うまく表示されるのですが、
CGIはうまく表示されず、「サーバが見つかりません」とでます。
PERLはインストールしてDOSプロンプトでは、ちゃんと動きます。
WIN98だとうまく動きます。
WIN2000RC2だと駄目なのか?それとも単なる設定ミスなのか
どなたか、よろしければ教えてください。
よろしくお願いします。