Ошибка службы 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.
Ответы
Ответ 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: служба агента развертывания веб-сайтов), и это решило проблему.