无法在 Windows Server 2008 R2 上启动 Apache
Posted
技术标签:
【中文标题】无法在 Windows Server 2008 R2 上启动 Apache【英文标题】:Can't start Apache on Windows Server 2008 R2 【发布时间】:2011-06-15 18:05:46 【问题描述】:尝试启动 apache 时出现以下错误:
(OS 10013)试图以访问权限禁止的方式访问套接字。 : make_sock: 无法绑定到地址 0.0.0.0:80 没有可用的监听套接字,正在关闭。无法打开日志
我可以先启动它。我想在我启用 Windows '.NET Framework 3.5' 的功能之后。现在我无法正常启动它。我检查了端口:
netstat -aon|findstr "80"
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4
TCP [::]:80 [::]:0 LISTENING 4
tasklist|findstr "4"
System Idle Process 0 Services 0 24 K
System 4 Services 0 304 K
如何解决?
【问题讨论】:
第一,属于ServerFault 二、你有没有安装IIS
功能?
【参考方案1】:
在网上搜索解决方案后,我看到有人指责 MS SQL 报告服务、所有 MS SQL 服务、Windows 远程管理服务等。但一篇帖子有一个有用的诊断命令,允许跟踪 w3svc 的侦听服务。
TMG is Unable to Listen on Port 80 (no IIS was not installed) by Ori Yosefi, MSFT, October 15, 2010
e:\DIR>netsh http show servicestate
Snapshot of HTTP service state (Server Session View):
-----------------------------------------------------
Server session ID: FF00000320000001
[..]
URL group ID: FE00000340000001
[..]
Registered URLs:
HTTP://*:80/
Request queues:
Request queue name: DefaultAppPool
[..]
Controller process ID: 2724
Process IDs:
5412
我可以使用 tasklist 命令查看在检测到的 PID 下运行的服务。
e:\DIR>tasklist /svc
[..]
svchost.exe 2724 W3SVC, WAS
[..]
我可以查询这些服务的配置细节。
e:\DIR>sc qc w3svc
[SC] QueryServiceConfig SUCCESS
SERVICE_NAME: w3svc
TYPE : 20 WIN32_SHARE_PROCESS
START_TYPE : 2 AUTO_START
ERROR_CONTROL : 1 NORMAL
BINARY_PATH_NAME : C:\Windows\system32\svchost.exe -k iissvcs
LOAD_ORDER_GROUP :
TAG : 0
DISPLAY_NAME : World Wide Web Publishing Service
DEPENDENCIES : WAS
: HTTP
SERVICE_START_NAME : LocalSystem
e:\DIR>sc qc was
[SC] QueryServiceConfig SUCCESS
SERVICE_NAME: was
TYPE : 20 WIN32_SHARE_PROCESS
START_TYPE : 3 DEMAND_START
ERROR_CONTROL : 1 NORMAL
BINARY_PATH_NAME : C:\Windows\system32\svchost.exe -k iissvcs
LOAD_ORDER_GROUP :
TAG : 0
DISPLAY_NAME : Windows Process Activation Service
DEPENDENCIES : RPCSS
SERVICE_START_NAME : LocalSystem
我无法阻止他们从命令行以普通用户身份运行。
e:\DIR>net stop w3svc
System error 5 has occurred.
Access is denied.
e:\DIR>net stop was
The following services are dependent on the Windows Process Activation Service service.
Stopping the Windows Process Activation Service service will also stop these services.
World Wide Web Publishing Service
Net.Tcp Listener Adapter
Net.Pipe Listener Adapter
Do you want to continue this operation? (Y/N) [N]: y
System error 5 has occurred.
Access is denied.
然后我通过服务 GUI services.msc
停止了万维网发布服务。我还将此服务的启动类型更改为手动。之后没有服务监听 TCP 80 端口。
e:\DIR>netstat -ano
[..no process listening on TCP port 80..]
【讨论】:
我应该使用“netstat -noa”来查找监听特定 TCP 端口的进程的 ID。【参考方案2】:也许您已经达到 TCP 时间等待状态? http://msdn.microsoft.com/en-us/library/ms819739.aspx
“TIME-WAIT 确保经过足够的时间,以确保任何可能被错误路由或延迟的 TCP 段不会意外传送到具有相同连接设置的新的、不相关的应用程序。RFC 793:传输控制协议 DARPA Internet 程序协议规范将套接字对不应重复使用的时间长度指定为两个最大段生命周期 (MSL),即四分钟。此时间段是 Windows Server 2003 TCP/IP 的默认设置。"
服务器应用程序通常使用SO_REUSEADDR
套接字选项,以便可以快速重新启动它们,但也许您的 Apache 版本没有?
四分钟后您就会知道它是否“有效”。 :)
【讨论】:
对不起,我不明白你说什么 @Tom,它还坏了吗?如果是,那么 TIME-WAIT 不是您的问题。 萨诺德,谢谢。我把apache form 80的端口号改成另一个,就可以了。以上是关于无法在 Windows Server 2008 R2 上启动 Apache的主要内容,如果未能解决你的问题,请参考以下文章
无法在 Windows Server 2008 R2 上启动 Apache
我无法在 Windows Server 2008 R2 上安装 Lync 2010
无法在 Windows Server 2008 上运行 Visual Studio 2012 远程调试器
用windows loader激活hyper-v虚拟机下windows server 2008 R2 重启 黑屏 无法进入系统