【问题标题】:Apache is running, but I don't get any sign from my web browserApache 正在运行,但我的网络浏览器没有任何迹象
【发布时间】:2014-08-24 18:43:01
【问题描述】:

我在 MacOsX 10.9.3 上并且我的 apache 正在运行:

$ sudo apachectl start
org.apache.httpd: Already loaded

Apache 正在运行,并且在我的 /etc/hosts 中:

127.0.0.1 qwertyuiopoiuytrewq.mnbvcxzxcvbnm.com

我可以 ping qwertyuiopoiuytrewq.mnbvcxzxcvbnm.com,但我的浏览器看不到

http://qwertyuiopoiuytrewq.mnbvcxzxcvbnm.com/

这是我的虚拟主机:

NameVirtualHost *:80
<VirtualHost *:80>
    DocumentRoot /path/to/root
    ServerName qwertyuiopoiuytrewq.mnbvcxzxcvbnm.com
    ServerAlias qwertyuiopoiuytrewq.mnbvcxzxcvbnm.com
</VirtualHost>

而 curl 没有得到任何东西

$ curl http://qwertyuiopoiuytrewq.mnbvcxzxcvbnm.com
curl: (7) Failed connect to qwertyuiopoiuytrewq.mnbvcxzxcvbnm.com:80; Connection refused

怎么了?也许Apache正在监听的端口?如何检查我的 apache 服务使用了哪个端口?

$ lsof -i | grep apache

没有任何反应...我尝试了同事建议的命令

$ lsof -i :80

但是……

COMMAND     PID          USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
Google    13069 simonegentili   84u  IPv4 0xec5b6b421454cd89      0t0  TCP     192.168.11.46:52061->fa-in-f95.1e100.net:http (ESTABLISHED)
Google    13069 simonegentili  105u  IPv4 0xec5b6b421304ed89      0t0  TCP 192.168.11.46:52100->mil02s05-in-f13.1e100.net:http (ESTABLISHED)
Google    13069 simonegentili  125u  IPv4 0xec5b6b42172fe5a1      0t0  TCP 192.168.11.46:51372->mil01s16-in-f1.1e100.net:http (ESTABLISHED)
Google    13069 simonegentili  138u  IPv4 0xec5b6b42145a7d89      0t0  TCP 192.168.11.46:52070->edge-star-shv-07-fra3.facebook.com:http (ESTABLISHED)

我已尝试检查 apache 正在侦听哪个端口:

$ cat /etc/apache2/httpd.conf | grep Listen

Apache 应该响应 80 端口。

# Listen: Allows you to bind Apache to specific IP addresses and/or
# Change this to Listen on specific IP addresses as shown below to
#Listen 12.34.56.78:80
Listen 80

例如,我不明白这个答案:

$ sudo apachectl start
org.apache.httpd: Already loaded
$ ps aux | grep httpd
simonegentili   26677   0.0  0.0  2444976    416 s001  U+    6:13PM   0:00.00 grep httpd

【问题讨论】:

  • 是否有任何 httpd 进程实际运行?似乎您的 apachectl 有一些供应商定制以使用一些替代服务设施(上游工具不报告 org.apache.httpd:"
  • 错误日志的底部通常也很有帮助。
  • 更新了我的答案。我“认为”apache 已开启,但我不确定。您能否阅读我的问题的底部以了解原因。
  • 似乎您的问题出在系统上的服务控制上,因为输出中只有您的“grep”命令本身。

标签: apache virtualhost host


【解决方案1】:

ping 测试主机是否可通过网络访问,并且通常由您的内核而不是在其上运行的任何软件处理。 Pinging 已验证主机在那里,与 Apache 监听端口无关。

https://en.wikipedia.org/wiki/Ping_(networking_utility)

【讨论】:

    【解决方案2】:

    显然,当您破坏 httpd.conf 时,可能会发生这种情况。服务管理器不会用行号之类的方式报告正常的 apache 配置解析错误,而是会误导您。

    见:

    http://neverblog.net/solving-org-apache-httpd-already-loaded-error-on-mac-os-x-snow-leopard/

    检查正在运行的进程,我注意到 apache 实际上并不是 运行,这似乎有点奇怪。幸运的是,apachectl 提供了一个 检查配置语法的有用命令 apachectl configtest。 果然,结果我修改了 httpd.conf 几个 几周前,但从未重新启动 Apache。评论违规行为 行并启动 Apache 解决了问题,我备份了 正在运行。

    那么至少你只需要调试一个正常的 httpd.conf 错误而不是这个谜。

    【讨论】:

    • 非常感谢! “apachectl configtest”告诉我配置错误的地方。固定的。但是,......为什么任何错误都会向我展示这些东西?我的意思是,......任何apache错误!谜。
    【解决方案3】:

    你必须使用这个命令启动apache服务/etc/init.d/apache2start,127.0.0.1只是一个环回网络接口。

    【讨论】:

    • 我已经修改了问题。所有浏览器都没有响应。 apache什么时候运行,什么时候不运行。
    猜你喜欢
    • 2019-07-05
    • 1970-01-01
    • 1970-01-01
    • 2016-09-28
    • 2017-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-30
    相关资源
    最近更新 更多