解决 Apache Encountered too many errors accepting client connections. Possible causes: dynamic address renewal, or incompatible VPN or firewall software. Try using the Win32DisableAcceptEx directive.

我平时使用的电脑时使用的 Linux 系统,还有一台使用windows的笔记本,昨天帮朋友测试一个php程序,启动apache,发现CPU到使用率达到了50%,访问网页也一直处于加载状态,没有反应。查看apache到日志记录发现:
[Fri Nov 02 00:41:30 2012] [error] (OS 10038)在一个非套接字上尝试了一个操作。 : Child 1512: Encountered too many errors accepting client connections. Possible causes: dynamic address renewal, or incompatible VPN or firewall software. Try using the Win32DisableAcceptEx directive.
是套接字到问题,这个可能和我网卡有关,前几天因为网线不够,就换成到无线上网,具体原因为:
Apache2.0.49以上版本会使用了 WinSocket2 API中通过使用BSD风格的 accept() API提供了性能改善 AcceptEx 函数,但是由于安装杀毒软件、防火墙,或者更换了网卡设备导致 Microsoft WinSock v2 API 不能正常使用。因此调用了 AcceptEx 的函数的程序将不能正常工作。
解决方法可能有三个:
1、运行 netsh winsock RESET 然后重启系统
2、网上邻居->本地连接->属性->internet协议(TCP/IP)->属性->高级->wins标签->去掉启用LMhosts查询前的勾
控制面版->windows防火墙->高级标签->本地连接设置->服务的标签里勾选安全Web服务器(HTTPS)
重启 Apache
3、修改 Apache 的配置文件 http.conf 禁用AcceptEx,然后哦重启 Apache

<IfModule mpm_winnt.c>
	Win32DisableAcceptEx
</IfModule>

Post a Comment

Your email is never shared. Required fields are marked *

*
*