我的 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 正在监听的端口。