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

Posted

技术标签:

【中文标题】Mac OS Sierra 上的 Apache:非法指令:4 $HTTPD【英文标题】:Apache on Mac OS Sierra: Illegal instruction: 4 $HTTPD 【发布时间】:2017-09-03 06:56:29 【问题描述】:

背景

我按照instructions here 在我的 Mac(运行 Sierra 10.12.4)上配置 Apache、phpmysql,一切正常。然后,我使用 Migration Assistant 将所有内容复制到新的 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(成功)

情节厚度

然后我尝试运行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

【问题讨论】:

您能否将以下输出粘贴到新迁移的机器上:$ echo $PATH,因为我几乎可以肯定,由于某种原因,PATH 不正确。 @Grigor Yosifov /usr/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin 这看起来不对,所以我删除了我的.bash_profile 并重新启动了终端;现在,路径是/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin,但问题仍然存在。 【参考方案1】:

就我而言,它与加载在“其他”conf 文件中的 php 二进制文件有关:

尝试运行:

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

然后重启apache

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

【讨论】:

感谢您的评论。几天前我最终重新格式化了我的硬盘驱动器并从头开始,因为绝对没有其他工作。很遗憾,这意味着我无法尝试您的建议。 为我工作。 :D【参考方案2】:

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

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

$ brew reinstall httpd24

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

    brew upgrade 卸载 php56(我同时拥有 php56php70 以及来自 blog post you mentioned 的 sphp 脚本) brew doctor

【讨论】:

以上是关于Mac OS Sierra 上的 Apache:非法指令:4 $HTTPD的主要内容,如果未能解决你的问题,请参考以下文章

mac os下的Apache配置 macOS Sierra 10.12

sh Mac OS X High Sierra / PHP Apache httpd配置节点NPM

python 在Python 3.5上的Mac OS Sierra上安装OpenCV

Mac OS Sierra 上的 Adob​​e AIR 应用程序中出现流错误 #2032,需要帮助

为啥mac升级之后,升级成mac OS Sierra 10.12.1,我的parallels Desktop就启动不了,需要重新安装吗?

在我的 Mac OS Sierra 构建主机上管理配置文件