48

Я пытался установить Zend Server CE на свой компьютер, но когда я добрался до точки, где мне нужно было выбрать порт для своего веб-сервера, он говорит: «Порт веб-сервера: 80 занято». Поэтому я решил проверить, что использует порт 80 с CMD, набрав: «netstat -o -n -a | findstr 0.0: 80»:

TCP     0.0.0.0:80     0.0.0.0:0     LISTENING     4

Я проверяю PID:4 в разделе "Процессы и службы" диспетчера задач. Кажется, PID 4 это "Система".

Итак, я хочу знать, как я могу остановить "Систему" (PID:4) от использования порта 80?

ИНФОРМАЦИЯ: Я использую: Windows 7 64bit; Zend Server CE 5.5.0

6 ответов6

71

Хорошо, после поиска в сети некоторое время я нашел решение своей проблемы.

Просто выполните следующие действия для диагностики и решения вашей проблемы:

  1. Получите pid, который прослушивает порт 80: netstat -nao | find ":80"

  2. Откройте диспетчер задач, перейдите на вкладку процессов и выберите "PID" в « Menu/View/Select Columns… , затем найдите процесс, используя PID, найденный на последнем шаге.

  3. Если это обычное приложение или IIS, отключите его или удалите. Некоторые программы (например, Skype) имеют возможность отключить использование порта 80.

  4. Если это системный процесс « PID 4», необходимо отключить драйвер HTTP.sys, который запускается по требованию другой службой, такой как удаленное управление Windows или диспетчер очереди печати в Windows 7 или 2008.

    Есть два способа его отключить, но первый безопаснее:

    1.

    • Зайдите в диспетчер устройств, выберите "показать скрытые устройства" в меню / представлении, перейдите к "Драйвер без Plug and Play" / HTTP, дважды щелкните по нему, чтобы отключить его (или установите его вручную, некоторые службы зависят от него).

    • Перезагрузитесь и используйте netstat -nao | find ":80" чтобы проверить, используется ли еще 80.

    2.

    • Запустите RegEdit.

    • Перейдите в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP

    • Измените значение "Пуск" на 4, что означает отключено.

    • Перезагрузите компьютер.

Моим решением был шаг 4.

22

У меня просто была эта проблема после установки Windows 8 Pro - Build 9200. Я перепробовал несколько методов, но не смог заставить их работать. Этот, однако, исправил это.

Вам нужно изменить привязанный IP-адрес для HTTP.SYS

netsh http add iplisten ipaddress=::

http://www.mikeplate.com/2011/11/06/stop-http-sys-from-listening-on-port-80-in-windows/

6

В моем случае это был WebMatrix. Смотрите возможные решения (включая это) здесь: http://www.sitepoint.com/unblock-port-80-on-windows-run-apache/

В принципе:

Откройте Службы из средств администрирования и найдите «Служба агента веб-развертывания». Остановите службу и установите тип запуска «Ручной».

Служба агента веб-развертывания развернута вместе с WebMatrix и стала причиной моих проблем. Он также может распространяться с другими приложениями, установленными с помощью установщика веб-платформы Microsoft.

5

PID 4 жестко запрограммирован как "системный" процесс, являющийся частью ядра системы.

Если порт занят системой, возможно, IIS включен. См. Https://stackoverflow.com/questions/1430141/port-80-is-being-used-by-system-pid-4-what-is-that

1

Хотя команда netsh http add iplisten ipaddress=:: действительно позволяла запускать Apache в моей 64-битной системе Windows 10, это приводило к хаосу при попытке доступа к localhost, поскольку это было связано с :: вместо 127.0.0.1 , даже с правильной записью в моем файле hosts. В итоге я использовал эту команду:netsh http add iplisten ipaddress=0.0.0.0 Это не только сработало, но и позволило браузеру получить доступ к localhost. Для меня это было превосходное решение.

0

Откройте список служб. Найдите "Службу публикации в Интернете". Остановите ее и установите значение "Вручную".

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .