Apache 2 não pôde ser vinculado, endereço já em uso

Apache 2 não pôde ser vinculado, endereço já em uso

Instalei o Apache 2 no Ubuntu 12.10. Quando tento iniciar o serviço usando sudo /etc/init.d/apache2 start, recebo a seguinte mensagem.

*Starting web server apache2
(98)Address already in use: make_sock: could not bind to address 127.0.0.1:80
no listening sockets available, shutting down
Unable to open logs
Action 'start' failed.
The Apache error log may have more information.                                 [fail]

Responder1

É bem possível que você já tenha algo em execução (ou "vinculado a") nessa porta. Experimente este comando para ver os processos em questão:

sudo lsof -i :80

Isso lista os processos que escutam na porta 80. Depois de encontrar o culpado, você sabe qual processo usar killou kill -9(também como superusuário).

Tenha em mente que a instância do Apache, supondo que você a tenha iniciado antes, pode ter ficado "obsoleta" ou se tornado um zumbi. Neste último caso, até mesmo uma reinicialização pode ser necessária em alguns casos.

Caso contrário, siga a resposta do dedunumax.

Responder2

Tentarsudo service apache2 start

então digite

sudo service apache2 status

o segundo comando exibirá se está em execução ou não.

Responder3

Recebi esta mensagem de erro com a seguinte configuração:

# cat /etc/hosts
127.0.0.1   localhost
127.0.0.1   foo
...

# cat /etc/apache2/sites-enabled/foo
<VirtualHost foo:80>
...

# cat /etc/apache2/ports.conf 
...
NameVirtualHost *:80
Listen localhost:80
...

Mudar ports.confpara o seguinte resolveu o problema:

NameVirtualHost *:80
Listen 127.0.0.1:80

Responder4

Alguns outros softwares como o Nginx podem estar em execução e usando a porta 80.

O Apache2 travou no meu VPS com a mesma mensagem de erro e descobri que o Nginx estava presente no servidor e algo (um cron job?) foi iniciado alguns dias depois. Isso provoca um conflito, pois usa a porta: 80 e de alguma forma tem prioridade sobre o Apache2.

Para verificar se alguma coisa já está usando a porta: 80, digite:

netstat -tulpn

Eu resolvi isso desinstalando o Nginx (com "remove --purge"), encerrando o processo nginx e reiniciando o Apache2.

informação relacionada