localhost не работает на OS X Yosemite


11

У меня работает локальный сервер Apache моего Mac и когда я посещаю localhost, я получаю стандартную страницу «Это работает».Страница "Это работает" была кэширована - она ​​фактически сломана так же, как 127.0.0.1. Когда я посещаю 127.0.0.1, однако хром дает мне Error code: ERR_CONNECTION_REFUSED. Итак, я побежал telnet. Результат:

harryg$ 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

Но scutilдает это:

harryg$ scutil -r localhost
Reachable,Local Address,Directly Reachable Address

Есть идеи, почему это не работает? Apache прослушивает какой-то другой порт? Если так, как я могу проверить? У меня есть несколько локальных vhosts, которые должны быть доступны для некоторых локальных .devвиртуальных хостов, которые я добавил в мой файл hosts. Например, 127.0.0.1 home.devони тоже дают ошибку выше.

редактировать

Кажется, ничего не слушает порт 80. Когда я запускаю, sudo lsof -iTCP:80 -sTCP:LISTENя не получаю вывод. Кажется, что работает Apache - я запускал apachectlrestart` много раз.


не могли бы вы проверить, работает ли ваш сайт с этим инструментом; clickontyler.com/web-sharing
siniradam

Ваш localhostработает отлично. Apache нет. Обновите свой вопрос, чтобы представить этот факт, и не забудьте включить соответствующие биты вашей конфигурации Apache и его файлы журналов.
Даниэль Б

У меня была похожая проблема, и я смог ее решить: stackoverflow.com/questions/26454160/…
Xaver

Обычный способ сделать это на Mavericks / Yosemite - это перенести порт с порта 80 на порт 8080. См. Gist.github.com/mindw0rk/dcc6c02a92b49bde0f13 для примера того, как настроить это с помощью pfctl, затем измените конфигурацию apache, чтобы использовать Слушайте 8080. Вы сможете подключиться к порту 80, и трафик будет перенаправлен на Apache. (в нашем магазине разработчика все используют эту настройку, кроме как с nginx)
bazzargh

Ответы:


11

Проверьте конфигурацию Apache с помощью этой команды:

sudo apachectl -t

Это проверяет файлы конфигурации и сообщает вам, если есть ошибка. Запуск sudo apachectl startне выводит синтаксические ошибки файла конфигурации в журналы по некоторым причинам.


Точно такая же проблема здесь. sudo apachectl -tвозвращается Syntax OK. Что тогда?
Pmpr

2

Эта команда должна сказать вам, какой порт и какой IPv (4/6) адрес слушает ваш Apache:

sudo lsof -P -n -iTCP -sTCP:LISTEN | grep httpd

Если вы ничего не слушаете, что вы получаете от этого?

sudo serveradmin status web
sudo serveradmin settings web
ps -acx | grep http

,

В крайнем случае:

sudo serveradmin stop web

Откройте Console.app и разместите закладку

sudo serveradmin start web

Проверьте логи


Возникла проблема с файлом конфигурации, из-за которой Apache вообще не запускался! Кэшированные страницы привели меня к мысли, что он работает для локального хоста, но не для моего локального IP.
Гарри

Хорошо, круто, serveradmin запускает httpd и, как правило, генерирует журналы запуска, вам удалось решить проблему? что такое сообщение об ошибке плз (для других участников)?
Флориан Бидабе

Да, это решено. Я забыл раскомментировать модуль apache vhosts, поэтому Apache обнаружил ошибку, когда увидел VirtualDocumentRouteв моем файле конфигурации vhosts.
Гарри

2
Привет, Гарриг, если у тебя будет возможность обновить статус на решено.
Флориан Бидабе

У меня была эта проблема и тихая ошибка при запуске apache. Ничего в логах, из-за синтаксической ошибки в конфиге. Эта команда обнаружила это:sudo apachectl -t
Мэтт Гибсон

0

Я считаю, что порт по умолчанию - 8080, но вы можете проверить файл httpd.conf на наличие портов, которые прослушивает Apache.


8080 не работает, и в моем конфигурационном файле есть Listen 80.
Harryg

Вы видите, как работает Apache, возможно, с "ps aux"? Кроме того, журнал ошибок показывает что-нибудь? Расположение по умолчанию должно быть / var / log / apache2 / error_log

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