共计 2451 个字符,预计需要花费 7 分钟才能阅读完成。
最近在使用 PHP5.6+Apache2.4,搭建开发环境;在实际的开发过程中发现 http 请求一致处于挂起状态, 于是重启(net start/stop)Apache2.4 服务, 然后再访问问题得到了解决,但是过一会,平凡的打开页面又出现问题,通过查看 web 服务器的日志,发现报很多 ” 指定的网络名不再可用 ” 的错误:
[Thu Nov 20 14:07:43.151780 2014] [mpm_winnt:warn] [pid 8752:tid 1132] (OS 64) 指定的网络名不再可用。: AH00341: winnt_accept: Asynchronous AcceptEx failed.
[Thu Nov 20 14:07:43.152781 2014] [mpm_winnt:warn] [pid 8752:tid 1132] (OS 64) 指定的网络名不再可用。: AH00341: winnt_accept: Asynchronous AcceptEx failed.
[Thu Nov 20 14:07:43.152781 2014] [mpm_winnt:warn] [pid 8752:tid 1132] (OS 64) 指定的网络名不再可用。: AH00341: winnt_accept: Asynchronous AcceptEx failed.
[Thu Nov 20 14:07:43.152781 2014] [mpm_winnt:warn] [pid 8752:tid 1132] (OS 64) 指定的网络名不再可用。: AH00341: winnt_accept: Asynchronous AcceptEx failed.
[Thu Nov 20 14:07:43.152781 2014] [mpm_winnt:warn] [pid 8752:tid 1132] (OS 64) 指定的网络名不再可用。: AH00341: winnt_accept: Asynchronous AcceptEx failed.
在网上找各种资料,都是说在 httpd.conf 文件中添加 Win32DisableAcceptEx 标记:
<IfModule mpm_winnt.c>
ThreadsPerChild 150
MaxRequestsPerChild 10000
Win32DisableAcceptEx
</IfModule>
配置之后问题依然未得到解决,最终查看 Apache 的手册 (PS: 查看最新的 Apache2.4 的手册),看到官方的如下解释:
The default values on Windows are:
AcceptFilter http data
AcceptFilter https data
Window’s mpm_winnt interprets the AcceptFilter to toggle the AcceptEx() API, and does not support http protocol buffering. There are two values which utilize the Windows AcceptEx() API and will recycle network sockets between connections. data waits until data has been transmitted as documented above, and the initial data buffer and network endpoint addresses are all retrieved from the single AcceptEx() invocation. connect will use the AcceptEx() API, also retrieve the network endpoint addresses, but like none the connect option does not wait for the initial data transmission.
On Windows, none uses accept() rather than AcceptEx() and will not recycle sockets between connections. This is useful for network adapters with broken driver support, as well as some virtual network providers such as vpn drivers, or spam, virus or spyware filters.
在配置文件中添加如下信息:
AcceptFilter http none
AcceptFilter https none
最终解决问题
————————————– 分割线 ————————————–
Ubuntu 13.04 安装 LAMP\Vsftpd\Webmin\phpMyAdmin 服务及设置 http://www.linuxidc.com/Linux/2013-06/86250.htm
CentOS 5.9 下编译安装 LAMP(Apache 2.2.44+MySQL 5.6.10+PHP 5.4.12) http://www.linuxidc.com/Linux/2013-03/80333p3.htm
RedHat 5.4 下 Web 服务器架构之源码构建 LAMP 环境及应用 PHPWind http://www.linuxidc.com/Linux/2012-10/72484p2.htm
LAMP 源码环境搭建 WEB 服务器 Linux+Apache+MySQL+PHP http://www.linuxidc.com/Linux/2013-05/84882.htm
LAMP+Xcache 环境搭建 http://www.linuxidc.com/Linux/2014-05/101087.htm
————————————– 分割线 ————————————–