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

我使用 nginx 作为我的网络服务器。在我nginx.conf的文件中有一行;

worker_processes        1;

在 nginx 文档的某处,它说您应该始终1在 Windows 机器上将上述设置为值,但我不知道该设置有什么影响,或者它是否与我的问题有关。

4

1 回答 1

0

PHP 要求每个作为服务器的 PHP 页面都有一个进程。在您的场景中,您一次只允许处理一个请求。当您的第一个请求导致第二个 PHP 请求得到服务时,系统有效地死锁,而第一个脚本等待第二个脚本运行,因为一次只能运行一个脚本,它永远不会运行。

增加工作进程将允许运行多个并发脚本。

于 2012-12-12T18:17:09.227 回答