Estoy tratando de configurar una VM que ejecute Ubuntu 12.04. Tengo dos hosts virtuales configurados usando el puerto 80, pero Apache no se iniciará.
Me sale este error:
(98) Address already in use: make_sock: could not bind to address 0.0.0.0:80
La salida de netstat -tulpn
muestra que nada está usando el puerto 80. ¿Qué podría estar causando esto?
12.04
apache2
virtualization
Artillero Barnes
fuente
fuente
grep -ri listen /etc/apache
ysudo netstat -ntlp | grep 80
.grep -ri listen /etc/apache2
salidas: etc / apache2 / httpd.conf: Listen 80 /etc/apache2/httpd.conf: Listen 443 /etc/apache2/ports.conf: Listen 80 /etc/apache2/httpd.conf: Listen 443 / etc / apache2 / httpd.conf: Listen 443sudo netstat -ntlp | grep 80
no genera nada en absoluto.Respuestas:
Asegúrese de no declarar
Listen 80
dos veces en archivos .conf.Por ejemplo, puede tenerlo tanto en la
ports.conf
posada como en la posadasites-enabled/www.conf
.Para averiguarlo, use:
grep -ri listen /etc/apache2
Mantener
Listen 80
en un solo lugar.fuente
Respondiendo la forma en que resolví este problema. Puede ser útil para alguien en el futuro.
Tratar
netstat -ltnp | grep :80
Esto devolvería algo como
Entonces corre
Donde 1047 es el pid del programa que se ejecuta en el puerto 80. Puede reemplazar el pid que obtuvo de
netstat
fuente
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN -
Cuando tuve este problema, resultó que mi Apache no podía iniciarse en el arranque porque tenía un sitio SSL que requería que se ingresara una contraseña para el certificado.
Una buena manera de saber si este es el caso para usted es ejecutar un
ps -ef | grep apache
: si esto devuelve procesos que parecen,/bin/bash /usr/share/apache2/ask-for-passphrase mysite.com:443 RSA
entonces está esperando que se ingrese una contraseña en un terminal que nunca verá.Primero, eliminé el proceso bloqueado (el envío de un
kill -HUP
ID de proceso para / usr / sbin / apache2 debería ser suficiente para eliminar los otros, pero haga otrops -ef | grep apache
para estar seguro).Luego seguí las instrucciones en esta publicación para crear un archivo de contraseña SSL que no requería que se ingresara una contraseña. Luego
service apache2 start
funcionó bien, y Apache comenzó correctamente después de un reinicio.fuente
Recibí este error en una instalación nueva al iniciar apache2 Ubuntu 12.10.
Es un error en el apache2. Se cuelga en el fondo. Aquí está mi tutorial sobre dónde podrían estar los errores en el software.
Aquí está el error que recibí:
¿Dirección ya en uso? ¿Qué podría estar usándolo? Echale un vistazo:
Eso significa que apache2 impide que apache2 se inicie. Extraño. Esto confirmará:
Sí, en este caso apache2 se está ejecutando, estaba intentando iniciar apache2 por segunda vez en el mismo puerto.
Lo que me confunde es que
service
informa que apache2 NO se está ejecutando:Y cuando consulta apache2ctl por su estado, se cuelga.
Entonces Ubuntu parece tener problemas para administrar apache2 en el arranque. Hora de parar apache2:
Una gran pista! Intenta detener apache2 y perdió la identificación del proceso. ¡Entonces Ubuntu no puede detener apache2 porque no sabe dónde está!
Se podría pensar que un reinicio lo solucionaría, pero no lo hace porque apache2 se inicia en el inicio y se cuelga. El proceso de arranque normal para apache2 no funciona correctamente.
Entonces, ¿cómo solucionarlo?
Pude solucionar esto analizando la
ps
salida del comando. Observe que elps
comando nos dice que ese proceso fue iniciado por "/etc/rc2.d/S91apache2 start".Ese es el programa ofensivo que necesita una patada rápida.
/etc/rc2.d/S91apache2
es el enlace simbólico utilizado para iniciar apache2 cuando se inicia la computadora. Por alguna razón, parece estar iniciando apache2 y luego se cuelga. Entonces tendremos que decirle que no haga eso.Así que ve a ver eso
/etc/rc2.d/S91apache2
.Es un enlace simbólico que no queremos que esté allí. Haga esto para evitar que apache2 se inicie en el arranque:
Reinicie la computadora para asegurarse de que apache2 no se inicie y se cuelgue. Bien. Ahora PODRÍAS volver a poner apache2 como estaba, pero eso haría que volviera a fallar.
En su lugar, inicie el apache2 así:
Y el apache2 está respaldado y sirve páginas nuevamente. Parece que hay algunos errores graves con apache2 / Ubuntu 12.10 que hacen que apache2 se inicie y se cuelgue. Esta es una solución alternativa, supongo que la solución es obtener versiones más recientes de apache2 y Ubuntu y esperar lo mejor.
fuente
Tenía un servidor Nginx escuchando en mi servidor AWS EC2, creo que se configuró cuando estaba compilando el EC2, por lo tanto, estaba recibiendo un error de Dirección ya en uso. Así que detuve el servicio y comencé el servicio Apache2:
fuente
Lo he resuelto. Tenía comandos duplicados de Listen 80 tanto en mi httpd.conf como en ports.conf
Además, al copiar el archivo de configuración para ese servidor que se está virtualizando, no noté que el directorio de registro de errores había cambiado. Al mirar ese registro de errores, noté que el directorio para el
mime.types
archivo de configuración era incorrecto en mihttpd.conf
archivo. Actualicé ese parámetro y el servidor comenzó bien.fuente
Listen 80
comandos duplicados en mihttpd.conf
yports.conf
Esto significa que su puerto 80 ya está en uso, o bien cambie el puerto para apache2 (que no recomiendo) editando:
O cierre la aplicación que se ejecuta en el puerto 80:
Para encontrar lo que se está ejecutando en el puerto 80.
fuente
netstat -antp | grep 80
no produce nada también.Solo una pista para cualquiera que quizás esté ejecutando VirtualBox con redes NAT. Descubrí que tener una regla NAT entre mi invitado y el host se había configurado, vinculando el puerto
fuente
No solo menciones duplicadas de
pero también menciono esto además de Listen 80
fuente