我跟着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
(成功)然后我尝试运行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
答案 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
重新安装之前我尝试过的其他一些事情:
brew upgrade
php56
脚本卸载php56
(我同时拥有php70
& sphp
brew doctor