原文地址:www.myexception.cn/apache/802653.html
apache服务正常启动,但打不开网页,提示Try using the Win32DisableAcceptEx directive.
apache服务正常启动,但打不开网页,
apache日志如下:
Apache/2.2.21 (Win32) PHP/5.3.8
configured -- resuming normal operations
[Tue Oct 09 10:38:50 2012] [notice]
Server built: Dec 1 2011 21:30:02
[Tue Oct 09 10:38:50 2012] [notice]
Parent: Created child process 17580
[Tue Oct 09 10:38:51 2012] [notice] Child
17580: Child process is running
[Tue Oct 09 10:38:51 2012] [notice] Child
17580: Acquired the start mutex.
[Tue Oct 09 10:38:51 2012] [notice] Child
17580: Starting 250 worker threads.
[Tue Oct 09 10:38:51 2012] [notice] Child
17580: Starting thread to listen on port 8080.
[Tue Oct 09 10:38:51 2012]
[error] (OS 10038)在一个非套接字上尝试了一个操作。 : Child 17580: Encountered too many
errors accepting client connections. Possible causes: dynamic address renewal,
or incompatible VPN or firewall software. Try using the Win32DisableAcceptEx
directive.
[Tue Oct 09 10:38:51 2012] [error] (OS 10038)在一个非套接字上尝试了一个操作。
: Child 17580: Encountered too many errors accepting client connections.
Possible causes: dynamic address renewal, or incompatible VPN or firewall
software. Try using the Win32DisableAcceptEx directive.
[Tue Oct 09 10:38:51
2012] [error] (OS 10038)在一个非套接字上尝试了一个操作。 : Child 17580: Encountered too
many errors accepting client connections. Possible causes: dynamic address
renewal, or incompatible VPN or firewall software. Try using the
Win32DisableAcceptEx directive.
......
原因是Apache 的AcceptEx在window下会出现这种问题,只在APAche2.0.49以上版本会有这中问题。 《Apache 2_2
中文版参考手册》上说:“AcceptEx()是一个微软的WinSock2 API ,通过使用BSD风格的accept()
API提供了性能改善。一些流行的Windows产品,比如防病毒软件或虚拟专用网络软件,会干扰AcceptEx()的正确操作。如果你遇到类似于如下
的错误:一般的解决办法是关闭 AcceptEx()”。也就是说,可能是 Windows Update 或是防火墙、防毒软件更新了某些网络原件,造成
Microsoft WinSock v2 API 动作不正常,会干扰WinSock2
API,就会影响AcceptEx()的正确操作,就可能出现上面所出现的问题。但是关闭会影响Apache的性能。需要自己权衡利弊。因此如果没有什么
错误发生,最好还是不要随便关闭这个功能比较好吧。
在httpd.conf文件中添加Win32DisableAcceptEx
标记,
<IfModule mpm_winnt.c>
ThreadsPerChild 1000
MaxRequestsPerChild 10000
Win32DisableAcceptEx
< /IfModule>
另一种解决办法,只要出现了AcceptEx 的问题,就能解决,具体设置为:
1、网上邻居-;本地连接-;属性-;internet协议(TCP/IP)-;属性-;高级-;wins标签-;去掉启用LMhosts查询前的勾.
2、控制面版-;windows防火墙-;高级标签-;本地连接设置-;服务的标签里勾选安全Web服务器(HTTPS)。
3、然后退出Apache,再打开启动就可以了
以上方案都试过,但是还不管用,
后来又查了下,试了下重置winsock就OK了
命令行中执行:netsh winsock
reset
来源:http://roov.org/2013/12/apache-acceptex-failed/
Apache报错指定的网络名不再可用解决方案
Apache问题。在查看error log之后发现有这么一行:“(OS 64)指定的网络名不再可用。 : AH00341: winnt_accept: Asynchronous AcceptEx failed.”
翻阅了不少网络文章,大多数表示需要使用Win32DisableAcceptEx,但reizhi在尝试后未果。将全部调试步骤罗列如下,希望能够有所帮助。
系统环境:Windows 2003r2
Apache版本:2.4
1.打开httpd.conf,添加以下代码:
<IfModulempm_winnt.c> ThreadsPerChild 1000 MaxRequestsPerChild 10000 Win32DisableAcceptEx </IfModule>
2.将ThreadsPerChild选项从默认的250或者更多,降至170以下
ThreadsPerChild170
3.
网上邻居->本地连接->属性->internet协议(TCP/IP)->属性->高级->wins标签->去掉启用LMhosts查询前的勾。
控制面版->windows防火墙->高级标签->本地连接设置->服务的标签里勾选安全Web服务器(HTTPS)。
4.在httpd.conf中添加以下代码
AcceptFilter http none AcceptFilter https none EnableSendfileOffEnableMMAP off
apache服务通常启动,但打不开网页,提示Try using the Win32DisableAcceptEx directive (转),布布扣,bubuko.com
apache服务通常启动,但打不开网页,提示Try using the Win32DisableAcceptEx directive (转)