Execute o seguinte comando:
netsh http show servicestate
Procure entradas semelhantes:
Registered URLs:
HTTP://+:80/<SERVICE_NAME>
Isso informa o que você está ouvindo na porta 80.
Cuidado com o Skype também, que tem o péssimo hábito de pegar a porta 80.
Desde o Windows 2003, a Microsoft criou um driver http no modo kernel. Uma característica deste driver é o listener do modo kernel. O listener do modo kernel fornece um recurso chamado compartilhamento de porta, em que mais de um aplicativo pode escutar na mesma porta. Aplicativos que desejam fazer isso registram um namespace de URI para sua aplicação. Por exemplo, na minha máquina eu tenho o serviço do MS Deployment Agent ouvindo nesta URL:
http://+:80/MSDEPLOYAGENTSERVICE/
As solicitações para esse URI específico são transferidas para o aplicativo que registrou esse URI específico.
O IIS é outro aplicativo que se registrará com o serviço listener do modo kernel e suas várias ligações.
O problema com o Apache no Windows é que ele não usa o subsistema de modo de kernel HTTP do Windows e se registra (isso não é um detalhe, apenas um fato da vida). Seu próprio processo tenta se ligar diretamente a qualquer combinação de ip / porta que você configurou. É claro que se o serviço de ouvinte HTTP estiver sentado lá ouvindo os URI's registrados na porta 80 por outros serviços, ele será iniciado.
Então, basicamente, se você quiser usar a porta 80, eu acho que você precisa encontrar e matar tudo o que poderia estar ouvindo lá (se você fizer um Listen 80
) no endereço IP que você deseja usar para o Apache.
Se necessário, pode ser necessário excluir os URIs registrados que não estão mais em uso e que talvez não tenham sido adequadamente limpos quando um aplicativo foi desinstalado.
A solução mais fácil, não ideal e tenho certeza de que você já sabe, pode ser configurar o Apache para Windows para escutar algo que não seja a porta 80.
Para mais informações, consulte: