2016-08-18 112 views
1

我遇到了Apache 2.4.18的问题(在OS X El Capitan 10.11.6上),我无法确定原因是什么。我已经花了4天的时间来解决这个问题(包括在这里搜索),但是我在扔毛巾,只是问。Apache配置,无法连接到本地主机

我在这里没有什么经验。在上个周末的一些指南之后,我试图建立自己的系统,让我在开发学习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端口是开放的
  • 更改的DocumentRoot在httpd.conf根在虚拟主机使用的文件
  • 尝试了许多不同的httpd-vhosts.conf配置。
  • 在我的目录经过报价 - 最初使用文本编辑他们是不同的,在崇高2.
  • 运行apachectl configtest改变 - 语法是好的

现在问题越来越严重。在处理配置文件试图解决这个问题时,我打破了一些东西,我不知道是什么。意外覆盖原件文件夹中的httpd.conf文件。试图使用httpd.conf文件,我发现搜索默认,不起作用。在这一点上,我很高兴刚才看到“它工作的”再......

  • 本地主机,127.0.0.1 home.dev等都开设“不可用”或拒绝连接页面。
  • 正在运行sudo netstat -an | grep ':80'什么也没有返回,所以从我了解的情况来看,虽然在httpd.conf中有一个明确的语句listen 80,但看起来apache并没有在80上进行监听。
  • 运行apachectl configtest - 语法还行
  • 运行sudo apachectl restart - 似乎开始
  • 读的地方,有人提到的/ var /日志/ Apache2的可能缺失而引起的错误,它的存在。错误日志没有任何东西

不知道我是否应该在这里发布我的.conf,有什么建议吗?

谢谢!

更新8/20:

至今还没有找到一个解决方案,但觉得我在进步:

  • ping localhost是成功的(从127.0.0 64个字节。1)
  • 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)。

  • 我的hosts文件设置为这样:

    127.0.0.1本地主机
    255.255.255.255 broadcasthost
    :: 1本地主机
    FE80 :: 1%lo0的本地主机

  • 的httpd.conf (先前听80,这个改变没有解决任何问题)

    Listen 0.0.0.0:80

  • 在错误日志中没有错误,因为3天前,当我不小心删除了服务器名httpd.conf中(加回):)

是否有一个的netstat/lsof的命令,我可以进入并找出端口apache正在监听?也许这会让我在这里开始正确的方向。

+0

我会尝试“ps auxw | grep httpd”其中httpd是二进制文件,看看它是否真的开始。如果不试图找出为什么它还没有开始,那么Mac OS X中的“strace”或其他类似工具可能会有所帮助。 –

+0

'ps auxw | grep httpd'返回PID 4488,状态U +。似乎正在运行。 – Severniy

+0

然后运行'lsof -p 4488'它应该说明它正在使用哪个端口。也很高兴知道您用来运行服务器的命令的确切程度。 –

回答

3

更新:

对于别人谁遇到这种情形,希望我能我花了试图解决这一问题的一周拯救你。

经过控制台找出httpd的“ReportCrashes”(即使sudo apachectl start似乎工作,运行命令时再次我会得到一个service already loaded消息。)在搜索我碰到https://discussions.apple.com/thread/6602475?tstart=0来到屑。

听起来很简单,注释掉httpd.conf中加载的PHP模块LoadModule php5_module libexec/apache2/libphp5.so修复了一切。我现在可以访问本地主机。在我为自己做出的改变而产生的困惑中,我认为它是在.conf文件中,但没有原始的恢复或看到问题。明确的建议 - 在更改.conf文件之前进行备份。

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

+0

你好,之后就像你说的那样。它解决了我的麻烦,我仍然可以使用PHP。在我的Mac上,有一个'/ etc/apache2/other/+ php-osx。在'/ usr/local/php5/libphp7.so'上加载'php7_module'的conf文件可以帮助吗? – user3875388

相关问题