我遇到了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
httpd.conf
中的DocumentRoot更改为虚拟主机文件中使用的root httpd-vhosts.conf
配置。apachectl configtest
- 语法正常现在问题变得更糟了。在使用配置文件试图解决这个问题时,我已经破坏了一些东西,我不知道是什么。意外地覆盖了原始文件夹中的httpd.conf
文件。尝试使用httpd.conf
文件,我发现搜索默认值,不起作用。在这一点上,我很高兴再次看到'It Works'......
sudo netstat -an | grep ':80'
什么都不返回,所以从我理解的一点点来看,即使在listen 80
中有明确的声明httpd.conf
,看起来apache也没有在80上听。apachectl configtest
- 语法仍然正常sudo apachectl restart
- 似乎已开始我不确定是否应该在这里发布我的.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 localhost
255.255.255.255 broadcasthost
:: 1 localhost
fe80 :: 1%lo0 localhost
httpd.conf(以前是Listen 80,此更改没有修复任何内容)
Listen 0.0.0.0:80
自从2天前我不小心从httpd.conf中删除了ServerName(添加回来)后,错误日志中没有错误:)
是否有netstat / lsof命令我可以输入并找出apache正在侦听的端口?也许这会让我开始朝着正确的方向前进。
答案 0 :(得分:4)
更新
对于遇到此事的任何其他人,希望我可以节省你花在试图解决这个问题的那一周。
选中控制台以查找httpd的“ReportCrashes”(即使sudo apachectl start
似乎有效,并且当再次运行该命令时,我会收到service already loaded
消息。)搜索我遇到的碎屑{{ 3}}。
听起来很简单,在httpd.conf LoadModule php5_module libexec/apache2/libphp5.so
中注释掉加载PHP模块修复了所有问题。我现在可以访问localhost。在我为自己创建的混淆中进行更改时,我认为它位于.conf文件中,但没有原始文件可以恢复或查看问题。明显的建议 - 在更改.conf文件之前进行备份。
现在,当然,我不能使用PHP,所以如果有人有任何提示,那将是非常棒的。 Libphp5.so存在于/ libexec / apache2中,但我也在/ usr / local / php5 /中找到了Libphp7.so(版本问题??)