Mac OS Sierra上的Apache:非法指令:4 $ HTTPD

时间:2017-04-07 19:28:17

标签: macos apache localhost httpd.conf

背景

我跟着instructions here在我的Mac上配置Apache,PHP和MySQL(运行Sierra 10.12.4)并且一切正常。然后我使用迁移助手将所有内容复制到新Mac(Mac#2)以供其他开发人员使用。首次登录时,我打开了Chrome并访问了localhost。我事先没有对Mac#2做任何改动。

问题

在Mac#2上,当我在Chrome中访问localhost时,我收到ERR_CONNECTION_REFUSED (无法访问此网站:localhost拒绝连接)。一些挖掘导致我this Q/A on Apple Stack Exchange,所以我在终端尝试了以下内容:

  • ping 127.0.0.1(成功;即“来自127.0.0.1的64字节......”)
  • ping localhost(成功)
  • ping myvirtualhost.dev(成功)

Plot Thicks

然后我尝试运行apachectl configtest,这引发了以下错误:

  • /usr/local/bin/apachectl: line 79: 1132 Illegal instruction: 4 $HTTPD -t

好的,sudo apachectl -k restart怎么样?不,同样的错误:

  • /usr/local/bin/apachectl: line 79: 1170 Illegal instruction: 4 $HTTPD "$@"

省略-k标志会抛出相同的错误,但最后的字符有点不同:

  • /usr/local/bin/apachectl: line 79: 1184 Illegal instruction: 4 $HTTPD -k $ARGV

我尝试过什么

我无法停止,启动,重启或真正对Apache做任何事情。谷歌搜索错误并没有带来太大的影响。我已经尝试从我的备份中恢复httpd.conf,然后重新启动计算机。我检查了/etc/hosts,看起来很正常。我不知道还能做什么。

Apache的配置搞砸了,但我不知道在哪里。我该怎么办?

其他可能有用的信息

在终端中运行httpd -v

  • Server version: Apache/2.4.25 (Unix)

在终端中输入php -v

  • Illegal instruction: 4

所以我重新安装了,现在php -v收益:

  • PHP 5.6.30 (cli) (built: Apr 7 2017 13:12:17)

键入which php会产生:

  • /usr/local/bin/php

2 个答案:

答案 0 :(得分:7)

在我的情况下,它与在其他'中加载的php二进制文件有关。 conf文件:

尝试跑步:

sudo mv /private/etc/apache2/other/+php-osx.conf /private/etc/apache2/other/+php-osx.conf-bak

然后重启apache

如果你没有这个conf文件,很可能你系统上加载的php二进制文件导致了这个问题,因为错误与我看到的非常相似。

答案 1 :(得分:1)

我遇到了你提到的完全相同的场景和问题。经过一些黑客攻击和搞乱后,我能够解决你提到的问题。

我相信重新安装httpd24似乎可以解决问题!

$ brew reinstall httpd24

重新安装之前我尝试过的其他一些事情:

  1. brew upgrade
  2. 使用blog post you mentioned中的php56脚本卸载php56(我同时拥有php70& sphp
  3. brew doctor