"Make_sock: no se pudo enlazar a la dirección [::]: 443" al reiniciar apache (instalando trac y mod_wsgi)

92

Estoy intentando instalar trac y mod_wsgi sobre SSL. Intenté instalarlo manualmente, pero eso no funcionó tan bien, así que comencé a seguir esto: trac-on-ubuntu

Me salté la parte svn porque me gustaría usar git en su lugar. Después de la primera edición de httpd.conf:

WSGIScriptAlias /trac /var/trac/apache/trac.wsgi

<Directory /var/trac/apache>
    WSGIApplicationGroup %{GLOBAL}
    Order deny,allow
    Allow from all
</Directory>

Reinicié apache solo para obtener este error:

* Restarting web server apache2                                                    

(98)Address already in use: make_sock: could not bind to address [::]:443

                                                                     [ OK ]

Hacer esto no mostró nada.

 netstat -anp | grep 443 
 fuser 443/tcp

Hacer esto no produjo nada excepto el comando grep que ejecuté:

ps -aux | grep httpd

¿Por qué dice que algo más está usando el puerto cuando no aparece nada?

EDITAR: Ustedes se van a reír de esto. Tenía un Listen 443 adicional en ports.conf que no debería haber estado allí. Eliminar eso resolvió esto.

aleta de tiburón
fuente
Bien, encontraste la declaración extra de escucha. Iba a sugerir eso como posible causa hasta que llegara a tu edición. :-)
Graham Dumpleton
3
Es posible que desee volver a escribir su edición en una respuesta y aceptarla. Esta es la forma recomendada de marcar una pregunta como "resuelta" y que no necesita mucho más apoyo.
hasienda
2
Desafortunadamente, tengo este problema, pero un extra "Listen 443" no es la causa ...
Cerin
1
Tuve exactamente el mismo problema. Se eliminó la parte superior 443 de ports.conf, se reinició apache2 y todo funcionó.
PrestonDocks
8 años después y otro individuo que no quiere mencionar su nombre se encuentra con este problema. Y, por supuesto, 8 años después, al buscar el mensaje de error, se produce un desbordamiento de pila. Es por eso que solo tuve que anunciar un mensaje;)
NME New Media Entertainment

Respuestas:

228

Ustedes se van a reír de esto. Tenía un Listen 443 adicional en ports.conf que no debería haber estado allí. Eliminar eso resolvió esto.

aleta de tiburón
fuente
44
Gracias, el mío estaba en /etc/httpd/conf.d/ssl.conf
Nabil Kadimi
15
Actualicé apache con YUM y creó un nuevo archivo ssl.conf con otro listen 443 ....
zzarbi
4
Gracias ... Algún día, espero tener un servidor web tan ampliamente implementado como apache que no sea un complicado dolor de cabeza para configurar
Mike Pennington
3
En mi caso, una actualización de httpd en Centos provocó la reinstalación de ssl.conf ... pero declaramos Listen 443 en un archivo de configuración diferente. Puppet elimina ssl.conf ... pero puppet se ejecuta en pasajero / httpd. Así que el agente títere nunca tuvo la oportunidad de eliminar ssl.conf, por lo que había 2 directivas Listen 443, como se describe aquí.
rfay
1
Ejecuté certbot, que insertó otra entrada 443 en mi archivo de configuración. ¡Gracias!
Senica Gonzalez
16

Gracias por sus respuestas, en las versiones de apache 2.4.x si instaló ssl_module usando el comando yum, no desea agregar el puerto : 443 en el archivo httpd.conf (principal),

Para averiguar el puerto 443 en los archivos de configuración,

# grep '443' /etc/httpd/conf.d/*

/etc/httpd/conf.d/ssl.conf:Listen 443 https
/etc/httpd/conf.d/ssl.conf:<VirtualHost _default_:443>
/etc/httpd/conf.d/ssl.conf:#ServerName www.example.com:443

# grep '443' /etc/httpd/conf/httpd.conf 
Listen 443

Simplemente elimine la línea o ordénela (Escuche 443) del archivo httpd.conf .

lakshmikandan
fuente
1
¡Esto hizo el truco! En mi caso, ese error apareció después de un yum update:-P
Pathros
15

Estoy agregando otra respuesta a esto ya que tuve el mismo problema y lo resolví de la misma manera: había instalado SSL en apache2 usando a2enmod ssl, que parece haber agregado una configuración adicional en /etc/apache2/ports.conf:

NameVirtualHost *:80
Listen 80

NameVirtualHost *:443
Listen 443

<IfModule mod_ssl.c>
    Listen 443
</IfModule>

<IfModule mod_gnutls.c>
    Listen 443
</IfModule>

Tuve que comentar el primero Listen 443después de la NameVirtualHost *:443directiva:

NameVirtualHost *:443
#Listen 443

Pero creo que también puedo dejarlo y comentar los demás. De todos modos, gracias por la solución :)

Matthieu
fuente
4

Para todos los demás que no tienen directivas de escucha duplicadas ni procesos en ejecución en el puerto: compruebe que no incluye accidentalmente ports.conf dos veces en apache2.conf (como hice yo debido a una combinación incorrecta).

Andreas Gohr
fuente
3

Yo uso apache versión 2.4.27, también tengo este problema, lo resolví mediante modificar

el conf / extra / httpdahssl.conf, comenta el contenido de 18 líneas (Escuche 443 https), funciona bien.

tao.zhang
fuente
¿Puedes usar https si comentas esta línea?
Hamfri
1

Cometí el error de nombrar incorrectamente un archivo de respaldo en el directorio /etc/httpd/conf.d. En el archivo README indica que recorre alfabéticamente todos los archivos .conf.

Había creado ssl- < date > .conf (destinado a ser una copia de seguridad) y se estaba cargando antes de ssl.conf. Vinculaba el puerto: 443 basado en ssl- < date > .conf y fallaba en ssl.conf.

Una vez que cambié el nombre del archivo de respaldo a ssl.conf. < Fecha >, el servicio se inició sin problemas.

Como nota, el servidor en el que estoy está ejecutando RHEL 6

Mike F
fuente
Me pasó algo como esto, así que pensé en mencionarlo en caso de que ayude a alguien. Cambié el nombre de ssl.conf para recordar que estaba configurado para usar letsencrypt. Más tarde, permití que sucediera lo que pensé que era una actualización menor de Apache. Esa actualización devolvió ssl.conf a conf.d, creando el conflicto en las declaraciones de escucha. No estoy seguro de qué hacer al respecto, excepto estar atento. Si me hubiera quedado con el nombre de archivo ssl.conf predeterminado, ¡la actualización probablemente lo habría golpeado!
Brian Doherty
Hice lo mismo y Apache no pudo iniciarse. Quité ese archivo de respaldo y comenzó a funcionar. Muchas gracias por esta respuesta, eres un salvavidas.
Umesh Patil
1

Permítanme agregar una razón más para el error. En httpd.conf incluí explícitamente

Include etc/apache24/extra/httpd-ssl.conf

mientras que no notó el comodín anterior

Include etc/apache24/extra/*.conf

Grepping 443 no encontrará esto.

Vladimir Botka
fuente
0

Estoy usando Ubuntu. Acabo de deshabilitar el modo ssl de apache2 y funcionó para mí.

a2dismod ssl

y luego reinicia apache2.

service apache2 restart
Baran
fuente
0

He comprobado y solucionado lo siguiente y lo he resuelto:

  1. archivo httpd.conf en /etc/httpd/conf/
  2. Verificó la IP y el puerto de escucha, por ejemplo 10.12.13.4:80
  3. Puerto (s) de escucha adicional eliminado
  4. Reinició el servicio httpd para tomar
Mistry Rajorshe
fuente
0

Encuentro el problema en windows7, phpeclipse, cuando inicio el XAMPP. Mi solucion es:

  • 1.Comentó el \ xampp \ apache \ conf \ httpd.conf -> line171 -> #LoadModule ssl_module modules / mod_ssl.so

  • 2.line539 -> #Incluir conf / extra / httpd-ssl.conf

o puede cambiar el puerto 443 a otro

XuLu
fuente
0

Secundé la respuesta de Matthieu

Comenté # Escuchar 443 en el archivo httpd-ssl y se puede iniciar apache

Porque el archivo ya tiene VirtualHost predeterminado : 443

Sitti Munirah Abdul Razak
fuente
0

En httpd.conf en su lugar:

Listen *:443

necesitas escribir Listen 127.0.0.1:443 Funciona para mí.

Aleksey Povar
fuente
Solo lo usaría 127.0.0.1en una declaración de escucha si quisiera restringir la aceptación de conexiones solo a la interfaz de bucle de retorno del host local. La eliminación de una Listendeclaración duplicada , como muchos afirman, es la solución más típica. Si tenía duplicados, *:443entonces cambiar uno para usar 127.0.0.1no debería haber hecho una diferencia, ya que el otro *:443todavía intentaría vincular el mismo puerto 127.0.0.1.
Graham Dumpleton
0

Tuve el mismo problema, se debió a múltiples copias de ssl.conf En /etc/httpd/conf.d - Solo debería haber una.

Desconocido
fuente
Lamento decirlo, pero esto es un comentario, no una respuesta. Si tiene más información sobre la solución y lo que averiguó sobre el caso, háganoslo saber.
RobertS apoya a Monica Cellio