更新 1

更新 1

不是重复的,请耐心等待,尝试将其标记为重复。谢谢。

环境:

  • Mac OS X EL Capitan 64 位
  • Apache 2.4.25(Unix)

ping 127.0.0.1

返回:

来自 127.0.0.1 的 64 字节:icmp_seq=0 ttl=64 时间=0.081 毫秒
来自 127.0.0.1 的 64 字节:icmp_seq=1 ttl=64 时间=0.111 毫秒
...

远程登录:

telnet 127.0.0.1 80

返回:

尝试 127.0.0.1…
telnet:连接到地址 127.0.0.1:连接被拒绝
telnet:无法连接到远程主机

删除:

scutil -r localhost

返回:

可达性

配置测试:

apachectl configtest

返回:

语法正确

$PATH

/usr/local/bin
/usr/bin
/bin
/usr/local/sbin
/usr/sbin
/sbin

多次apachectl restart重启系统均失败!我的 Apache 安装存在什么问题?

更新 1

卷曲

curl -v http://127.0.0.1

返回:

重建 URL 至:http://127.0.0.1/
尝试 127.0.0.1...
连接到 127.0.0.1 端口 80 失败:连接被拒绝
无法连接到 127.0.0.1 端口 80:连接被拒绝
关闭连接 0
curl:(7)无法连接到 127.0.0.1 端口 80:连接被拒绝

更新 2

lsof

lsof -i:80

返回:

COMMAND   PID   USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
Google    349 peyman  126u  IPv4 0x23528848eb5fe4db      0t0  TCP 192.168.1.102:49238->ec2-54-197-238-119.compute-1.amazonaws.com:http (ESTABLISHED)
Google    349 peyman  147u  IPv4 0x23528848ec35769b      0t0  TCP 192.168.1.102:49286->151.101.193.69:http (ESTABLISHED)
Google    349 peyman  164u  IPv4 0x23528848ebfa413b      0t0  TCP 192.168.1.102:49290->ec2-23-23-98-233.compute-1.amazonaws.com:http (ESTABLISHED)
Google    349 peyman  170u  IPv4 0x23528848ebfa031b      0t0  TCP 192.168.1.102:49242->pixel.quantserve.com:http (ESTABLISHED)
Google    349 peyman  188u  IPv4 0x23528848ec330dbb      0t0  TCP 192.168.1.102:49248->151.101.65.69:http (ESTABLISHED)
Google    349 peyman  189u  IPv4 0x23528848ebe7185b      0t0  TCP 192.168.1.102:49308->ec2-23-21-110-0.compute-1.amazonaws.com:http (ESTABLISHED)
Google    349 peyman  208u  IPv4 0x23528848ec35885b      0t0  TCP 192.168.1.102:49272->a72-247-178-186.deploy.akamaitechnologies.com:http (ESTABLISHED)

答案1

我没有看到您发布的内容中有任何证据表明 Apache 甚至在监听端口 80;我只看到其他系统上有到端口 80 的出站连接。该telnet 127.0.0.1 80命令未显示 Apache 可访问;如果您使用端口 81、85、800 等,您将看到相同的结果。发出命令netstat -a | grep http | grep LISTEN;如果 Apache 确实在监听端口 80 上的连接,您应该会看到一行末尾带有“*.http”和“LISTEN”的行。例如,请参阅在 OS X El Capitan 下运行 Apache Web 服务器

如果您没有看到一行输出表明它正在监听端口 80,而只是返回到 Bash shell 提示符,则发出该命令,sudo apachectl start然后再次发出 netstat 命令。如果您现在看到一个进程正在监听端口 80,则可以再次尝试 telnet 命令。如果 Apache 在端口 80 上响应,则您应该看到此时您可以Escape character is '^]'.发出该命令HEAD / HTTP/1.0,然后按几次回车键。您应该看到 Apache 以类似于以下输出的输出进行响应:

$ telnet 127.0.0.1 80
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
HEAD / HTTP/1.0

HTTP/1.1 200 OK
Date: Sat, 11 Mar 2017 01:44:13 GMT
Server: Apache/2.4.18 (Unix) PHP/5.5.38
Last-Modified: Fri, 03 Feb 2017 21:44:57 GMT
ETag: "a8-547a7315f6840"
Accept-Ranges: bytes
Content-Length: 168
Connection: close
Content-Type: text/html

相关内容