AN HTTPD ゲストブック/コメント集(2000年4月29日16:44)


佐川 昭宏 sagawa@kamakuranet.ne.jp 2000/04/30 21:09

中田さん、
ありがとうございました。
実行プログラムにphp4isapi.dllを指定したところ無事動作するようになりました。

では。


中田昭雄 nakata@st.rim.or.jp 2000/04/29 17:39

佐川さん、
ユーザ会の発起人のお一人なのですね。

http://www.php.gr.jp/php/php4/ の 「PHP4の新機能」の "http://www.zend.com/new_features.php" が、Not Found のエラーになるようです。
www.zend.com には /zend/whats-new.php というのはあるようですが、和訳に対応するページはちょっとみあたりませんでした。


中田昭雄 nakata@st.rim.or.jp 2000/04/29 17:08

佐川さん、
前の手順の、

>4. test.cgi という 中身がHTMLのファイルを用意。
>5. [.pl .cgiの実行ISAPI] に php4isapi.dll をパス付きで指定。

のところを、かわりに、

4.test.php という 中身がHTMLのファイルを用意。
5.拡張子/実行プログラムを指定するところで、拡張子.php の実行プログラムとして php4isapi.dll をパス付きで指定。

としてみてください。

「拡張子/実行プログラム」のところでは PATH_TRANSLATED をセットします。
「.pl, .cgi の実行ISAPI」 のところでは ActivePerl 用に SCRIPT_FILENAME をセットしていて、Pw32i3xx.exe の場合は PATH_TRANSLATED を使うようになっていますが、いずれにしろ PerlIS.dll 専用になっています。ここはもう少し手をいれないといけませんが。


佐川 昭宏 sagawa@kamakuranet.ne.jp 2000/04/29 16:44

こんにちは。
およそ、1ヶ月ぶりの投稿ですが、
1.28dで、PHP4 RC1付属のISAPIモジュールで使われる
HSE_REQ_SEND_RESPONSE_HEADER_EX(10016)に対応したとのこと。
ありがとうございます。_o_
さっそく、テストしてみたのですが、残念ながら動作しません。(^^;
原因は恐らく、PATH_TRANSLATEDがセットされていないことだと思います。
参考までに、ログ等を示しておきます。

■手順
前回 (00/03/28)と同じ。

■結果
ISAPIとしては、問題なく動作するが、
PHP4が、以下のようなメッセージを出し、それ以上動作しない。

Warning: Failed opening '' for inclusion (include_path='') in Unknown on line 0
■ISAPIのログ
(前略、日時は省略。IPアドレスは隠蔽)
GetServerVariable(PATH_INFO) called, returns (false) 
GetServerVariable(PATH_TRANSLATED) called, returns (false)
GetServerVariable(QUERY_STRING) called, returns (false)
GetServerVariable(REMOTE_ADDR) called, returns 172.20.XX.XXX
GetServerVariable(REMOTE_HOST) called, returns 172.20.XX.***
GetServerVariable(REMOTE_USER) called, returns (false)
GetServerVariable(REQUEST_METHOD) called, returns GET
GetServerVariable(SCRIPT_NAME) called, returns /ename/newdomain.cgi
GetServerVariable(SERVER_NAME) called, returns 172.20.XX.XXX
GetServerVariable(SERVER_PORT) called, returns 80
GetServerVariable(SERVER_PORT_SECURE) called, returns (false)
GetServerVariable(SERVER_PROTOCOL) called, returns HTTP/1.1
GetServerVariable(SERVER_SOFTWARE) called, returns AnWeb/1.28d
GetServerVariable(URL) called, returns (false)
2000 GetServerVariable(ALL_HTTP) called, returns (false)
ServerSupportFunction(HSE_REQ_SEND_RESPONSE_HEADER_EX) called
WriteNPClient called
WriteNPClient called
WriteNPClient called
ISAPI Library unloaded
■結論と対策
ISAPIのAPIレベルでは、エラーがでなくなったもののPHP4付属のISAPIモジュールは
依然として使用できません。
# 外部プログラムとしてPHP.exeを使えば問題はありませんが…
ISAPI版のPHPも、PATH_TRANSLATEDのファイルを解釈するようなので、
PATH_TRANSLATEDとして、ファイルのローカルでの場所を返せば正常に動作すると思います。(以前、外部プログラムとして動作しなかったときと同じです。たぶん)

長くなりましたが、以上です。今後ともよろしくお願いします。

P.S.
日本PHPユーザ会が発足しました。