Не удается запустить Apache в Windows Server 2008 R2 - PullRequest
1 голос
/ 26 января 2011

При попытке запустить 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 ]

2 голосов
/ 26 июля 2011

После поиска решения в Интернете я увидел людей, обвиняющих службы отчетов MS SQL, все службы MS SQL, службы удаленного управления Windows и т. Д. Но в одном посте была полезная диагностическая команда, позволяющая отслеживать службу прослушивания для w3svc.

TMG не может прослушивать порт 80 (IIS не был установлен), Ори Йосефи, MSFT, 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

Я мог видеть службы, работающие под обнаруженным PID, используя команду tasklist.

    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.

Затем я остановил службу публикации в Интернете через графический интерфейс служб, services.msc. Я также изменил тип запуска для этой службы на Вручную. После этого ни один сервис не прослушивал TCP-порт 80.

    e:\DIR>netstat -ano
    [..no process listening on TCP port 80..]
0 голосов
/ 26 января 2011

Возможно, вы достигли состояния ожидания времени TCP? http://msdn.microsoft.com/en-us/library/ms819739.aspx

"TIME-WAIT гарантирует, что прошло достаточно времени, чтобы гарантировать, что любые сегменты TCP, которые могли быть неправильно доставлены или задержаны, не были неожиданно доставлены в новое, не связанное с этим приложение с такими же настройками соединения. RFC 793: Протокол управления передачей DARPA Спецификация протокола Интернета определяет продолжительность времени, в течение которого пара сокетов не должна использоваться повторно, как два максимальных времени жизни сегмента (MSL) или четыре минуты. Этот период времени является настройкой по умолчанию для TCP / IP Windows Server 2003. "

Серверные приложения часто используют опцию сокета SO_REUSEADDR, поэтому их можно быстро перезапустить, но, возможно, ваша сборка Apache - нет?

Вы узнаете, «работает ли он» через четыре минуты. :)

...