0

Windows 7を実行している開発用PCで、このような単純なサーバー間の配置をシミュレートしようとしています。

脚本/test/index.php

<?php
echo "<div>hello</div>";
echo file_get_contents("http://localhost/test/server.php");
?>

脚本/test/server.php

<?php
echo "<div>world</div>";
?>

しかし、ブラウザをポイントしてhttp://localhost/test/も応答がありません。ブラウザがハングするだけです。ただし、これだけを含むserver.phpというファイルに置き換えると、server.html

<div>world</div>

それから私はの望みの応答を得る;

hello
world

最初の方法が機能しないのはなぜですか?それは機能するはずですか?

情報

コマンドラインでこのコマンドを実行してPHPを実行しています。

php-cgi -b 127.0.0.1:9000

Webサーバーとしてnginxを使用しています。私のnginx.confファイルには行があります。

worker_processes        1;

nginxのドキュメントのどこかで、上記を常に1Windowsマシンの値に設定する必要があると書かれていましたが、その設定がどのような影響を与えるのか、またはそれが私の問題と関係があるのか​​どうかはわかりません。

4

1 に答える 1

0

PHPでは、サーバーであるPHPページごとにプロセスが必要です。シナリオでは、一度に1つのリクエストのみを処理することを許可しています。最初のリクエストによって2番目のPHPリクエストが処理されると、最初のスクリプトが2番目のスクリプトの実行を待機している間、システムは事実上デッドロックします。一度に実行できるスクリプトは1つだけなので、デッドロックは発生しません。

ワーカープロセスを増やすと、複数の同時スクリプトを実行できるようになります。

于 2012-12-12T18:17:09.227 に答える