AN HTTPD ゲストブック/コメント集(1999年11月2日07:27)


ぴゅあ pure@GalaxyCorp.com 1999/11/09 08:03

>ふぁいんさん
 素直に動かせないというのはちょっと気持ちの良いものではありませんがうまく行きますよう
に。


ふぁいん peaceful@mx2.tiki.ne.jp 1999/11/09 00:11

ぴゅあさんへ

レジストリを確認した所、ちゃんと「PerlMsg.dll」が指定されていましたよ^^

中田さんへ
PHPのテストをして、何か問題が発生する様でしたら後日 報告させて頂きます。
今日は気持ちと時間の都合で^^;テストしていないもので・・・


中田昭雄 nakata@st.rim.or.jp 1999/11/08 21:21

ふぁいんさん、
フリーズは確かに気になりますが、再度起こるようならお知らせ下さい。


ぴゅあ pure@GalaxyCorp.com 1999/11/08 08:31

>ふぁいんさん
 実はもうひとつあるんですが所在を確認しようと思ったまま時間がなくて。。。。
 レジストリエディタでPerlMsgをキーに探してみてください。
 c:\www\perl522\binで始まるパスでPerlMsg.dllを指していればOKの筈です。
 このDLLが先のアンインストーラで気になっていたところですが。

・直接Status:を吐き出しているCGIがあったりする。
 でも反応はない。ただ\nを2つ続けていなかった所為なのかも?
 条件によりCGIの吐き出すHTML文書の変わりにForhiddenなどのエラーを出したいと思うので
す。代わりのHTML文書を吐き出せば済むことでもありますれど。できればストレートに表現し
たいというところで。中田さんにも教えていただいたのですけどコード一覧だけのような?

・CGIからHTML文書を吐き出さずに直接指定されたURLへ飛ばしてしまう。
 先の場合と同様の感じの処理が違うというものですが。
 メタタグで一定時間後に飛ばすことは出来ますけど出来ればシンプルにしたいと思うので。

・これも2番目と同じですが例えば先のをSSIとして処理する方法もあるかと思いますが多くの
ページにSSIを組み込むことはしたくないということで(理由はお解りでしょう).htaccess等
により指定されたURL以下以外であれば指定されたURLへ直接とバスということなどできないの
でしょうか。今のプロバイダはかなり親切なスタッフがいらっしゃるのですが相談してもいい
ものかどうか。
 仮に.htaccessで可能としても国内ではこのファイルに関して部分的に説明してあるところ
はあったりしますが詳しいところが見当たりませんので。


ふぁいん peaceful@mx2.tiki.ne.jp 1999/11/08 01:11

中田さんへ

実は今日、ヘルパーのチェックを外して、PHPの実行をしていたらフリーズしました。^^;
たまたま だとは思うのですが、何となく気になります。。
私の環境だけの問題なら 仕方ないのでしょうけど^^;。。

IISとISAPIの説明、ありがとうございました。m(_)m
Internet Information Server、Internet Server Application Programming Interfaceと
書いて頂けると 何となく^^; ですが意味が分かります。

ActivePerlのレジストリに関しては、この様になっていました。
[HKEY_LOCAL_MACHINE\Software\ActiveState]
[HKEY_LOCAL_MACHINE\Software\ActiveState\PerlScript]
[HKEY_LOCAL_MACHINE\Software\ActiveState\PerlScript\1.0]
"NoCaseCompare"=dword:00000001
"EnabledZones"=dword:00000010
[HKEY_LOCAL_MACHINE\Software\ActiveState\ActivePerl]
[HKEY_LOCAL_MACHINE\Software\ActiveState\ActivePerl\522]
[HKEY_LOCAL_MACHINE\Software\Perl]
@="c:\\www\\perl522"
"bindir"="c:\\www\\perl522\\bin"


ぴゅあさんへ
AN HTTP Serverを入れ直してから、AN HTTP Serverのレジストリを削除して、AN HTTP Server
を再起動及び再設定をしてみましたが、やはり上手く行かない様です。^^;
([HKEY_LOCAL_MACHINE\Software\AnHttpd] 以下のレジストリを一度削除)


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

ぴゅあさん、
PerlMsg.dll は ActivePerlの方ですよね?

Status: にも対応しているはず("Status: 403 Forbidden\n")ですが、PerlIS なら NPH に近いので "HTTP/1.0 403 Forbidden\n" を出した方がいいかもしれません。
PerlIS では Location: も、まず "HTTP/1.0 302 Moved Temporarily\n" を出さないといけなかったと思います。


ぴゅあ pure@GalaxyCorp.com 1999/11/07 10:32

 ごめんなさい。
 不確実な情報でした。
 PHPに関しては一部しかIEでの確認はしていないと思います。

 さてベランダの掃除っと


ぴゅあ pure@GalaxyCorp.com 1999/11/07 09:43

>ふぁいんさん
 書くつもりで忘れていました。(照)

 中田さん
 1つサービスとして登録されるものがあります。PerlMsg.dll
 これがアンインストーラで消されないような気がして(アンインストーラを見てみただけで未
確認/Win98/WinNT4.0S共に同様)。
 ただ起動されていることが確認できませんでしたしデバッガで呼び出されるものなのかもしれ
ないので影響しないのかもしれませんが。
 一応別のフォルダにインストールした(またちゃんと削除できている)ということですので先
のPOSTに関することなのだろうと思いますが。

 PHPに関してヘルパープロセスに問題がありそうなのであればAN HTTP Serverを一度消して
(レジストリはそのままでいいと思う)入れなおしてみればどうでしょうか。
 もしかして壊れているとか?


ぴゅあ pure@GalaxyCorp.com 1999/11/07 09:29

★ふぁいんさんに関連して

☆まずPHPについてはヘルパープロセスに関係ないようです。
 ちゃんと動いていますね?
 テストスクリプト:簡単なサンプル(電子掲示板で紹介),ふぁいんさんのサンプル(phpinfo())

・テスト環境1
 WinNT4.0S
 AN HTTP Server v1.21
 PHP v3.0.11
・テスト環境2
 Win98
 AN HTTP Server v1.21
 PHP v3.0.11
・確認ブラウザ
 1.WinNT4.0S:IE4.01SP2,ネスケv4.7/en(テスト環境1のみ/local)
 2.Win98:IE4.01SP2,ネスケv4.7/en(テスト環境1のみ)
 3.Win98:IE5.0,ネスケv4.7/ja(テスト環境2のみ/local)
 ※3.はWin98での挙動,ヘルパープロセス有無の確認のために追加

☆ActivePerlに付いて
 ISAPIによるPOSTがおかしいことを確認。
 テストによると(hidden属性で?)渡したデータが正しく渡されていないらしい。

・テスト環境1
 Win98
 AN HTTP Server v1.21
 ActivePerl build 522
・テスト環境2
 WinNT4.0S
 AN HTTP Server v1.21
 Perl for Win32 build 316 with ISAPI
・確認ブラウザ
 1.WinNT4.0S:IE4.01SP2,ネスケv4.7/ja
 2.Win98:IE4.01SP2,ネスケv4.7/en(テスト環境2のみ)
 3.Win98:IE5.0,ネスケv4.7/ja
 ※2.はWin98 2'nd Ed.に移行中なのでテスト環境1での確認はなし


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

ふぁいんさん、
とりあえずよかったです。

.../php.exe/testphp.php3 は、こちらの方が確実だと思ったのですが再確認してみます。
PHPもPerlISもヘルパーがあやしいということになるようですので、調べてみます。
一応私もヘルパーオンで確認済みなのですが。

IIS(Internet Information Server) は WindowsNT Server 付属の Web サーバ(HTTPサーバ、httpd)です。
ISAPI(Internet Server Application Programming Interface) も Microsoft製 の API です。
そして ISAPIを使った Perl が PerlIS.dll です。

念のため、
ActivePerlが設定するレジストリ HKEY_LOCAL_MACHINE\SOFTWARE\ActiveState 以下 と HKEY_LOCAL_MACHINE\SOFTWARE\Perl は掃除されていませんよね。
一応両方PerlIS.dllの動作に影響します。


ふぁいん peaceful@mx2.tiki.ne.jp 1999/11/07 00:30

中田さんへ

php3.ini の 「doc_root = z:\ 」から 「doc_root = 」に変更したのち、
ヘルパープロセスのチェックをはずした状態で http://127.0.0.1/testphp.php3
にアクセスしたら、ちゃんと動く様になりました。^^ありがとうございました。
メモリの方は監視しながら、PHPを使用してみます。

http://127.0.0.1/php3/php.exe/testphp.php3の方は試してみましたが、PHPは正
しく処理されませんでした。ヘルパープロセスのチェックした状態ではエラー500、
チェックを外した状態では以下のエラーになります。
>Fatal error: Unable to open z:\/testphp.php3 in - on line 0
>No input file specified.

それから、DOSプロンプトを開いた時にエラーは出ません^^;

set.txt の内容は以下の様になりました。
PROMPT=$p$g
winbootdir=C:\WINDOWS
COMSPEC=C:\WINDOWS\COMMAND.COM
PATH=C:\WWW\PERL522\BIN;C:\WINDOWS;C:\WINDOWS\COMMAND
windir=C:\WINDOWS
TEMP=Z:\
TMP=Z:\
BLASTER=A220 I5 D1 H5 P330 T6
CMDLINE=ADDDRV DOSIME.SYS

*Perlの位置は変更したので、「C:\WWW\PERL522\BIN」です。^^;
ですので、perl.exeの位置は C:\WWW\PERL522\BIN\perl.exeになります。


ぴゅあさんへ
Perl for Winは...ファイルを削除しただけなのでアンインストーラは
使わなかったです^^; レジストリの掃除は こまめにするので大丈夫では
ないかと思っていたのですが。。問題あるのかな。。
Perl for WinをインストールしたいたフォルダはActivePerlをインストール
したフォルダと違うので、レジストリの掃除でPerl for Winのレジストリは
削除したと思うのですが・・・
autoexec.batにあった、Perl for WinのPATHも削除しましたし。
IISとは・・・なんでしょうか^^;すいません。。 PerlISの事なのかな。
PerlISについても、Perl for Winと同じ様にレジストリは掃除しました。


今日も、いろいろと試していたのですが、ヘルパープロセスのチェックし
た状態で「.pl,.cgiをPerlISで実行」チェックを外すとSSIとCGIが処理さ
れなくなってしまいます。今まで「.pl,.cgiをPerlISで実行」チェックし
た状態で使用していたので気づかなかったのですが^^;。
Perl for Winを ちゃんとアンインストールしなかったのが原因なのかな^^l
この現象もPHPが正しく処理できなかった原因に関係があるのかも・・・
と思っています。思うだけで、何も出来ないのですが^^;;;

「.pl,.cgiをPerlISで実行」チェックした状態でヘルパープロセスの
チェックを外していれば全て問題なく処理できるので、この状態で使用してみ
ようと思います^^。


中田昭雄 nakata@st.rim.or.jp 1999/11/06 17:05

ふぁいんさん、
下の php3.ini の doc_root はセットしていない、と言われそうなので。

ちょっと方向を変えて、次のことを試みてください。
オプションの 実行パスのエイリアスに、
/php3 c:\php3
を追加し、
URLとして
http://127.0.0.1/php3/php.exe/testphp.php3
としてみてください。
これは直接 php.exe を起動し、エキストラパスに /testphp.php3 を指定することによって PATH_TRANSLATED に z:\testphp.php3 をセットする方法です。

これもだめなら不思議です。

Perlの方の話からすると、標準入出力や環境変数がおかしい、つまりDOSプロンプト(COMMAND.COM)があやしいような気もします。
DOSプロンプトを開いた時エラーは出ませんか?
また、DOSプロンプトで、
> SET > set.txt
とでもして set.txt の内容(環境変数一覧)を教えてもらえますか?


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

>ふぁいんさん
 インストールログ等確認はされていることと思いますがActivePerlに関してはPerl for Win
をアンインストールしたのでしょうか。
 アンインストーラはこれで良いのかな?という気もしましたが。
 もし1999年以外のファイルがあるなら取り敢えず何か判るのかも?
 PHPについてはエラー500が出せないので解らないです。。。。
 IISに関するインストールをされていたのですね。でも影響しないような?


中田昭雄 nakata@st.rim.or.jp 1999/11/06 09:29

ふぁいんさん、
ちょっと混迷を深めていますが、PHPについて、
ヘルパープロセスのチェックをはずした時のエラーは納得できます。
この時は php3.ini の doc_root = z:\ になっていたと思います。その状態で doc_root = にしてみてください。


ふぁいん peaceful@mx2.tiki.ne.jp 1999/11/06 00:49

>DOSプロンプトで、
>set SCRIPT_FILENAME=z:\test.php3
>set PATH_TRANSLATED=z:\test.php3
>c:\php3\php
>で、test.php3 が実行されるでしょうか?

はい、DOSプロンプトで c:\php3\php.exe testphp.php3 と入力した時の
様に「c:\php3\php 」と入力した時点でtestphp.php3が実行されました。

(いろいろと^^;。。)
AN HTTPDのオプション/一般の「CGIの実行可能な拡張子」のチェックを外したら、
testphp.php3の内容が そのまま表示されました。(PHPは処理されない)

「ヘルパープロセス」のチェックを外して「http://127.0.0.1/testphp.php3」に
アクセスしたら以下の様な表示が^^;(Win98だからなのかな。)
>Fatal error: Unable to open z:\/testphp.php3 in - on line 0
>No input file specified.

PHPの件とは別に、Perl for Win32 から ActivePerl 522に変更した所、
POSTの処理が上手く行かなくなってしまいました。GETの方では問題なく
処理されるのですが、、、
POSTで処理を試みると、エラー500ではなくCGIそのものが処理できなか
ったりします。CGIが処理されても正しく処理されません。
また、AN HTTPDのオプション/一般の「POSTメソッドを除く」のチェック
を入れても上手く行きませんし、AN HTTPDが「プロセス終了待ち」状態
で止まったままになる事があります。
GETでも特に問題はないのですが、、PHPの件もありますし・・

ご迷惑を おかけしています。m(__)mすみません


中田昭雄 nakata@st.rim.or.jp 1999/11/05 21:11

ふぁいんさん宛てので、
test.php3 は testphp.php3 でしたね。読み替えて下さい。


中田昭雄 nakata@st.rim.or.jp 1999/11/05 21:05

ふぁいんさん、
それでは DOSプロンプトで、
> set SCRIPT_FILENAME=z:\test.php3
> set PATH_TRANSLATED=z:\test.php3
> c:\php3\php
で、test.php3 が実行されるでしょうか?

それがOKだとすると、AN HTTPD でうまくいかないのは環境変数がセットされずに c:\php3\php.exe が実行されているためかもしれません。
環境変数なしで
>c:\php3\php
だけだと、標準入力待ちになるはずで、AN HTTPD では GETメソッドの場合、空の標準入力になるはずだからです。
ただ、その場合、Content-type: text/html とそれに続く空行は出力されるはずです。
原因は別なのかもしれません。


ふぁいん peaceful@mx2.tiki.ne.jp 1999/11/04 23:44

doc_root の z:\ を消してみましたが、何も変わりませんでした。(何も出力されない)
PHP3のバージョンは php-3.0.11-win32.zipをDLしたので 3.0.11だと思います。

aaa.php3とtestphp.php3の内容は全く同じものです。

httpバージョンは1.0でも1.1でもPHPは処理(何も表示)されません。
以下のログはHTTP1.0で出力したものです。

process.log:
Thu Nov 04 23:25:36 1999 c:\php3\php.exe Z:\testphp.php3

errors.log:
Thu Nov 04 23:25:37 1999 Error Response 500 Thread 0(ID= -1672921) for "/testphp.php3"

trace.log:
<<< s=88: Thu Nov 04 23:25:36 1999 <<<
GET /testphp.php3 HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
Accept-Language: ja
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows98; DigExt)
Host: 127.0.0.1
Connection: Keep-Alive
Authorization: Basic cGVhY2VmdWw6aGlyb3NoaQ==

>>> s=88: Thu Nov 04 23:25:37 1999 >>>
HTTP/1.0 200 Server Error
MIME-Version: 1.0
Server: AnWeb/1.21
Date: Thu, 04 Nov 1999 14:25:36 GMT
Pragma: no-cache
Content-Type: text/html
Content-Length: 255
(HTML部分は省略)

trace.logの中に「HTTP/1.0 」と「HTTP/1.1」があるのは。。なんだろう。。

宜しく お願いします。m(__)m


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

ふぁいんさん、
doc_root の z:\ を消す(つまり doc_root を使わない)とどうでしょうか?
それでだめなら、そのときプロセスのログがどうなっているかお知らせ下さい。また、PHP3のバージョン も念のため。


ふぁいん peaceful@mx2.tiki.ne.jp 1999/11/04 00:19

中田さんへ、

>DOSプロンプトで、aaa.php3 のあるディレクトリに移り、
> C:\php3\php aaa.php3
>と実行した場合、
>aaa.php3 の実行内容が表示されてプロンプトに戻りますか?

はい、ずらずらと表示された後にプロンプトに戻ります。

>また、C:\Windows\php3.ini を編集しているとするとその内容は何でしょうか?
>php3.ini-dist と違うところは何でしょうか?)

私も ここの所が良く分かっていないのですが^^;、
http://www.ms.ie.u-ryukyu.ac.jp/~nakataku/doc/install-windows95-nt.html
ここの通常のインストール手順を見て、
'php3-dist.ini'が「php3.ini-dist」の事だと解釈して^^;。。'php3.ini'と
リネームしたのち、以下の部分だけ編集しました。

doc_root = z:\ ; the root of the php pages, used only if nonempty
(doc_root = c:\Server (httpd.exeのある場所)でも試しましたがダメでした^^;)
extension_dir = c:\php3 ; directory in which the loadable extensions (modules) reside

;Windows Extensions
extension=php3_mysql.dll
(中略)
extension=php3_odbc.dll
この部分も どれがどれだか分からなかったので全て「#」を外してみました

Z:\に HTML、CGI、PLなどが置いてあります。
同一、フォルダ(ディレクトリ)にPHPとCGIを処理した場合、CGIはちゃんと
処理されますが、PHPはエラー500で何も出力されない現状です。


中田昭雄 nakata@st.rim.or.jp 1999/11/03 09:27

ふぁいんさん、
ちょっとわかりませんが、

DOSプロンプトで、aaa.php3 のあるディレクトリに移り、
> C:\php3\php aaa.php3
と実行した場合、
aaa.php3 の実行内容が表示されてプロンプトに戻りますか?

また、C:\Windows\php3.ini を編集しているとするとその内容は何でしょうか?
(php3.ini-dist と違うところは何でしょうか?)


ふぁいん peaceful@mx2.tiki.ne.jp 1999/11/03 04:27

PHPの部分が表示されなかったので、、
すいません。。

#テスト用のPHPの内容は以下の通りです。
<html>
<body>
77777777
<? php phpinfo(); ?>  //「<」「>」「?」<2バイト文字にしています^^;
777777777
</body>
</html


ふぁいん peaceful@mx2.tiki.ne.jp 1999/11/03 04:21

中田さんへ、

php_iis_reg.inf のインストールによる レジストリへの書きこみと
PHPに関するレジストリを 私の分かる範囲で削除しました。

#「CGI出力を検査」にチェックを入れてからPHPを処理してみた所、以下の様に
#表示されました。
Error 500
CGI エラー - 標準出力に何も出力されていません。
標準エラー出力の内容:
(none)

#テスト用のPHPの内容は以下の通りです。
<html>
<body>
77777777
<?php phpinfo(); ?>
777777777
</body>
</html>


中田昭雄 nakata@st.rim.or.jp 1999/11/02 21:34

ふぁいんさん、
.php3 c:\php3\php.exe の指定だけで大丈夫のはずです。
php_iis_reg.inf の中身は知りませんが、AN HTTPD は IIS ではないので、そのインストールが余計なことをしているのかもしれませんね。
AN HTTPDのオプション/一般の「CGI出力を検査」のチェックを入れてやってみるとエラーの内容が表示されると思いますので、その内容をお知らせ下さい。

なお、php.exe は perl(.exe)と同様にコマンドライン(DOSプロンプト)で動作確認ができます。 Perl同様 引数に .php3 ファイルを指定すれば動くはずです。
HTTPサーバがセットする環境変数があると PATH_INFO を .php3 ファイルとして読み込むようになっています。


ふぁいん peaceful@mx2.tiki.ne.jp 1999/11/02 07:27

ふぁいんと申します。
Win98+Httpd1.21で使用させて頂いています。
下記の記述にも ありましたが、私もPHPが上手く動作しないのです。
.php3 c:\php3\php.exeで追加もしています。
ファイルタイプも .php3 application/x-httpd-php3の様に追加しています。
php3.iniを書きなおしてwindowsフォルダの中に、php_iis_reg.infもインストール
しています。
Httpdを使用せずに、拡張子「*.PHP3」を実行(開く)するとPHP.EXEで処理されている様ですが、Httpdを使用してHTTP://127.0.0.1/aaa.php3で実行すると「サーバが見つからないか、または DNS エラーです。」となってしまいます。

どうしたら、PHPが処理される様になるのか 教えて頂けないでしょうか?