我在 localhost 上使用 Apache Lounge 已经超过 3 个月了。 今天,我通过运行使用 sleep(10) 并同时打开 2 个浏览器选项卡的脚本,发现我的 Apache/PHP 安装不是多线程的。 (第二个选项卡在第一个选项卡完成后 10 秒加载)。
我已经安装了 Apache(apache.org 版本),但没有任何改变。 我正在使用 PHP 5.3.6 VC9 线程安全。
有什么问题吗?
您必须确保您使用的是 Apache 的 Worker MPM,而不是 prefork。根据您的安装,您可能只需将 /usr/sbin/httpd2 符号链接到 /usr/sbin/httpd2-worker (或安装它的任何位置)。
当然,在您的情况下,您也可以增加配置中的最大进程数,这应该使您能够打开多个选项卡并让它们同时运行。
类似这样的:
StartServers 2
MinSpareServers 2
MaxSpareServers 8
ServerLimit 8
MaxClients 8
KeepAlive off
我也有同样的问题。我使用
sleep(4)
将请求从 Chrome 的 3 个浏览器选项卡发送到一个本地脚本,并且响应正在互相等待。但我检查了如果我从 Chrome 发送一个,然后从 Firefox 发送第二个,这种情况不会重现
您似乎偶然发现了一个浏览器功能: 仅当您切换到该选项卡时才会加载后台选项卡;它是许多浏览器当前的默认设置(检查您的设置或使用两个不同的浏览器进行检查)。 问候 :-)