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.