【发布时间】: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”......
- Localhost、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