AN HTTPD ゲストブック/コメント集(2000年3月28日22:55)


中田昭雄 nakata@st.rim.or.jp 2000/03/29 21:10

佐川さん
どうも情報ありがとうございます。
PHP4isapi.dll に対応するように考えます。
実行プログラムとして dll が可能なようにして、ServerSupportFunction の 1016 に対応させようと思います。
もっとも HTTP Server Extension の 2.0 だと 1016 がなさそうなのでちょっと調べてみないといけませんが。


佐川 昭宏 sagawa@kamakuranet.ne.jp 2000/03/28 22:55

こんにちは。お久しぶりです。
# 何ヶ月ぶりだろう...

とうとう、PHP3の後継である PHP4のRC1が
今朝公開されました。(^-^)
アーカイブにISAPIが含まれているので、
AnHTTPDでのテスト結果を報告します。

■ 手順
1. www.php.net などから ファイルを入手。

2. 解凍後、php4ts.dllをc:\windows\systemにコピー。
# LoadLibrary("D:\HOME\BIN\SERVER\PHP4\PHP4IS~1.DLL") failed with errorcode = 0
# というエラーが、これを忘れると発生。

3. 同じく、php.ini-dist を php.iniにして c:\windowsにコピー。
4. test.cgi という 中身がHTMLのファイルを用意。
5. [.pl .cgiの実行ISAPI] に php4isapi.dll をパス付きで指定。
6. Internet Explorer 5.01で、GET。(GETするだけだから、関係ないけれど)

■ 結果
実行したところ、サーバからの内容がなかったので、ログを調べたところ

☆ isapi.log
Loading Library D:\HOME\BIN\SERVER\PHP4\PHP4.DLL
GetServerVariable(HTTP_COOKIE) called, returns (false)
GetServerVariable(ALL_HTTP) called, returns (false)
: : : (中略)
GetServerVariable(SERVER_PROTOCOL) called, returns HTTP/1.1
GetServerVariable(SERVER_SOFTWARE) called, returns AnWeb/1.27c
GetServerVariable(URL) called, returns (false)
GetServerVariable(ALL_HTTP) called, returns (false)
* ServerSupportFunction(1016) called
WriteNPClient called
ISAPI Library unloaded

☆ errors.log
* ISAPI: ServerSupportFunction(HSE_*, 1016) not supported.

と、なっており 未サポートの APIがコールされているようです。

■ 結論
未サポートのAPI が使われていて、現在のAnHTTPD 1.27cでは無理です。(TT;
PerlIS.dllのようにPHP4isapi.dllが使えると 嬉しいです。
# そうすると PHP用のISAPIの欄も必要ですね。(^^;

一方、php.exe は動作を確認しました。(^^)v
# うまくいかない場合は、ODBCが、インストールされているか確認してください。

ISAPIの拡張子もレジストリなどで変更可能だと 拡張子で
PHP3と使い分けができるので、ご検討ください。

それでは、また。