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、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,所以我在终端中尝试了以下操作:
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
(我同时拥有 php56
和 php70
以及来自 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 上的 Adobe AIR 应用程序中出现流错误 #2032,需要帮助
为啥mac升级之后,升级成mac OS Sierra 10.12.1,我的parallels Desktop就启动不了,需要重新安装吗?