Подтвердить что ты не робот

Ошибка службы Apache ( "BUSY" ) при использовании порта 80

Как настроить сервер Apache для работы на порту 80? Служба Apache не работает при использовании порта 80; он говорит BUSY.

Когда я меняю порт в config на 85, Apache работает, но для этого требуется, чтобы монументально вводил 85 в адресную строку каждый раз с localhost.

Я попытался выяснить, какая программа использует порт 80, но я ничего не могу придумать. Я сначала ввел netstat -n -a -o -p TCP в cmd, и я придумал эту информацию

Local Address 0.0.0.0:80   State: Listening    PID: 4

Затем я ввел tasklist в cmd, пытаясь выяснить, какая служба использует этот порт. Похоже, что "Система" находится на PID 4. Я настроил Skype, чтобы не использовать порт 80 без везения. У меня установлен Microsoft WebMatrix в Windows 7, и я даже удалил IIS 7.5 Server Express, чтобы освободить этот порт, но все это безрезультатно.

Можете ли вы, ребята, помочь мне? Я использую Windows 7 и XAMPP.

4b9b3361

Ответ 1

Несколько программ могут заблокировать этот порт. Кандидаты:

  • Skype
  • Служба агента развертывания веб-сайтов (можно остановить через Start → [- > Run] → services.msc)
  • Служба публикации World Wide Web
  • IIS (если он установлен)
  • TeamViewer
  • VMware (в VMware Workstation выберите "Редактировать → Настройки → Общие виртуальные машины и Отключите общий доступ или измените порт)

    Служба агента развертывания веб-сайтов и Служба публикации веб-сайтов можно настроить вручную, чтобы они не запускались. Остановите или измените эти службы из учетной записи с правами администратора. Skype и TeamViewer можно настроить, чтобы не использовать порт 80. Для Skype Перейдите в Функции > Дополнительно > Соединение и снимите флажок "Использовать порт 80 и 443 для входящих подключений" Для TeamViewer Перейдите в Дополнительно > Параметры > Дополнительно и снимите аналогичное сообщение, как указано выше.

EDIT: я сделал публикацию сообщества Wiki, поэтому, если люди находят другие программы, они могут добавить их здесь.

Ответ 2

Для меня оказалось, что "Служба агента развертывания веб-сайтов" принимает порт 80. Как только он отключился, apache начал работу. Я также сталкивался с некоторыми из них, говоря, что некоторые из служб SQL Server блокировали его.

EDIT:
Просто подумал, что добавлю, что новый MSN (Skype) также вызывает это, используя порт 80 по умолчанию. Его можно изменить в настройках:

Инструменты > Параметры > Дополнительно > Соединение > Отменить "Использовать порт 80 и 443" > Сохранить

Ответ 3

Вы также можете просто изменить порт, который использует веб-сервер Apache в файле httpd.conf.

В командной строке ОС Windows я использую:

netstat -an

чтобы узнать, какие службы уже запущены, и какие порты они используют, просто выберите номер порта, который не используется. Гораздо проще. Это для моей среды Dev. На реальном сервере или в облаке я буду запускать Apache Web Server без конфликтов и просто выключить что-нибудь еще, использующее порт 80.

Ответ 4

В настоящее время я тестирую бета-версию следующей версии Windows, Windows 7 и сталкивается с какой-то странной проблемой, пытаясь заставить Apache устанавливать и запускать с использованием порта по умолчанию 80.

Выполнение команды netstat -ano из командной строки что порт 80 используется PID 4.

Поиск PID 4 с использованием Power Shell, а затем Диспетчер задач что PID 4 является ядром NT!

Таким образом, Windows 7 по умолчанию использует порт 80.

После небольшой охоты по Интернету и собственного исследования я обнаружил, что причиной этого является сервис http.sys, и все, что мне нужно было сделать, это отключить его, но я не смог найти эту службу, указанную в элементе управления Services панельный апплет. Итак, какое решение?

Вам необходимо отключить службу http.sys вручную через реестр:

1) Запустите RegEdit:

2) Перейти к: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP

3) Добавьте новое значение DWORD (32-разрядное)

4) Назовите его 'NoRun, не включая кавычки

5) Дважды щелкните новое свойство

6) В поле "Значение" введите 1 ', не включая кавычки, и нажмите "ОК"

7) Перезагрузите компьютер

Теперь вы должны найти, что Apache начнет работу на порту 80!

Ответ 5

О, спасибо тебе тысячу раз. Я весь день занимался борьбой с получением порта 80 бесплатно. Пробовал все, что я нашел в чатах, форумах, в том числе в редакторе выше, и все еще было:

netstat -ano -p tcp | findstr LISTENING

TCP    0.0.0.0:80             0.0.0.0                  LISTENING       4
TCP    0.0.0.0:445            0.0.0.0                  LISTENING       4  etc.

Теперь порт 80 исчез с дисплея. Какое облегчение!

Ответ 6

Просто подумал, что я поместил свой вклад в: Я остановил службу MsDepSvc (AKA: служба агента развертывания веб-сайтов), и это решило проблему.