localhost no funciona en OS X Yosemite

11

Tengo el servidor apache local de mi Mac ejecutándose y cuando visito localhost obtengo la página estándar "Funciona".La página "Funciona" se almacenó en la memoria caché; de hecho, no funciona igual que 127.0.0.1. Cuando visito 127.0.0.1, sin embargo, Chrome me da Error code: ERR_CONNECTION_REFUSED. Entonces corrí a 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

Pero scutilda esto:

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

¿Alguna idea de por qué no funciona? ¿Apache está escuchando en algún puerto diferente? Si es así, ¿cómo lo verifico? Tengo algunos vhosts locales a los que deberían poder acceder algunos .devhosts virtuales locales que he agregado a mi archivo de hosts. Por ejemplo, 127.0.0.1 home.devpero también dan el error anterior.

Editar

Parece que nada está escuchando en el puerto 80. Cuando ejecuto sudo lsof -iTCP:80 -sTCP:LISTENno obtengo salida. Sin embargo, Apache parece estar ejecutándose; he ejecutado el apachectlreinicio muchas veces.

harryg
fuente
¿podría comprobar si su webhare funciona con esta herramienta? clickontyler.com/web-sharing
siniradam
Tu localhostestá funcionando perfectamente bien. Apache no lo es. Actualice su pregunta para representar este hecho y no olvide incluir los bits relevantes de su configuración de Apache y sus archivos de registro.
Daniel B
Tuve un problema similar y pude resolverlo: stackoverflow.com/questions/26454160/…
Xaver
La forma normal de hacer esto en Mavericks / Yosemite es avanzar de puerto desde el puerto 80 al puerto 8080. Consulte gist.github.com/mindw0rk/dcc6c02a92b49bde0f13 para ver un ejemplo de cómo configurar esto usando pfctl, luego cambie su configuración de apache para usar Escucha 8080. Podrás conectarte al puerto 80 y el tráfico se reenviará a apache. (en nuestra tienda de desarrollo, todos usan esta configuración, excepto con nginx)
bazzargh

Respuestas:

11

Verifique su configuración de Apache con este comando:

sudo apachectl -t

Esto prueba los archivos de configuración y le dice si hay un error. La ejecución sudo apachectl startno genera errores de sintaxis del archivo de configuración en los registros por algún motivo.

Matt Gibson
fuente
Exactamente el mismo problema aquí. sudo apachectl -tvuelve Syntax OK. ¿Entonces que?
Pmpr
2

Este comando debería decirle en qué puerto y qué dirección IPv (4/6) está escuchando su Apache:

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

Si no hay nada escuchando, ¿qué obtienes de esto?

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

.

En último recurso:

sudo serveradmin stop web

Abra Console.app y coloque un marcador

sudo serveradmin start web

Revisa los registros

Florian Bidabe
fuente
¡Hubo un problema con el archivo de configuración que impidió que Apache se iniciara! Las páginas en caché me llevaron a creer que se estaba ejecutando para localhost pero no para mi IP local.
harryg
Ok, genial, serveradmin dispara httpd, y generalmente genera registros de inicio, ¿has podido resolver el problema? ¿Cuál es el mensaje de error por favor (para otros miembros)?
Florian Bidabe
Sí, está resuelto. Había olvidado descomentar un módulo de vhosts de apache, así que Apache detectó un error cuando vio VirtualDocumentRouteen mi archivo de configuración de vhosts.
harryg
2
Hola Harry, si tienes la oportunidad de actualizar el estado para resolverlo.
Florian Bidabe
Tuve este problema y un fallo silencioso al iniciar Apache. Nada en los registros, debido a un error de sintaxis en la configuración. Este comando salió a la superficie:sudo apachectl -t
Matt Gibson el
0

Creo que el puerto predeterminado es 8080, pero puede verificar el archivo httpd.conf de los puertos en los que Apache está escuchando.


fuente
8080 no funciona, y mi archivo de configuración tiene Listen 80.
harryg
¿Puedes ver Apache ejecutándose, quizás con un "ps aux"? Además, ¿el registro de errores muestra algo? La ubicación predeterminada debe ser / var / log / apache2 / error_log
¿Cuál es la salida de netstat -tulpn | grep :80?
sardean