Estou tentando configurar uma VM executando o Ubuntu 12.04. Eu tenho dois hosts virtuais configurados usando a porta 80, mas o Apache não será iniciado.
Eu recebo este erro:
(98) Address already in use: make_sock: could not bind to address 0.0.0.0:80
A saída de netstat -tulpn
mostra que nada está usando a porta 80. O que poderia estar causando isso?
12.04
apache2
virtualization
Gunner Barnes
fonte
fonte
grep -ri listen /etc/apache
esudo netstat -ntlp | grep 80
.grep -ri listen /etc/apache2
saídas: etc / apache2 / httpd.conf: Ouça 80 /etc/apache2/httpd.conf: Ouça 443 /etc/apache2/ports.conf: Ouça 80 /etc/apache2/httpd.conf: Ouça 443 / etc / apache2 / httpd.conf: Listen 443sudo netstat -ntlp | grep 80
não produz nada.Respostas:
Verifique se você não está declarando
Listen 80
duas vezes em arquivos .conf.Por exemplo, você pode incluí-lo na
ports.conf
pousadasites-enabled/www.conf
.Para descobrir, use:
grep -ri listen /etc/apache2
Mantenha
Listen 80
em apenas um lugar.fonte
Respondendo à maneira que resolvi esse problema. Pode ser útil para alguém no futuro.
Experimentar
netstat -ltnp | grep :80
Isso retornaria algo como
Então corra
Onde 1047 é o pid do programa em execução na porta 80. Você pode substituir o pid obtido de
netstat
fonte
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN -
Quando tive esse problema, o meu Apache não pôde ser inicializado porque eu tinha um site SSL que exigia que uma senha fosse inserida para o certificado.
Uma boa maneira de saber se esse é o seu caso é executar um
ps -ef | grep apache
: se isso retorna processos com aparência semelhante/bin/bash /usr/share/apache2/ask-for-passphrase mysite.com:443 RSA
, está aguardando que uma senha seja inserida em um terminal que você nunca verá.Primeiro, eu matei o processo travado (enviar um
kill -HUP
para o ID do processo / usr / sbin / apache2 deve ser suficiente para matar os outros também, mas faça outrops -ef | grep apache
para ter certeza).Segui as instruções nesta postagem para criar um arquivo de senha SSL que não exigia que uma senha fosse inserida. Então
service apache2 start
funcionou bem, e o Apache começou corretamente após uma reinicialização.fonte
Eu recebi esse erro em uma nova instalação ao iniciar o apache2 Ubuntu 12.10.
É um bug no apache2. É pendurado no fundo. Aqui está o meu passo a passo de onde os erros podem estar no software.
Aqui está o erro que recebi:
Endereço já em uso? O que poderia estar usando isso? Confira:
Isso significa que o apache2 está impedindo que o apache2 seja iniciado. Bizarro. Isso confirmará:
Sim, neste caso o apache2 está sendo executado, eu estava tentando iniciar o apache2 uma segunda vez na mesma porta.
O que me confunde é que
service
relata que o apache2 NÃO está sendo executado:E quando você consulta o status do apache2ctl, ele trava.
Portanto, o Ubuntu parece estar tendo problemas para gerenciar o apache2 na inicialização. Hora de parar o apache2:
Uma grande pista! Você tenta parar o apache2 e ele perdeu a identificação do processo! Portanto, o Ubuntu não pode parar o apache2 porque ele não sabe onde está!
Você pensaria que uma reinicialização iria corrigi-lo, mas não porque o apache2 inicia na inicialização e trava. O processo normal de inicialização do apache2 não está funcionando corretamente.
Então, como consertar isso?
Consegui consertar isso analisando a
ps
saída do comando. Observe que ops
comando nos diz que esse processo foi iniciado por "/etc/rc2.d/S91apache2 start".Esse é o programa ofensivo que precisa de um chute rápido.
/etc/rc2.d/S91apache2
é o link simbólico usado para iniciar o apache2 quando o computador é iniciado. Por alguma razão, parece estar iniciando o apache2 e depois trava. Então, teremos que dizer para não fazer isso.Então vá dar uma olhada nisso
/etc/rc2.d/S91apache2
.É um link simbólico que não queremos que esteja lá. Faça isso para impedir que o apache2 seja iniciado na inicialização:
Reinicie o computador para garantir que o apache2 não seja iniciado e travado. Tudo bem. Agora você poderia colocar o apache2 de volta do jeito que estava, mas isso faria com que falhasse novamente.
Em vez disso, inicie o apache2 assim:
E o apache2 está de volta e servindo páginas novamente. Parece haver alguns erros sérios no apache2 / Ubuntu 12.10 que fazem com que o apache2 seja iniciado e travado. Esta é uma solução alternativa, suponho que a correção seja obter versões mais recentes do apache2 e Ubuntu e esperar o melhor.
fonte
Eu tinha um servidor Nginx ouvindo no meu servidor AWS EC2, acho que ele foi configurado quando eu estava construindo o EC2; portanto, estava recebendo erro de endereço já em uso. Então, parei o serviço e iniciei o serviço Apache2:
fonte
Eu descobri isso. Eu tinha comandos Listen 80 duplicados nos meus httpd.conf e ports.conf
Além disso, ao copiar o arquivo de configuração para o servidor que está sendo virtualizado, deixei de notar que o diretório do log de erros havia sido alterado. Examinando esse log de erros, notei que o diretório do
mime.types
arquivo de configuração estava incorreto no meuhttpd.conf
arquivo. Atualizei esse parâmetro e o servidor foi iniciado corretamente.fonte
Listen 80
comandos, tanto o meuhttpd.conf
eports.conf
Isso significa que a porta 80 já está sendo usada, altere a porta do apache2 (que eu não recomendo) editando:
Ou feche o aplicativo em execução na porta 80:
Para encontrar o que está sendo executado na porta 80.
fonte
netstat -antp | grep 80
não produz nada também.Apenas uma dica para quem talvez esteja executando o VirtualBox com redes NAT. Eu descobri que ter uma regra NAT entre meu convidado e host havia se configurado, ligando a porta
fonte
Não apenas menções duplicadas de
mas também mencione isso além de Listen 80
fonte