¿Qué podemos hacer si de repente Apache (httpd) no quiere reiniciarse y nos aparece el error «(98)Address already in use: make_sock: could not bind to address [::]:80 no listening sockets available, shutting down»?
También nos puede aparecer el puerto 443 en este error. Lo que nos quiere decir este error es que hay otro proceso usando el puerto 443 (80) y que Apache no puede iniciarse en este puerto.
Probablemente, sea el mismo proceso de Apache que no se ha cerrado correctamente y al intentar iniciarlo de nuevo, es incapaz de hacerlo al estar su puerto reservado…
¿Solución a este problema para reiniciar Apache en nuestro servidor?
Lo primero que hay que hacer es encontrar el proceso que está ocupando el puerto de Apache. Accedemos mediante la consola SSH a nuestro servidor y ejecutamos el siguiente comando:
lsof -i | grep http
Obtendremos algo como esto:
httpd 996 apache 4u IPv6 4909 0t0 TCP *:http (LISTEN)
httpd 996 apache 6u IPv6 4919 0t0 TCP *:https (LISTEN)
Ahora sabemos que hay un proceso con un PID 996 (el propio Apache), ocupando el puerto.
También puedes probar el comando:
netstat -ltnp | grep :80
Y te sale algo como esto:
tcp6 0 0 :::80 :::* LISTEN 746/httpd
En este segundo caso no sale un PID 746.
Ahora lo que tenemos que hacer es “matar” ese proceso PID con el siguiente comando:
sudo kill -9 996
Reiniciamos Apache con el comando (Rocky Linux, Alma Linux):
sudo systemctl restart httpd
Y problema solucionado. Ya tenemos Apache de nuevo en funcionamiento en nuestro servidor.
Te puede interesar: Cómo activar HTTP/2 en Apache (Rocky Linux 9) o Trucos y consejos para optimizar la memoria RAM en un servidor VPS con Virtualmin
gracias por tu publicación, me ocurrio el mismo problema que tu describes al apagar fisicamente un servidor ubuntu.