AN HTTPD ゲストブック/コメント集(2004年4月30日22:45)


miz mm_hiz@yahoo.co.jp 2004/05/02 22:38

いとさん、素早いコメント有り難うございます。
なんだか、早合点、早とちり満載の報告で済みませんでしたm(_ _)m。

>・pws-php4cgi.reg, pws-php4isapi.reg は IIS/PWS 用なので
> AN HTTPDで設定しないとそれが原因で異常終了するのかどうかは?です。
> 見直したマニュアルというのは install.txt のことでしょうか?

phpの配布サイトにあった日本語マニュアルのinstall.iis.htmlです。本体附属のinstall.txtの日本語訳のようです。
php4isapi.dllの異常終了の原因がわからなくて、同じphp4isapi.dllを使うならと試してみて「動いた!」と思ったので、うれしくなって早々に書き込みしてしまいました。
もっといろいろ条件を試してから書き込みに来れば良かったかなと思いつつ、レジストリを削除して、OSも起動し直して、さらにphp.iniのdoc_rootのところとuser_dirのところとをコメントアウトしたり、有効にしたりして、.phpファイルの実行をしてみました。
どうやら、AnHTTPDを起動して一番最初に実行するphpファイルの実行時間が短いとAnHTTPDが異常終了するようです。でもerrors.logをみても何も出力がないから原因はさっぱりです。
再起動して一番最初のphpプログラムで落ちなければ、以後AnHTTPDは落ちないことが解りました。
と言うことは、サーバを再起動したらまず設定チェックもかねてphpinfo();を実行しておけば、それなりに実行時間が掛かるので大丈夫そうです。
おっしゃるとおりレジストリは関係ないようです。isapiにおいてはdoc_rootやuser_dirの設定も関係ないようでした。
とはいえ、まだ、簡単なプログラムでしか試していないので、高度なことをするとどうなるのかわかりませんが。

>・php.exe でエラー「No input file specified.」が出るのは
> doc_root を設定しているからですね。以下のページを参考に。

どうも有り難うございます。php.exeも動きました。過去ログのページをいくつか当たってはいたのですが、このページに行き着いておりませんでした。
php日本語マニュアルで最初にここを変更する記述が出てくるものだから、変更した後そのままでした。
確かに、いとさんのページでは、変更するとは書いてなかったけど、「設定を入れたら動かなくなる」と言うところまでは思い至りませんでした。

>・PHP_SELF が取得できないのは php.exe の場合だけで、
> php4isapi.dllならバージョンに関わらず取得できると思います。
> php.exe では 4.3.6 でも相変わらず取得できません。

そうですね、私の早合点だったようです。失礼しました。
前回の報告は、初心者が陥る罠にどっぷり浸かったままの報告を大仰に書き込みしまして、なんだか恥ずかしいです。
いろいろ、お教え頂き有り難うございました。
                     (miz)


いと gfh05223@nifty.com 2004/05/01 12:06

miz さん

いくつか気がついた点をコメントします。

・pws-php4cgi.reg, pws-php4isapi.reg は IIS/PWS 用なので
 AN HTTPDで設定しないとそれが原因で異常終了するのかどうかは?です。
 見直したマニュアルというのは install.txt のことでしょうか?

・php.exe でエラー「No input file specified.」が出るのは
 doc_root を設定しているからですね。以下のページを参考に。
  http://homepage1.nifty.com/yito/namazu/gbook/20040131.17051.html
 エラーになるのは AN HTTPDのバグのようですが、doc_rootの設定自体が
 不要ではないかと思われます。

・PHP_SELF が取得できないのは php.exe の場合だけで、
 php4isapi.dllならバージョンに関わらず取得できると思います。
 php.exe では 4.3.6 でも相変わらず取得できません。
 以下を参考に設定してもらうよりないかもしれません。
  http://homepage1.nifty.com/yito/anhttpd/faq/prepend.html
 PHP5 RC1 では取得できるので AN HTTPDではなく PHPの問題と思います。


miz mm_hiz@yahoo.co.jp 2004/04/30 22:45

winXP(home)-AnHTTPD(1.42k)-PHP(4.3.6)動作報告

こんにちは、初めまして。mizと申します。
数年前からAnHTTPDをlocalでのperl cgiデバッグ用に使わせて頂いていました。とても使いやすく重宝しています。大変有り難うございます。
このたび、思い立ってphpをインストールしてみましたが、なぜかAnHTTPDが異常終了してしまいます。
そこで、こちらのサイトでいろいろ情報を探りまして、動作させられるようになったので、
中田さんやいとさんのホームページ情報へのお礼としてご報告します。
phpはつい2週間前リリースされた最新versionです。

動作前必要事項を一覧しますと
1.php-4.3.6-Win32.zip をダウンロードして、解凍
2.解凍フォルダ名を付け替え「\php4」として以後記述します(そのままでも問題ないが、長い名前は入力が面倒(^^))
3.\php4内の「php4ts.dll」を c:\windows かまたは \php4\sapi へコピー
4.\php4内の「php.ini-recommended」を c:\windows へコピーし、「php.ini」にrenameして編集
 430行目 include_path = ".;D:\php4\pear"  \php4\pear への絶対パスも記述
 437行目 doc_root = "D:\home\z"      AnHTTPD 設定の仮想パスへのエイリアスを入れる
 441行目 user_dir = "/~z"         AnHTTPD 設定の仮想パスを入れる
 444行目 extension_dir = "D:\php4\extensions\" \php4\extensions\ への絶対パスのみ記述
  その他必要項目変更 log_errors など(全くlocalでの利用のみなのでエラーをブラウザ出力するように設定しました)

5.\php4\sapi\pws-php4isapi.reg をダブルクリックしてレジストリに登録
  これをしないと、ISAPIエラーでAnHTTPD がすぐ異常終了してしまいます。
  このことが解るまでに4日毎晩設定をいじりまわしてました(^^;)マニュアルをもう一度見直したらIISサーバでの設定のところに書いてあった(^^ゞ。
  winXPは落ちなかったですね、さすが。win95/98の時は、OSごと落ちることが多かったのに。

6.AnHTTPDの設定 オプション一般[一般タブ]CGIの拡張子:実行プログラムの追加
    拡張子 .php,.php4,.phtml
実行プログラム D:\php4\sapi\php4isapi.dll
       PATH_TRANSLATED を使うにチェック
7.ブラウザから、phpファイルをhttp://127.0.0.1/~z/ で呼び出す
これで実行出来ました。AnHTTPD も落ちていません\(^o^)/

また、echo $_SERVER["PHP_SELF"]; も、echo $_SERVER["SCRIPT_NAME"]; と同じデータが取得出来ています。
いとさんの 「AN HTTPDでPHPを動かす」のページに「4.3.2 以降では PHP_SELF が取得できません」
とありましたが、php4.3.6 では解決出来ているようです。
gdモジュールもbundled (2.0.22 compatible)なので、extensionで設定する必要は無くなったようです。

さて、\php4\php.exe での実行ですが、php.iniの以下の設定を
 455行目  cgi.force_redirect = 0    コメントアウトの;を消して1を0にする
このように変更しても以下のエラーが出て動作しません
「No input file specified.」
それで、実行プログラム名の設定で「\php4\php.exe %s %s」や、「\php4\php.exe %1 %*」などとしても%s や%1でエラーがでます。
cgi用のレジストリファイル \php4\pws-php4cgi.reg を登録して値に「D:\php4\php.exe %s %s」を入れてみたのですが、やはり同じエラーがでます。?(^_^;)?

当該レジストリキーの値に何を登録していても、\php4\sapi\php4isapi.dll は AnHTTPD を落とすことなく実行出来ましたが、\php4\php.exeの方がうまくいかないのは原因不明です。

いろいろ試す途中で、コマンドライン用の \php4\cli\php.exe も試したのですが、
コマンドライン用なので、header出力がない(これは、auto_prepend_fileで設定出来る)、
cookie登録出来ない(これはcgiには致命的(x_x))なのでした。

長々と書きましたが、皆様のご参考になれば幸いです。
handle name:miz
自作プログラム紹介:http://my-tools.hp.infoseek.co.jp/
@nifty@homepageCGI実験室 : http://homepage2.nifty.com/miz-tools/