localhost não está funcionando no OS X Yosemite

11

Eu tenho o servidor apache local do meu Mac em execução e quando visito o host local, recebo a página "Funciona" padrão.A página "Funciona" foi armazenada em cache - na verdade, é quebrada da mesma forma que 127.0.0.1. Quando visito 127.0.0.1, no entanto, o chrome me fornece Error code: ERR_CONNECTION_REFUSED. Então eu corri um telnet. Resultado:

harryg$ telnet localhost 80
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
Trying fe80::1...
telnet: connect to address fe80::1: Connection refused
telnet: Unable to connect to remote host

Mas scutildá o seguinte:

harryg$ scutil -r localhost
Reachable,Local Address,Directly Reachable Address

Alguma idéia de por que não está funcionando? O apache está ouvindo em alguma porta diferente? Se sim, como verifico? Eu tenho alguns vhosts locais que devem ser acessíveis por alguns .devhosts virtuais locais que eu adicionei ao meu arquivo de hosts. Por exemplo, 127.0.0.1 home.devmas eles também dão o erro acima.

Editar

Parece que nada está escutando na porta 80. Quando corro, sudo lsof -iTCP:80 -sTCP:LISTENnão recebo saída. O Apache parece estar em execução - apachectlexecutei o restart` muitas vezes.

harryg
fonte
você pode verificar se o seu webshare está trabalhando com esta ferramenta; clickontyler.com/web-sharing
siniradam
Você localhostestá funcionando perfeitamente bem. Apache não é. Atualize sua pergunta para representar esse fato e não se esqueça de incluir os bits relevantes da sua configuração do Apache e seus arquivos de log.
Daniel B
Eu tive um problema semelhante e foi capaz de resolvê-lo: stackoverflow.com/questions/26454160/…
Xaver
A maneira normal de fazer isso no Mavericks / Yosemite é encaminhar a porta da porta 80 para a porta 8080. Consulte gist.github.com/mindw0rk/dcc6c02a92b49bde0f13 para obter um exemplo de como configurar isso usando pfctl e altere sua configuração do apache para usar Ouça 8080. Você poderá se conectar à porta 80 e o tráfego será encaminhado para o apache. (em nossa loja dev todo mundo usa essa configuração, exceto com nginx)
bazzargh

Respostas:

11

Verifique sua configuração do Apache com este comando:

sudo apachectl -t

Isso testa os arquivos de configuração e informa se há algum erro. A execução sudo apachectl startnão gera erros de sintaxe do arquivo de configuração nos logs por algum motivo.

Matt Gibson
fonte
Exatamente o mesmo problema aqui. sudo apachectl -tretorna Syntax OK. O que então?
PMPR
2

Este comando deve informar em qual porta e qual endereço IPv (4/6) o seu Apache está ouvindo:

sudo lsof -P -n -iTCP -sTCP:LISTEN | grep httpd

Se não há nada ouvindo, o que você ganha com isso?

sudo serveradmin status web
sudo serveradmin settings web
ps -acx | grep http

.

Em último recurso:

sudo serveradmin stop web

Abra Console.app e coloque um marcador

sudo serveradmin start web

Verifique os logs

Florian Bidabe
fonte
Houve um problema no arquivo de configuração que impediu o Apache de iniciar! As páginas em cache me levaram a acreditar que estava sendo executado para o host local, mas não para o meu IP local.
harryg
Ok, legal, o serveradmin aciona o httpd e geralmente gera logs de inicialização. Você conseguiu resolver o problema? qual é a mensagem de erro plz (para outros membros)?
Florian Bidabe 08/08
Sim, está resolvido. Eu tinha esquecido de descomentar um módulo do apache vhosts, então o Apache encontrou um erro quando viu VirtualDocumentRouteno meu arquivo de configuração do vhosts.
harryg
2
ei harryg, se você tiver a chance de atualizar o status para resolvido.
Florian Bidabe 19/08/2014
Eu tive esse problema e falha silenciosa ao iniciar o apache. Nada nos logs, devido a um erro de sintaxe na configuração. Este comando veio à tona:sudo apachectl -t
Matt Gibson
0

Acredito que a porta padrão é 8080, mas você pode verificar o arquivo httpd.conf para as portas que o Apache está ouvindo.


fonte
8080 não funciona, e meu arquivo de configuração possui Listen 80.
harryg
Você pode ver o Apache rodando, talvez com um "ps aux"? Além disso, o log de erros mostra alguma coisa? Local padrão deve ser / var / log / apache2 / error_log
qual é a saída netstat -tulpn | grep :80?
sardean