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


14

Я здивований про проблему, яку я маю, і дуже вдячний за допомогу у її вирішенні.

У мене є iMac під керуванням Mac OS X Mavericks 10.9.2

Я налаштував apache для обслуговування документів з кореня сервера / Том / сайти /

Я використовую динамічні віртуальні хости, тому, просто додавши каталог з суфіксом * .dev, він стає віртуальним хостом.

Файл "Мої хости" досить простий:

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

Будь ласка, допоможіть.


Що ви зробили з цією проблемою, оскільки я відчуваю те ж саме:
Trix

Відповіді:


35

Мав ту ж саму проблему. Я видалив одну з папок мого проекту і він став розбитий. У цьому випадку налаштування сайту повинні бути вилучені з httpd-vhosts.conf і httpd.conf.

Спробуйте ping 127.0.0.1

apachectl configtest може допомогти виявити проблему.


7
Абсолютно правильно, apachectl configtest потрібно бути вашою першою спробою! Дякую.
Lucas Serafim

Попередження: DocumentRoot [/ Users / me / blah / blah] не існує Ви можете швидко знайти порушуючий рядок sudo cd / && grep -rn "/Users/me/blah/blah" *
Shanimal

5

Проблема може полягати в тому, що файл хостів був пошкоджений з оригінального кодування 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, якщо вам потрібно більше, ніж 80


Відповіді на запитання різні повинні бути більше, ніж просто посилання. Це нормально, щоб включити посилання, але, будь ласка, узагальнити або витягти його у відповіді. Ідея полягає в тому, щоб зробити відповідь самостійною.
nohillside

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.