проблема с доступом к localhost в Mac OS X Mavericks… все работало нормально, пока я не перезагрузился сегодня


16

Я озадачен проблемой, с которой сталкиваюсь, и буду очень признателен за помощь в ее решении.

У меня iMac под управлением Mac OS X Mavericks 10.9.2

Я настроил свой Apache для обслуживания документов из корня сервера / Volume / sites /

Я использую динамические виртуальные хосты, поэтому, просто добавив каталог с суффиксом * .dev, он станет виртуальным хостом.

Мой файл hosts довольно прост:

##
# 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

Мой файл httpd-vhosts.conf выглядит следующим образом:

#
# 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/

Это все сработало. И я ничего не изменил в моем файле httpd.conf.

Пока не могу загрузить localhost

Я тоже не могу загрузить 127.0.0.1

Я запустил команду, sudo lsof -i :80 | egrep "PID|LISTEN"чтобы проверить, прослушивает ли какой-либо PID порт 80. Результаты были пустыми.

Я попытался перезапустить Apache, а также остановить и затем запустить Apache с помощью

sudo apachectl stop sudo apachectl start

sudo apachectl restart

Ничего не работает

Я проверил, работает ли apache, введя команду httpd -v

Возвращение было:

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

Я попытался подключиться к localhost и 127.0.0.1 через командную строку со следующим результатом:

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 ~

Пожалуйста помоги.


Что вы сделали с этой проблемой, так как я испытываю здесь то же самое :(
Pmpr

Ответы:


37

Была такая же проблема. Я удалил одну из папок моего проекта, и она сломалась. В этом случае конфиги сайта должны быть удалены из httpd-vhosts.conf и httpd.conf.

Пытаться ping 127.0.0.1

apachectl configtest может помочь вам обнаружить проблему.


7
Абсолютно правильно, apachectl configtestнужно быть вашей первой попыткой! Благодарю.
Лукас Серафим

Предупреждение: DocumentRoot [/ Users / me / blah / blah] не существует, вы можете быстро найти оскорбительную строку с помощьюsudo cd / && grep -rn "/Users/me/blah/blah" *
Shanimal

4

Возможно, проблема в том, что файл hosts был поврежден из исходной кодировки ASCII. Я очистил все пробелы и вставил в него вкладки, запустил sudo killall -HUP mDNSResponder(вы можете сделать это вместо перезагрузки) и после этого все заработало.


1
Да, /etc/hostsбыл поврежден - повторяющиеся строки, некоторые пробелы, где когда-то были вкладки ... теперь, чтобы выяснить, как это произошло ...
LeeGee

3

В моем случае проблема заключалась в том, что папка / private / var / log / apache2 / пропала по неизвестным причинам. Воссоздавая это с

sudo mkdir /private/var/log/apache2

и перезапустить Apache с

sudo apachectl restart

сделал трюк!


2

Отказ в соединениях чаще всего вызывается сервером, который не прослушивает порт.

Синтаксические ошибки или общие ошибки в файле конфигурации приводят к остановке apache при запуске (обычно без сообщения в журналы ошибок или на терминал).

Попробуйте запустить sudo apachectl configtestи посмотреть, если он выводит какие-либо сообщения об ошибках.


-1

Это специфично для Mac. Сначала вы должны включить веб-общий доступ. Для Maveric это можно сделать как в этом уроке. https://www.youtube.com/watch?v=TgiZiTU9JVY Во-вторых, для Mac трафик фильтруется через pfctl (т.е. man pfctl) в Maveric и ipfw (man ipfw) для более старой версии Mac OS, если вам нужно больше, чем port 80


Ответы на разные вопросы должны быть чем-то большим, чем просто ссылка. Это нормально, чтобы включить ссылку, но, пожалуйста, суммируйте или извлеките ее в ответе. Идея состоит в том, чтобы сделать ответ самостоятельно.
nohillside

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.