[PHP-users 3026] Re: CGIError

php-users@php.gr.jp php-users@php.gr.jp
Mon, 22 Oct 2001 15:46:17 +0900


SUMiです。

>  早速質問なんですが、Windows2000ProfessionalでPHPを動かそうとしていま
> す。
> 
>  PHPスクリプトを書いて http://127.0.0.1/*** で読み込ませているのです
> が、ページを表示し、リロードを数回かけると以下のようなメッセージが出てう
> まくいきません。
> 
> CGI Error
> The specified CGI application misbehaved by not returning a complete set
> of HTTP headers. The headers it did return are:
> 
> 
>  また、フレームで複数ページに分けたページでは大本のフレームページは読み
> 込んでいるようですが(メニューの「表示」「ソース」から)フレームの各ペー
> ジが同じエラーとなって見ることができません。
> 

手元のマシンにIISをインストールし、テストしてみたのですが
再現しません。

環境:
Win2k Pro SP2
PHP 4.0.5 (FoxServのWin版)

設定手順:
1.「コンポーネントの追加と削除」でIISをインストール
2.既定のWebサイト→プロパティ→ホームディレクトリ→構成
   →追加
          実行ファイル: C:\FoxServ\php\php.exe %s %s
          拡張子: php
3.C:\Inetpub\wwwroot のファイルを全て削除
4.「既定のWebサイト」内の仮想ディレクトリ等を全て削除
5.C:\Inetpub\wwwroot に Default.htm を作成
<html>
<frameset cols="*,*,*,*,*,*,*,*,*,*">
	<frame src="/index.php">
	<frame src="/index.php">
	<frame src="/index.php">
	<frame src="/index.php">
	<frame src="/index.php">
	<frame src="/index.php">
	<frame src="/index.php">
	<frame src="/index.php">
	<frame src="/index.php">
	<frame src="/index.php">
</frameset>
</html>
6.C:\Inetpub\wwwroot に Default.htm を作成
<?
phpinfo();
sleep(10);      // チェックしやすいようにあえてディレイする
?>
7.http://127.0.0.1/Default.htm を開く

すると、とうぜんsleepが入っているので、時間はかかりますが、
2枚ずつページが開いて行くのが分かります。
そして、最後のページまで全て正常に表示されますが、いかがでしょうか?

>  いろいろ実験した結果、2つ以上のPHPスクリプトを同時に読み込むとこのよ
> うなことが起こるようです。

確実に2つ以上のPHPが起動していますが、大丈夫ですね。
というか、IEがHTTP1.1での接続は標準では2本以内に制限しているので、
2枚ずつしか開いてくれないですねぇ…ちなみに、タスクマネージャから
プロセスの一覧を監視していましたが、php.exeが2本走っており、ロードが
終わると消えてなくなっていますので、特に問題もなさそうです。

>  IISの設定は本3冊と同じなので合っていると思います。

とのことですが、どのような設定をされたのでしょうか?