Tengo Apache2 instalado en Mac OS X 10.7.4 mediantemacports
Recientemente no he podido acceder a mi directorio localhost. Recibo un 404, pero puedo acceder a 127.0.0.1.
Intenté reiniciar Apache:
sudo /opt/local/apache2/bin/apachectl stop
sudo /opt/local/apache2/bin/apachectl start
y me sale los siguientes errores:
(48)Address already in use: make_sock: could not bind to address [::]:80
(48)Address already in use: make_sock: could not bind to address [::]:443
He comprobado que el uso compartido web está desactivado. Parece que Apache ya está utilizando estos puntos o el servicio no se detiene correctamente.
¿Cómo puedo saber qué está utilizando los puertos?
Respuesta1
El comando de shell "lsof" puede indicarle exactamente qué proceso está utilizando qué archivos y direcciones de socket en el sistema. Sólo prueba un
sudo lsof
o, como el resultado será mucho, mejor
sudo lsof | less
y busque algo en los puertos http. Como siempre
man lsof
le dará más información sobre cómo personalizar la salida.
Respuesta2
Como referencia, en Mountain Lion 10.8.2, simplemente detener el servicio apache2 funcionó:
sudo apachectl stop
De esa manera, los procesos httpd no se reiniciarán y el servidor Macports apache2 se iniciará bien después de eso.
Respuesta3
En mi Mac con Mojave (10.14.1), de repente Apache ya no podía servir IPv4 y luego me dio el ERROR 403. Intenté eliminar todos los Apache ( sudo killall httpd
)... comprobando los PID con
sudo lsof | grep AMP | grep apache
ni siquiera funcionó... sólo IPv6 estaba disponible... todavía ERROR 403
Lo que funciona para mí: deshabilite el servidor Apache integrado de macOS.
sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist
después:
sudo apachectl -k restart
ser feliz :)