localhost 在 OS X Yosemite 上无法正常工作

localhost 在 OS X Yosemite 上无法正常工作

我的 Mac 本地 Apache 服务器正在运行当我访问本地主机时,我得到标准的“它有效”页面。“它有效”页面已被缓存 - 事实上它与 127.0.0.1 一样损坏。然而当我访问 127.0.0.1 时,chrome 却给我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 是否正在监听其他端口?如果是,我该如何检查?我有一些本地虚拟主机,这些虚拟主机应该可以通过.dev我已添加到 hosts 文件中的一些本地虚拟主机访问。例如,127.0.0.1 home.dev但它们也给出了上述错误。

编辑

似乎没有任何东西在监听端口 80。运行时sudo lsof -iTCP:80 -sTCP:LISTEN没有输出。Apache 似乎正在运行 - 我已经运行了apachectl多次 restart`。

答案1

使用以下命令检查您的 Apache 配置:

sudo apachectl -t

这将测试配置文件并告诉您是否有错误。sudo apachectl start由于某种原因,运行不会将配置文件语法错误输出到日志中。

答案2

此命令应该告诉您 Apache 正在监听哪个端口和哪个 IPv(4/6) 地址:

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

检查日志

答案3

我相信默认端口是 8080,但您可以检查 httpd.conf 文件以了解 Apache 正在监听的端口。

相关内容