2011-08-19 125 views
4

我在本地主机上使用3个月的Apache休息室。 今天,我发现我的Apache/PHP安装不是通过运行使用睡眠(10)&同时打开2个浏览器选项卡的脚本来实现的。 (第二个标签在第一个标签完成10秒后加载)。Apache不是多线程的?

我已经安装了Apache(apache.org版本),没有任何改变。 我使用PHP 5.3.6 VC9线程安全。

什么问题?

+1

这是一个很有缺陷的测试。在典型的基于PHP会话的站点中,您只需等待会话文件被前面的脚本发布即可。这对Apache内部没有提及。 –

回答

0

您必须确保您使用的是Apache的worker MPM,而不是prefork。根据您的安装,您可以简单地将/ usr/sbin/httpd2符号链接到/ usr/sbin/httpd2-worker(或安装在任何地方)。

当然,就你而言,你也可以增加配置中最大进程的数量,这应该使你能够打开多个选项卡并让它们同时运行。

事情是这样的:

StartServers  2 
MinSpareServers 2 
MaxSpareServers 8 
ServerLimit  8 
MaxClients   8 
KeepAlive off 
+0

谢谢加布里埃尔,在提问之前我已经改变了这个设置,但没有任何改变。 如何切换到MPM? – Ahmad

+0

有帮助吗?帮帮我?帮帮我? – Ahmad

+0

如果您成功增加了apache进程的最大数量,那应该可以解决您的问题,但更改为多线程MPM应该甚至没有什么区别。你能发布相关的Apache配置吗? –

0

我有同样的问题。我将来自Chrome的3个浏览器标签的请求发送到一个本地脚本sleep(4),并且响应正在等待对方。但我检查了如果我从Chrome发送一个,然后从Firefox第二个这种情况不能复制

0

看起来你偶然发现浏览器功能: 只有当你切换到该选项卡时才加载背景选项卡;它是目前许多浏览器的默认设置(检查您的设置或使用两个不同的浏览器来检查)。 问候:-)

+0

他说第二个标签加载10秒第一个之后的ds,所以可能不是。 –