Localhost odmawia połączenia po aktualizacji do Sierra OS

8

I pobraniu i zainstalowaniu apache, php, phpmyadmin, mysqlpoprzez DarwinPorts. Wszystko działało dobrze przed aktualizacją do systemu macOS Sierra.

Po aktualizacji za każdym razem, gdy próbuję uzyskać dostęp do localhost, pojawia się następujący komunikat o błędzie: „Nie można uzyskać dostępu do tej witryny, localhost odmówił połączenia”.

Dzieje się tak, chociaż moje ustawienia w apache http.confpliku pozostają takie same.

Podaję również zawartość pliku hosts

127.0.0.1       localhost
255.255.255.255 broadcasthost
::1             localhost

Jakakolwiek rada?

vasilisdmr
źródło
Czy sprawdziłeś, czy wszystkie te usługi rzeczywiście działają?
samh
jeśli uruchomię polecenie „sudo port load apache2”, otrzymam następującą odpowiedź z terminala „/opt/local/etc/LaunchDaemons/org.macports.apache2/org.macports.apache2.plist: usługa już załadowana”, więc jestem prawie pewien, że apache działa.
vasilisdmr
Dodaj treść pliku / etc / hosts. Czy 127.0.0.1 działa? Może powiązane: apple.stackexchange.com/questions/252466/…
klanomath
Czy uruchomiłeś test konfiguracji, aby upewnić się, że wszystko jest w porządku? Miałem podobny problem ze standardową instalacją Apache, coś w aktualizacji zepsuło jeden z zależnych pakietów.
dr.nixon
Właśnie wykonałem test konfiguracji, a wyniki były następujące: „httpd: apr_sockaddr_info_get () nie powiodło się dla nazwy użytkownika-MacBook-Pro.local” „httpd: Nie można wiarygodnie określić w pełni kwalifikowanej nazwy domeny serwera, używając 127.0.0.1. Ustaw„ ServerName „globalnie, aby ukryć ten komunikat”. Postępowałem zgodnie z tym samouczkiem i „ mdshaonimran.wordpress.com/2011/10/17/… ” i błąd zniknął, ale nadal otrzymuję komunikat odmowy podczas próby odwiedzenia localhost.
vasilisdmr

Odpowiedzi:

3

Rozwiązałem to, komentując ten wiersz z mojego httpd.conf:

LoadModule unique_id_module modules/mod_unique_id.so

Nie znam się dobrze na mod_unique_id , ale nie wydaje mi się, żeby mieć go na moim lokalnym serwerze programistycznym (twoja sytuacja może być inna).

Unique_id_module

Ten moduł zapewnia magiczny token dla każdego żądania, które gwarantuje unikalność dla „wszystkich” żądań w bardzo szczególnych warunkach. Unikalny identyfikator jest nawet unikalny na wielu komputerach w odpowiednio skonfigurowanym klastrze maszyn. Zmienna środowiskowa UNIQUE_ID jest ustawiona na identyfikator dla każdego żądania. Unikalne identyfikatory są przydatne z różnych powodów, które wykraczają poza zakres tego dokumentu.

slackernrrd
źródło
11

Po aktualizacji do MacOS Sierra, Apache httpd porusza stary httpd.confdo httpd.conf.pre-updatei umieścić nową. Aby zadziałać praca localhost, spróbuj wykonać poniższą procedurę:

cd /etc/apache2/  
sudo mv httpd.conf httpd.conf-afterupdate  
sudo mv httpd.conf.pre-update httpd.conf  
sudo apachectl configtest  
sudo apachectl restart  

Następnie przetestuj:

curl -I -L localhost
Vivek Sathisan
źródło
3
sudo apachectl configtest dał mi wszystkie błędy! Oszczędzanie życia, dziękuję.
Joshua Kissoon
2
Dziękuję bardzo za odpowiedź! Przy okazji, jak wymyśliłeś to rozwiązanie? Nie otrzymałem żadnych błędów z configtestem (czy miałem to zrobić?) I szczerze mówiąc, sam nie wiedziałbym, od czego zacząć szukać odpowiedzi.
Rahul Govind
Oszczędzasz mój wielki czas, wielkie dzięki.
Sila Khatun
3

Miałem ten sam problem. Pobiegłem sudo apachectl configtesti dostałem wiadomość:

AH00526: Błąd składniowy w wierszu 6 pliku /private/etc/apache2/other/default-ssl.conf:

Nieprawidłowe polecenie „SSLEngine”, być może niepoprawnie napisane lub zdefiniowane przez moduł nieuwzględniony w konfiguracji serwera

Właśnie zmieniłem nazwę domyślnego pliku konfiguracyjnego ssl, więc nie można go już ładować. Apache uruchomi się później, wszystko wróciło.

Matthias Lill
źródło
1

Miałem ten sam problem i rozwiązałem komentowanie mod_proxy_hckeck w httpd.conf

LoadModule moduł_ proxy_hcheck_maxle libexec / apache2 / mod_proxy_hcheck.so

ZMIENIONO: W apache.org odkryłem, że ten moduł wymaga mod_watchdog, ale ten moduł jest komentowany, więc po prostu skomentuj mod_proxy_hcheck lub odkomentuj mod_watchdog LoadModule moduł watchdog_module libexec / apache2 / mod_watchdog.so

mam nadzieję, że to zadziała!

Gustavo van Tol
źródło
Komentowanie mod_proxy_hcheck również rozwiązało to dla mnie. Wcześniej Apache po cichu nie mógł się połączyć ze swoim portem.
Otto G
1

Miałem ten sam problem. Na szczęście udało mi się rozwiązać problem przez przypadek. Po błędzie ładowania walizki Fusion zdałem sobie sprawę, że problem nie jest spowodowany przez apache. Problemem jest główny plik / etc /.

Zastąp plik Hosts

Możesz pobrać domyślny plik hostów Mac OS ze strony http://cs.us.extensis.com/HostsFile/hosts.zip .

Rozpakuj plik hosts; nie powinien mieć rozszerzenia pliku W Finderze przejdź do Idź> Idź do folderu Aby „Go the folder” wpisać „/ etc” i nacisnąć Enter Przeciągnij plik hosts do folderu etc; po wyświetleniu pytania wprowadź nazwę użytkownika i hasło administratora Mac OS Po umieszczeniu pliku hosts w folderze etc:

Otwórz aplikację Terminal Wpisz następującą komendę i naciśnij Enter: sudo chmod 644 / etc / hosts Wprowadź hasło do systemu Mac OS i naciśnij klawisz Enter Podczas wpisywania hasła do systemu Mac OS w oknie Terminal mogą pojawiać się wypunktowania, kluczowe ikony lub nic w używanej wersji systemu Mac OS. To normalne.

Wyczyść pamięć podręczną DNS systemu Mac OS

W oknie terminala wprowadź następujące polecenie i naciśnij klawisz Enter: sudo killall -HUP mDNSResponder Uruchom ponownie komputer Mac Przyczyna

Walizka Fusion używa pliku hosts, aby znaleźć rdzeń typu i połączyć się z nim za pomocą adresu sprzężenia zwrotnego (127.0.0.1 lub localhost). Jeśli plik hosts nie jest obecny lub pozycja 127.0.0.1 wskazuje na inną nazwę niż localhost, zobaczysz jeden z komunikatów o błędach wyświetlonych powyżej.

Jeśli Suitcase Fusion nie może rozpoznać localhost na 127.0.0.1, pojawi się pierwszy komunikat o błędzie; jeśli rdzeń typu nie może rozpoznać localhost na 127.0.0.1, pojawi się drugi komunikat o błędzie.

Jeśli plik hosts został zmodyfikowany, może zostać usunięty podczas aktualizacji do nowej wersji Mac OS. Aplikacje innych firm lub narzędzia sieciowe mogą również niepoprawnie zmieniać wpis localhost. Aby uzyskać więcej informacji, zobacz Jak edytować plik Hosts w Mac OS X za pomocą terminala.

Chris
źródło