problem z dostępem do localhost w Mac OS X Mavericks… działało dobrze, dopóki nie zrestartowałem się dzisiaj


16

Jestem zaniepokojony moim problemem i naprawdę doceniłbym pomoc w jego rozwiązaniu.

Mam iMaca z systemem Mac OS X Mavericks 10.9.2

Skonfigurowałem mój apache do obsługi dokumentów z katalogu głównego serwera / woluminu / witryn /

Używam dynamicznych hostów wirtualnych, więc po dodaniu katalogu z sufiksem * .dev staje się on hostem wirtualnym.

Plik moich hostów jest dość prosty:

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1         localhost
255.255.255.255   broadcasthost
::1               localhost
fe80::1%lo0       localhost

Mój plik httpd-vhosts.conf jest następujący:

#
# Virtual Hosts
#
# If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at 
# <URL:http://httpd.apache.org/docs/2.2/vhosts/>
# for further details before you try to setup virtual hosts.
#
# You may use the command line option '-S' to verify your virtual host
# configuration.

#
# Use name-based virtual hosting.
#
NameVirtualHost *:80

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any <VirtualHost> block.
#

#allow access to the Hosts directory where your sites are
<Directory "/Volumes/sites">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    #you could configure the following to only allow access from localhost
    Order allow,deny
    Allow from all
</Directory>

#get the server name from the Host: header
UseCanonicalName Off
VirtualDocumentRoot /Volumes/sites/%0/

To wszystko działało. I nic nie zmieniłem w moim pliku httpd.conf.

Jednak nie mogę załadować localhost

Nie mogę również załadować 127.0.0.1

Uruchomiłem polecenie, sudo lsof -i :80 | egrep "PID|LISTEN"aby sprawdzić, czy PID nasłuchuje na porcie 80. Wyniki były puste.

Próbowałem ponownie uruchomić apache, a także zatrzymać, a następnie uruchomić apache

sudo apachectl stop sudo apachectl start

sudo apachectl restart

Nic nie działa.

Sprawdziłem, czy apache działa, wydając polecenie httpd -v

Zwrot był:

Server version: Apache/2.2.26 (Unix)
Server built:   Dec 10 2013 22:09:38

Próbowałem połączyć się z localhost i 127.0.0.1 za pomocą wiersza polecenia z następującym wynikiem:

alisamii at alisamii in ~
$ telnet localhost 80
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
Trying fe80::1...
telnet: connect to address fe80::1: Connection refused
telnet: Unable to connect to remote host
alisamii at alisamii in ~
$ telnet 127.0.0.1 80
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
telnet: Unable to connect to remote host
alisamii at alisamii in ~
$ lynx http://localhost

Looking up localhost
Making HTTP connection to localhost
Alert!: Unable to connect to remote host.

lynx: Can't access startfile http://localhost/
alisamii at alisamii in ~
$ lynx http://127.0.0.1

Looking up 127.0.0.1
Making HTTP connection to 127.0.0.1
Alert!: Unable to connect to remote host.

lynx: Can't access startfile http://127.0.0.1/
alisamii at alisamii in ~

Proszę pomóż.


Co zrobiłeś z tym problemem, ponieważ doświadczam dokładnie tego samego tutaj :(
Pmpr

Odpowiedzi:


38

Miałem ten sam problem. Usunąłem jeden z folderów mojego projektu i został uszkodzony. W takim przypadku konfiguracje witryny należy usunąć z httpd-vhosts.conf i httpd.conf.

Próbować ping 127.0.0.1

apachectl configtest może pomóc w wykryciu problemu.


7
Absolutnie poprawne, apachectl configtestmusisz być pierwszą próbą! Dzięki.
Lucas Serafim

Ostrzeżenie: DocumentRoot [/ Users / me / blah / blah] nie istnieje , możesz szybko znaleźć linię obrażającą za pomocąsudo cd / && grep -rn "/Users/me/blah/blah" *
Shanimal,

4

Problemem może być to, że plik hosts mógł zostać uszkodzony na podstawie oryginalnego kodowania ASCII. Wyczyściłem wszystkie spacje i umieściłem w nim tabulacje, uruchomiłem sudo killall -HUP mDNSResponder(możesz to zrobić zamiast restartu), a potem zadziałało.


1
Tak, /etc/hostsbył zepsuty - zduplikowane linie, niektóre spacje, w których kiedyś były tabulatory ... teraz, aby dowiedzieć się, jak to się stało ....
LeeGee

3

W moim przypadku problem polegał na tym, że folder / private / var / log / apache2 / zaginął z nieznanych przyczyn. Odtwarzanie za pomocą

sudo mkdir /private/var/log/apache2

i restartowanie apache za pomocą

sudo apachectl restart

podstępem!


2

Odrzucone połączenia są najczęściej spowodowane przez serwer, który nie nasłuchuje na porcie.

Błędy składniowe lub ogólne błędy pliku konfiguracyjnego zabiją apache podczas uruchamiania (zwykle bez zgłaszania się do dzienników błędów lub terminala).

Spróbuj uruchomić sudo apachectl configtesti sprawdź, czy wyświetla jakieś komunikaty o błędach.


-1

Jest to specyficzne dla komputerów Mac. Najpierw musisz włączyć udostępnianie sieciowe. W przypadku Maveric można to zrobić tak, jak w tym samouczku. https://www.youtube.com/watch?v=TgiZiTU9JVY Po drugie, w przypadku komputerów Mac ruch jest filtrowany przez pfctl (tj. man pfctl) w Maveric i ipfw (man ipfw) dla starszych wersji Mac OS, jeśli potrzebujesz więcej niż port 80


Odpowiedzi na Ask Different muszą być czymś więcej niż tylko linkiem. Można podać link, ale proszę streść go lub fragmentuj w odpowiedzi. Chodzi o to, aby odpowiedź była samodzielna.
nohillside

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.