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

Apache on Mac OS Sierra: Illegal instruction: 4 $HTTPD

背景

我按照 instructions here 在我的 Mac (运行ning Sierra 10.12.4) 上配置 Apache、PHP 和 MySQL 并获得一切正常。然后我使用 Migration Assistant 将所有内容复制到新的 Mac (Mac #2) 供其他开发人员使用。首次登录时,我打开了 Chrome 并访问了 localhost。我事先没有对 Mac #2 进行任何更改。

问题

在 Mac #2 上,当我访问 Chrome 中的 localhost 时,我得到一个 ERR_CONNECTION_REFUSED (无法访问此站点: localhost 拒绝连接)。一些挖掘让我找到了 this Q/A on Apple Stack Exchange,所以我在终端中尝试了以下操作:

情节丰富

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

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

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

我试过的

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

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

其他可能有用的信息

运行 httpd -v 终端产量:

在终端中输入 php -v 得到:

所以我重新安装,现在 php -v 产生:

键入 which php 得到:

在我的例子中,它与 'other' conf 文件中加载的 php 二进制文件有关:

尝试 运行:

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

然后重启apache

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

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

我相信重新安装 httpd24 似乎可以解决问题![​​=19=]

$ brew reinstall httpd24

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

  1. brew upgrade
  2. 正在卸载 php56(我有 php56php70 以及来自 blog post you mentionedsphp 脚本)
  3. brew doctor