无法在Windows Server 2008 R2上启动Apache

时间:2011-01-26 10:05:53

标签: windows apache windows-server-2008-r2

尝试启动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

如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

在线搜索解决方案之后,我看到有人指责MS SQL报告服务,所有MS SQL服务,Windows远程管理服务等。但是有一篇帖子有一个有用的诊断命令,可以跟踪w3svc的监听服务。 / p>

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..]

答案 1 :(得分:0)

也许你已经达到了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版本可能没有?

四分钟后你会知道它是否“正常”。 :)