前端之家收集整理的这篇文章主要介绍了
php – 为什么Apache不能同时处理多个请求?,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_
404_0@
我安装了AMPPS.
我的Apache服务器不能同时处理多个PHP请求(例如,如果我多次调用localhost / script.PHP,它们将按连续顺序处理). script.PHP只包含<?PHP sleep(10); ?取代. 我读到MaxClients指令负责并发访问配置,但我的httpd.conf中根本没有.
禁用Xdebug并编写session_write_close();到脚本的开头没有用.
当我添加session_start();到文件的开头,我的代码看起来像:
<?PHP
session_start();
session_write_close();
sleep(10);
PHPinfo();
echo "Done";
当向localhost / script.PHP发出5个请求时,最后4个等待第一个请求结束然后同时结束.
请帮我解决这个问题.如果缺少帮助我解决此问题所需的任何信息,请通知我,我将添加它.
apcahe肯定可以同时处理多个请求,在你的apache配置中肯定会出现问题.
这取决于您使用的Apache版本及其配置方式,但常见的默认配置使用多个具有多个线程的工作程序来处理同时发出的请求.有关其工作原理的说明,请参见http://httpd.apache.org/docs/2.2/mod/worker.html.
你面对它的原因是:
某处存在某种锁定 – 例如,如果两个请求来自同一客户端,并且您在PHP中使用基于文件的会话,则会发生这种情况:在执行脚本时,会话被“锁定”,这意味着服务器/客户端必须等到第一个请求完成(并且文件解锁)才能够使用该文件为第二个用户打开会话.
请求来自同一客户端和相同的浏览器;在这种情况下,大多数浏览器都会对请求进行排队,即使没有任何服务器端产生此行为.