【问题标题】:Apache Configuration, Cannot Connect to LocalhostApache 配置,无法连接到 localhost
【发布时间】:2016-12-25 07:34:31
【问题描述】:

我遇到了 Apache 2.4.18(在 OS X El Capitan 10.11.6 上)的问题,我无法确定原因是什么。我花了 4 天时间试图解决这个问题(包括在这里搜索),但我认输了,只是问。

我在这里没有什么经验。上周末遵循一些指南,我尝试设置我的系统,以便在我学习 HTML/Javascript/PHP 时开发一个站点。按照一些指南,我安装了 dnsmasq 并尝试配置 httpd.conf 和 httpd-vhosts.conf。最初,localhost 将我引导到“It Works”页面,我的虚拟主机 home.dev 和 sites.dev 也是如此。无论我做什么,我都无法让任何 *.dev 站点指向我的 virtualdocumentroot 中的实际 index.html 文件。

我试过了

  • home.dev 添加到/etc/hosts
  • 开启网络共享
  • 已检查防火墙 - 端口 80 已打开
  • httpd.conf 中的 DocumentRoot 更改为虚拟主机文件中使用的根目录
  • 尝试了许多不同的httpd-vhosts.conf 配置。
  • 检查了我目录周围的引号 - 最初使用 textedit,它们有所不同,在 sublime 2 中进行了更改。
  • 运行apachectl configtest - 语法没问题

现在问题变得更糟了。在使用配置文件试图解决这个问题时,我破坏了一些东西,我不知道是什么。不小心覆盖了 originals 文件夹中的 httpd.conf 文件。尝试使用httpd.conf文件我发现搜索默认,不起作用。在这一点上,我很高兴再次看到“It Works”......

  • Lo​​calhost、127.0.0.1、home.dev 等都打开“不可用”或拒绝连接页面。
  • 运行sudo netstat -an | grep ':80' 没有返回任何结果,所以据我所知,即使httpd.conf 中有明确的声明listen 80,apache 似乎也没有在80 上监听。
  • 运行apachectl configtest - 语法还可以
  • 运行sudo apachectl restart - 似乎开始
  • 在某处阅读,有人提到 /var/log/apache2 可能丢失并导致错误,它就在那里。错误日志没有任何内容

不确定我是否应该在此处发布我的 .conf,有什么建议吗?

谢谢!

8/20 更新:

还没有找到解决办法,但感觉自己在进步:

  • ping localhost 成功(来自 127.0.0.1 的 64 个字节)
  • curl -v http://localhost/ 对所有尝试(::1、fe80::1、127.0.0.1 等)都返回“连接被拒绝”。

在某个地方,似乎 apache 正在运行(对吗??),我只是不明白在哪里或如何弄清楚。

  • sudo lsof -i -P | grep -i "listen" 不会返回在 *:80 上侦听的任何内容。也看不到任何听起来像 apache 的进程(只有 launchd、dnsmasq、mysqld、kdc 和 Skype)。

  • 我的主机文件是这样设置的:

    127.0.0.1 本地主机
    255.255.255.255 广播主机
    ::1 本地主机
    fe80::1%lo0 本地主机

  • httpd.conf(之前是 Listen 80,此更改没有解决任何问题)

    Listen 0.0.0.0:80

  • 自 2 天前我不小心从 httpd.conf 中删除了 ServerName 后,错误日志中没有错误(将其添加回来):)

我可以输入 netstat/lsof 命令并找出 apache 正在侦听的端口吗?也许这会让我从正确的方向开始。

【问题讨论】:

  • 我会尝试“ps auxw | grep httpd”,其中 httpd 是二进制文件的名称,看看它是否真的启动了。如果不尝试找出它没有启动的原因,“strace”或 MacOSX 中可能提供的任何类似工具可能会有所帮助。
  • Ps auxw | grep httpd 返回 PID 4488,状态 U+。似乎正在运行。
  • 然后运行lsof -p 4488 它应该会显示它正在使用哪些端口。了解您用于运行服务器的命令的准确程度也很好。
  • @ezra-s 我真的很感谢你的帮助,昨晚让它运行起来了(见下文)。 Libphp5.so 导致了这个问题,所以注释掉让服务器恢复在线,直到我能解决这个问题。最初对我来说很难识别 - 本来以为这样的东西会出现在 Apache 的日志中。

标签: macos httpd.conf apache2.4


【解决方案1】:

更新:

对于遇到此问题的其他人,希望我可以节省您尝试解决此问题的一周。

检查控制台以找到 httpd 的“ReportCrashes”(即使 sudo apachectl start 似乎可以工作,当再次运行该命令时,我会收到 service already loaded 消息。)搜索面包屑时我遇到了 https://discussions.apple.com/thread/6602475?tstart=0

听起来很简单,在 httpd.conf LoadModule php5_module libexec/apache2/libphp5.so 中注释掉加载 PHP 模块可以解决所有问题。我现在可以访问本地主机。在我为自己进行更改而造成的混乱中,我认为它在 .conf 文件中,但没有原始文件可以恢复或查看问题。显而易见的建议 - 在更改 .conf 文件之前进行备份。

现在,当然,我不能使用 PHP,所以如果有人有任何提示,那就太棒了。 Libphp5.so存在于/libexec/apache2中,但我也在/usr/local/php5/中找到了Libphp7.so(版本问题??)

【讨论】:

  • 你好,按照你说的做之后。它解决了我的麻烦,我仍然可以使用 php。在我的 Mac 上,有一个 /etc/apache2/other/+php-osx.conf 文件在 /usr/local/php5/libphp7.so 上加载 php7_module,这有帮助吗?
猜你喜欢
  • 1970-01-01
  • 2016-11-05
  • 2020-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-12
  • 1970-01-01
相关资源
最近更新 更多