"Make_sock: konnte nicht an Adresse [::]: 443 binden" beim Neustart von Apache (Installation von trac und mod_wsgi)

89

Ich versuche, trac und mod_wsgi über SSL zu installieren. Ich habe versucht, es manuell zu installieren, aber das hat nicht so gut geklappt, also habe ich angefangen, folgendes zu befolgen: trac-on-ubuntu

Ich habe den SVN-Teil übersprungen, weil ich stattdessen Git verwenden möchte. Nach der ersten Bearbeitung von httpd.conf:

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

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

Ich habe Apache nur neu gestartet, um diesen Fehler zu erhalten:

* Restarting web server apache2                                                    

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

                                                                     [ OK ]

Dies zu tun zeigte nichts.

 netstat -anp | grep 443 
 fuser 443/tcp

Dies ergab nichts anderes als den Befehl grep, den ich ausgeführt habe:

ps -aux | grep httpd

Warum heißt es, dass etwas anderes den Port verwendet, wenn nichts angezeigt wird?

EDIT: Ihr werdet darüber lachen. Ich hatte eine zusätzliche Listen 443 in ports.conf, die nicht dort hätte sein sollen. Das zu entfernen löste das Problem.

Haifischflosse
quelle
Gut, dass Sie die zusätzliche Listen-Anweisung gefunden haben. Wollte genau das als mögliche Ursache vorschlagen, bis ich zu Ihrer Bearbeitung kam. :-)
Graham Dumpleton
3
Möglicherweise möchten Sie Ihre Bearbeitung in eine Antwort umschreiben und akzeptieren. Dies ist die empfohlene Methode, um eine Frage als "gelöst" zu markieren und nicht viel mehr Unterstützung zu benötigen.
Hasienda
2
Leider habe ich dieses Problem, aber ein zusätzliches "Listen 443" ist nicht die Ursache ...
Cerin
1
Ich hatte genau das gleiche Problem. Das oberste 443 aus der ports.conf entfernt, apache2 neu gestartet und alles hat funktioniert.
PrestonDocks
8 Jahre später stieß eine andere Person, die ihren Namen nicht erwähnen möchte, auf dieses Problem. Und natürlich 8 Jahre später auf der Suche nach der Fehlermeldung, die Sie auf dem Stapelüberlauf landen. Deshalb musste ich nur eine Nachricht hinzufügen;)
NME New Media Entertainment

Antworten:

224

Ihr werdet darüber lachen. Ich hatte eine zusätzliche Listen 443 in ports.conf, die nicht dort hätte sein sollen. Das zu entfernen löste das Problem.

Haifischflosse
quelle
44
Danke, meine war in /etc/httpd/conf.d/ssl.conf
Nabil Kadimi
14
Ich habe Apache mit YUM aktualisiert und eine neue ssl.conf-Datei mit einem anderen Listen erstellt. 443 ....
zzarbi
3
Vielen Dank ... Eines Tages hoffe ich auf einen Webserver, der so weit verbreitet ist wie Apache, der nicht kompliziert zu konfigurieren ist
Mike Pennington,
3
In meinem Fall führte ein Upgrade von httpd unter Centos zu einer Neuinstallation von ssl.conf ... aber wir deklarieren Listen 443 in einer anderen Konfigurationsdatei. Puppe entfernt ssl.conf ... aber Puppe läuft unter Passagier / httpd. Der Puppet Agent hatte also nie die Möglichkeit, die ssl.conf zu entfernen. Daher gab es 2 Listen 443-Anweisungen, wie hier beschrieben.
Rfay
1
Ich habe certbot ausgeführt, der einen weiteren 443-Eintrag in meine Konfigurationsdatei eingefügt hat. Vielen Dank!
Senica Gonzalez
16

Vielen Dank für Ihre Antworten. Wenn Sie in Apache 2.4.x-Versionen ssl_module mit dem Befehl yum installiert haben, möchten Sie den Port 443 nicht in der Datei httpd.conf (main) hinzufügen.

Um den Port 443 in Konfigurationsdateien herauszufinden,

# 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

Entfernen Sie einfach die Zeile oder befehlen Sie sie (Listen 443) aus der Datei httpd.conf .

Lakshmikandan
quelle
1
Das hat es geschafft! In meinem Fall trat dieser Fehler nach einem yum update:-P
Pathros
15

Ich füge eine weitere Antwort hinzu, da ich das gleiche Problem hatte und es auf die gleiche Weise löste: Ich hatte SSL auf apache2 mit installiert a2enmod ssl, was anscheinend eine zusätzliche Konfiguration hinzugefügt hat in /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>

Ich musste das erste Listen 443nach der NameVirtualHost *:443Richtlinie auskommentieren:

NameVirtualHost *:443
#Listen 443

Aber ich denke, ich kann es auch zulassen und die anderen kommentieren. Trotzdem danke für die Lösung :)

Matthieu
quelle
4

Für alle anderen, die keine doppelten Listen-Anweisungen und keine laufenden Prozesse auf dem Port haben: Stellen Sie sicher, dass Sie die Datei ports.conf nicht versehentlich zweimal in apache2.conf einfügen (wie ich es aufgrund einer fehlerhaften Zusammenführung getan habe).

Andreas Gohr
quelle
2

Ich benutze Apache Version 2.4.27, habe auch dieses Problem, löste es durch Modifizieren

In der Datei conf / extra / httpdahssl.conf wird der Inhalt mit 18 Zeilen kommentiert (Listen 443 https). Es funktioniert einwandfrei.

tao.zhang
quelle
1

Ich habe den Fehler gemacht, eine Sicherungsdatei im Verzeichnis /etc/httpd/conf.d falsch zu benennen. In der README wird angegeben, dass alle .conf-Dateien alphabetisch durchsucht werden.

Ich hatte ssl- < Datum > .conf erstellt (als Backup gedacht) und es wurde vor ssl.conf geladen. Es hat den: 443-Port basierend auf der ssl- < Datum > .conf gebunden und ist in der ssl.conf fehlgeschlagen.

Nachdem ich die Sicherungsdatei in ssl.conf. < Datum > umbenannt hatte, wurde der Dienst ohne Probleme gestartet.

Auf dem Server, auf dem ich mich befinde, wird RHEL 6 ausgeführt

Mike F.
quelle
So etwas ist mir passiert, also dachte ich, ich würde es erwähnen, falls es jemandem hilft. Ich habe ssl.conf umbenannt, damit ich mich daran erinnern kann, dass es für die Verwendung von letsencrypt eingerichtet wurde. Später ließ ich zu, was ich für ein kleines Update von Apache hielt. Dieses Update hat ssl.conf wieder in conf.d eingefügt und den Konflikt in Listen-Anweisungen erzeugt. Ich bin mir nicht sicher, was ich dagegen tun soll, außer wachsam zu sein. Wenn ich mich an den Standarddateinamen ssl.conf gehalten hätte, hätte das Update ihn wahrscheinlich überlastet!
Brian Doherty
Ich habe das Gleiche getan und Apache konnte nicht starten. Ich hatte diese Sicherungsdatei entfernt und sie begann zu funktionieren. Vielen Dank für diese Antwort, Sie sind ein Lebensretter.
Umesh Patil
1

Lassen Sie mich noch einen Grund für den Fehler hinzufügen. In httpd.conf habe ich explizit aufgenommen

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

während vorheriger Platzhalter nicht bemerkt

Include etc/apache24/extra/*.conf

Grepping 443 wird dies nicht finden.

Vladimir Botka
quelle
0

Ich benutze Ubuntu. Ich habe gerade den SSL-Modus von Apache2 deaktiviert und es hat bei mir funktioniert.

a2dismod ssl

und dann apache2 neu gestartet.

service apache2 restart
Baran
quelle
0

Ich habe Folgendes überprüft und behoben und es gelöst -

  1. httpd.conf Datei unter /etc/httpd/conf/
  2. Überprüfte die Abhör-IP und den Port, z 10.12.13.4:80
  3. Zusätzliche Abhöranschlüsse wurden entfernt.
  4. Starten Sie den zu verwendenden httpd-Dienst neu
Rajorshe Mistry
quelle
0

Ich stoße auf das Problem in Windows 7, Phpeclipse, wenn ich XAMPP starte. Meine Lösung ist:

  • 1.Kommentierte die \ xampp \ apache \ conf \ httpd.conf -> line171 -> #LoadModule ssl_module modules / mod_ssl.so

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

oder Sie können den 443-Port in einen anderen ändern

XuLu
quelle
0

Ich habe Matthieus Antwort unterstützt

Ich habe #Listen 443 in der httpd-ssl-Datei kommentiert und Apache kann gestartet werden

Da die Datei bereits den VirtualHost- Standard hat : 443

Sitti Munirah Abdul Razak
quelle
0

In httpd.conf stattdessen:

Listen *:443

du musst schreiben Listen 127.0.0.1:443 Es funktioniert für mich.

Aleksey Povar
quelle
Sie würden 127.0.0.1in einer listen-Anweisung nur verwenden, wenn Sie die Akzeptanz von Verbindungen zur lokalen Host-Loop-Back-Schnittstelle einschränken möchten . Das Entfernen von doppelten ListenAussagen, wie von vielen angegeben, ist die typischere Lösung. Wenn Sie Duplikate aktiviert hatten *:443, hätte das Ändern eines zu verwendenden 127.0.0.1nicht wirklich einen Unterschied machen sollen, da der andere *:443immer noch versuchen würde, denselben Port zu binden 127.0.0.1.
Graham Dumpleton
0

Ich hatte das gleiche Problem, war auf mehrere Kopien von ssl.conf zurückzuführen. In /etc/httpd/conf.d - Es sollte nur eine geben.

Unbekannt
quelle
Tut mir leid zu sagen, aber dies ist ein Kommentar, keine Antwort. Wenn Sie weitere Informationen über die Lösung haben, was Sie über den Fall herausgefunden haben, lassen Sie es uns bitte wissen.
RobertS unterstützt Monica Cellio