Когда я пытаюсь получить доступ к locahost: 8080, я получаю
The localhost page isn’t working
localhost didn’t send any data.
ERR_EMPTY_RESPONSE
но если я попробую:
127.0.0.1:8080, я получаю ответ, который ищу
Я считаю, что это как-то связано с httpd (apache), который я только что обновил с помощью homebrew httpd24 (httpd.2.4)?
Я выполнил инструкции по обновлению с этого сайта: https://getgrav.org/blog/macos-sierra-apache-multiple-php-versions
После установки httpd24 с brew у вас есть две совершенно разные среды веб-сервера Apache:
Оба имеют разные файлы конфигурации и двоичные файлы apachectl (и другие). Первый установлен в / usr / local / Cellar / httpd24, а его двоичные файлы связаны с / usr / local / bin. Бинарные файлы macOS, связанные с httpd, находятся в / usr / sbin.
В зависимости от вашей переменной PATH (введите echo $PATH
чтобы получить это) sudo apachectl [cmd]
либо управляет первой, либо второй средой Apache.
После установки brew ПУТЬ по умолчанию должен быть /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
который поддерживает httpd24. Однако вы можете управлять Apache в macOS, используя полный путь (/ usr / sbin / apachectl).
Если у вас есть другой путь, который не поддерживает / usr / local / bin по сравнению с / usr / sbin, это наоборот. Чтобы получить путь избранных apachectl вы также можете просто ввести which apachectl
.
Проверить это с /usr/local/bin/apachectl -S
который должен дать:
VirtualHost configuration:
ServerRoot: "/usr/local/opt/httpd24"
Main DocumentRoot: "/usr/local/var/www/htdocs"
Main ErrorLog: "/usr/local/var/log/apache2/error_log"
Mutex default: dir="/usr/local/var/run/apache2/" mechanism=default
Mutex mpm-accept: using_defaults
PidFile: "/usr/local/var/run/apache2/httpd.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="daemon" id=1 not_used
Group: name="daemon" id=1 not_used
и /usr/sbin/apachectl -S
VirtualHost configuration:
ServerRoot: "/usr"
Main DocumentRoot: "/Library/WebServer/Documents"
Main ErrorLog: "/private/var/log/apache2/error_log"
Mutex default: dir="/private/var/run/" mechanism=default
Mutex mpm-accept: using_defaults
Mutex proxy-balancer-shm: using_defaults
Mutex proxy: using_defaults
PidFile: "/private/var/run/httpd.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="_www" id=70 not_used
Group: name="_www" id=70 not_used
Есть нет взаимно используемые файлы / папки.
Они также используют разные стандартные файлы конфигурации:
/usr/local/bin/apachectl -t -D DUMP_INCLUDES
Included configuration files:
(*) /usr/local/etc/apache2/2.4/httpd.conf
Однако команда не работает должным образом для исходного (macOS) apachectl и дает только следующее: Синтаксис ОК.
Если вы запускаете оба httpds (настраивая разные порты здесь: 80: macOS; 8080 httpd24 - отметьте это в соответствующих файлах конфигурации) ps -aef | grep httpd | grep -v grep
покажет следующее:
0 76 1 0 4:54pm ?? 0:00.13 /usr/local/opt/httpd24/bin/httpd -D FOREGROUND
1 219 76 0 4:54pm ?? 0:00.00 /usr/local/opt/httpd24/bin/httpd -D FOREGROUND
1 220 76 0 4:54pm ?? 0:00.00 /usr/local/opt/httpd24/bin/httpd -D FOREGROUND
1 221 76 0 4:54pm ?? 0:00.00 /usr/local/opt/httpd24/bin/httpd -D FOREGROUND
1 222 76 0 4:54pm ?? 0:00.00 /usr/local/opt/httpd24/bin/httpd -D FOREGROUND
1 223 76 0 4:54pm ?? 0:00.00 /usr/local/opt/httpd24/bin/httpd -D FOREGROUND
1 4239 76 0 5:06pm ?? 0:00.00 /usr/local/opt/httpd24/bin/httpd -D FOREGROUND
0 8251 1 0 5:45pm ?? 0:00.08 /usr/sbin/httpd -D FOREGROUND
70 8261 8251 0 5:46pm ?? 0:00.00 /usr/sbin/httpd -D FOREGROUND
Первые семь pid принадлежат httpd24, последние два - httpd macOS - проверьте указанные двоичные пути! и nmap localhost
:
Starting Nmap 7.31 ( https://nmap.org ) at 2016-12-22 18:00 CET
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00039s latency).
Other addresses for localhost (not scanned): ::1 fe80::1
Not shown: 499 closed ports, 498 filtered ports
PORT STATE SERVICE
80/tcp open http
8080/tcp open http-proxy
В твоем личное сообщение чата вы можете ясно видеть, что httpd24 не работает вообще, но httpd macOS является.
Чтобы отключить httpd macOS, просто запустите sudo /usr/sbin/apachectl stop
и дополнительно sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist
(просто чтобы убедиться).
Затем сбросьте brew service start ...
путем остановки службы и установки реального демона plist, как рекомендовано в связанном руководстве.
sudo cp -v /usr/local/Cellar/httpd24/2.4.23_2/homebrew.mxcl.httpd24.plist /Library/LaunchDaemons
sudo chown -v root:wheel /Library/LaunchDaemons/homebrew.mxcl.httpd24.plist
sudo chmod -v 644 /Library/LaunchDaemons/homebrew.mxcl.httpd24.plist
sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.httpd24.plist
Перезагрузка. Если вы все еще получаете ошибку при подключении с localhost: 8080 к локальному сайту разработчика, закомментируйте fe80::1%lo0 localhost
в / etc / hosts. В моей среде это работает с участием хотя эта строка.
После дальнейших расследований выясняется, что виновником является неправильно настроенный веб-прокси (входящий в состав ESET Internet Security / Antivirus). Добавив правильный localhost
исключить должно быть возможно решить проблему.