„Make_sock: nie można powiązać z adresem [::]: 443” podczas ponownego uruchamiania Apache (instalowanie trac i mod_wsgi)


92

Próbuję zainstalować trac i mod_wsgi przez SSL. Próbowałem zainstalować go ręcznie, ale nie wyszło to tak dobrze, więc zacząłem śledzić to: trac-on-ubuntu

Pominąłem część svn, ponieważ zamiast tego chciałbym użyć git. Po pierwszej edycji httpd.conf:

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

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

Zrestartowałem Apache tylko po to, aby uzyskać ten błąd:

* Restarting web server apache2                                                    

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

                                                                     [ OK ]

To nic nie dało.

 netstat -anp | grep 443 
 fuser 443/tcp

Wykonanie tego nie przyniosło niczego poza poleceniem grep, które wykonałem:

ps -aux | grep httpd

Dlaczego mówi, że coś innego korzysta z portu, kiedy nic się nie wyświetla?

EDYCJA: Będziecie się z tego śmiać. Miałem dodatkowy Listen 443 w ports.conf, którego nie powinno tam być. Usunięcie tego rozwiązało problem.


Dobrze, że znalazłeś dodatkowe oświadczenie Listen. Miałem zamiar zasugerować tylko tę możliwą przyczynę, dopóki nie przejdę do twojej edycji. :-)
Graham Dumpleton

3
Możesz ponownie wpisać swoją zmianę do odpowiedzi i zaakceptować ją. Jest to zalecany sposób oznaczania pytania jako „rozwiązanego” i niewymagającego większego wsparcia.
hasienda

2
Niestety mam ten problem, ale dodatkowa "Słuchaj 443" nie jest przyczyną ...
Cerin

1
Miałem dokładnie ten sam problem. Usunąłem najpopularniejsze 443 z ports.conf, zrestartowałem apache2 i wszystko działało.
PrestonDocks

8 lat później i inna osoba, która nie chce wymieniać swojego nazwiska, napotkała ten problem. I oczywiście 8 lat później wyszukując komunikat o błędzie, trafiasz na przepełnienie stosu. Dlatego właśnie musiałem zamieścić wiadomość;)
NME New Media Entertainment

Odpowiedzi:


228

Będziecie się z tego śmiać. Miałem dodatkowy Listen 443 w ports.conf, którego nie powinno tam być. Usunięcie tego rozwiązało problem.


44
Dzięki, mój był w /etc/httpd/conf.d/ssl.conf
Nabil Kadimi

15
I aktualizowany apache z yum, i stworzył nowy plik ssl.conf z innego słuchać 443 ....
zzarbi

4
Dziękuję ... Mam nadzieję, że pewnego dnia serwer sieciowy tak szeroko rozpowszechniony jak apache, który nie jest skomplikowanym problemem w konfiguracji
Mike Pennington,

3
W moim przypadku aktualizacja httpd na Centos spowodowała ponowną instalację ssl.conf ... ale deklarujemy Listen 443 w innym pliku konfiguracyjnym. Puppet usuwa ssl.conf ... ale marionetka działa w sekcji pasażerskiej / httpd. Agent marionetkowy nigdy nie miał szansy usunąć pliku ssl.conf, więc były 2 dyrektywy Listen 443, jak opisano tutaj.
rfay

1
Uruchomiłem certbot, który wstawił kolejny wpis 443 do mojego pliku konfiguracyjnego. Dzięki!
Senica Gonzalez

16

Dziękuję za odpowiedzi, na wersjach Apache 2.4.x jeśli zainstalowałeś ssl_module za pomocą polecenia yum, nie chcesz dodawać portu : 443 w pliku httpd.conf (głównym),

Aby znaleźć port 443 w plikach konfiguracyjnych,

# 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

Po prostu usuń wiersz lub wydaj polecenie (Listen 443) z pliku httpd.conf .


1
To załatwiło sprawę! W moim przypadku ten błąd pojawił się po yum update:-P
Pathros

15

Dodaję kolejną odpowiedź, ponieważ miałem ten sam problem i rozwiązałem go w ten sam sposób: zainstalowałem SSL na apache2 przy użyciu a2enmod ssl, który wydaje się, że dodałem dodatkową konfigurację w /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>

Musiałem skomentować pierwszy Listen 443po NameVirtualHost *:443dyrektywie:

NameVirtualHost *:443
#Listen 443

Ale myślę, że równie dobrze mogę na to pozwolić i skomentować innych. W każdym razie dziękuję za rozwiązanie :)


4

Dla wszystkich, którzy nie mają zduplikowanych dyrektyw Listen i żadnych uruchomionych procesów na porcie: sprawdź, czy przypadkowo nie dołączasz dwukrotnie ports.conf do apache2.conf (tak jak zrobiłem z powodu łączenia znaczników).


3

Używam apache w wersji 2.4.27, również mam ten problem, rozwiązałem go poprzez modyfikację

conf / extra / httpdahssl.conf, skomentuj zawartość 18 linii (Listen 443 https), działa dobrze.


Czy możesz używać https, jeśli skomentujesz tę linię?
Hamfri

1

Popełniłem błąd, nieprawidłowo nazywając plik kopii zapasowej w katalogu /etc/httpd/conf.d. W README stwierdza, że ​​przechodzi alfabetycznie przez wszystkie pliki .conf.

Utworzyłem ssl- < date > .conf (miał być kopią zapasową) i ładował się przed ssl.conf. To wiązało port: 443 w oparciu o ssl- < date > .conf i kończyło się niepowodzeniem w ssl.conf.

Po zmianie nazwy pliku kopii zapasowej na ssl.conf. < Data > usługa została uruchomiona bez problemu.

Uwaga: serwer, na którym jestem, działa pod kontrolą RHEL 6


Coś takiego mi się przydarzyło, więc pomyślałem, że wspomnę o tym na wypadek, gdyby to komuś pomogło. Zmieniłem nazwę ssl.conf, aby pamiętać, że został skonfigurowany do korzystania z letsencrypt. Później pozwoliłem na to, co uważałem za drobną aktualizację Apache. Ta aktualizacja umieściła ssl.conf z powrotem w conf.d, powodując konflikt w instrukcjach Listen. Nie wiem, co z tym zrobić, poza czujnością. Gdybym utkwił przy domyślnej nazwie pliku ssl.conf, aktualizacja prawdopodobnie by go zepsuła!
Brian Doherty,

Zrobiłem to samo i Apache nie mógł zacząć. Usunąłem ten plik kopii zapasowej i zaczął działać. Bardzo dziękuję za tę odpowiedź, ratujesz życie.
Umesh Patil

1

Dodam jeszcze jeden powód błędu. W httpd.conf zamieściłem wyraźnie

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

podczas gdy nie zauważył poprzedniego symbolu wieloznacznego

Include etc/apache24/extra/*.conf

Grepping 443 tego nie znajdzie.


0

Używam Ubuntu. Właśnie wyłączyłem tryb ssl w Apache2 i zadziałał dla mnie.

a2dismod ssl

a następnie zrestartowałem Apache2.

service apache2 restart

0

Sprawdziłem, naprawiłem i rozwiązałem -

  1. httpd.conf pod adresem /etc/httpd/conf/
  2. Sprawdzono nasłuchujący IP i port np 10.12.13.4:80
  3. Usunięto dodatkowe porty nasłuchowe
  4. Zrestartowałem usługę httpd w celu podjęcia

0

Spotykam się z problemem w windows7, phpeclipse, kiedy uruchamiam XAMPP. Moje rozwiązanie to:

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

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

lub możesz zmienić port 443 na inny


0

Poparłem odpowiedź Matthieu

Skomentowałem #Listen 443 w pliku httpd-ssl i można uruchomić apache

Ponieważ plik ma już wartość domyślną VirtualHost : 443


0

Zamiast tego w httpd.conf:

Listen *:443

musisz napisać Listen 127.0.0.1:443 To działa dla mnie.


Można by użyć tylko 127.0.0.1w sposób słuchać instrukcji jeśli chce ograniczyć akceptację połączeń do pętli lokalnej przyjmującej jedynie interfejs powrotem. Usunięcie zduplikowanego Listenoświadczenia, jak twierdzi wielu, jest bardziej typowym rozwiązaniem. Jeśli masz duplikaty, włączone *:443, to zmiana jednego z nich 127.0.0.1nie powinna zrobić różnicy, ponieważ drugi *:443nadal próbowałby połączyć ten sam port 127.0.0.1.
Graham Dumpleton

0

Miałem ten sam problem z powodu wielu kopii pliku ssl.conf w /etc/httpd/conf.d - Powinien być tylko jeden.


Przykro mi to mówić, ale to jest komentarz, a nie odpowiedź. Jeśli masz więcej informacji o rozwiązaniu, co dowiedziałeś się o sprawie, daj nam znać.
RobertS wspiera Monikę Cellio
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.