在macOS Sierra上,我使用Homebrew安装了Apache:
$ brew install httpd24
这引起了一些奇怪的Apache问题。似乎在macOS Sierra上Apache的默认安装仍然在某种程度上是活跃的。我现在想要完全卸载httpd24,但我仍然在我的进程中看到它。这就是我的所作所为:
$ brew unlink httpd24
$ brew uninstall httpd24
$ rm -rf /usr/local/etc/apache2/
正在运行$ ps aux|grep httpd
会显示:
blt 51473 0.0 0.0 2613988 844 ?? S 10:48PM 0:00.00 /usr/local/Cellar/httpd24/2.4.23_2/bin/httpd -k start
blt 51447 0.0 0.0 2613988 892 ?? S 10:47PM 0:00.00 /usr/local/Cellar/httpd24/2.4.23_2/bin/httpd -k start
blt 51396 0.0 0.0 2613988 856 ?? S 10:47PM 0:00.00 /usr/local/Cellar/httpd24/2.4.23_2/bin/httpd -k start
blt 51345 0.0 0.0 2613988 844 ?? S 10:47PM 0:00.00 /usr/local/Cellar/httpd24/2.4.23_2/bin/httpd -k start
blt 51285 0.0 0.0 2613988 876 ?? S 10:45PM 0:00.00 /usr/local/Cellar/httpd24/2.4.23_2/bin/httpd -k start
blt 51048 0.0 0.0 2615200 868 ?? S 10:34PM 0:00.00 /usr/sbin/httpd -T
blt 51047 0.0 0.0 2615200 840 ?? S 10:34PM 0:00.00 /usr/sbin/httpd -T
blt 51046 0.0 0.1 2628716 20104 ?? S 10:34PM 0:00.06 /usr/sbin/httpd -T
blt 51045 0.0 0.1 2628716 20084 ?? S 10:34PM 0:00.05 /usr/sbin/httpd -T
blt 51044 0.0 0.1 2628716 20148 ?? S 10:34PM 0:00.04 /usr/sbin/httpd -T
blt 51043 0.0 0.1 2628716 20236 ?? S 10:34PM 0:00.05 /usr/sbin/httpd -T
blt 51041 0.0 0.1 2628716 20668 ?? S 10:34PM 0:00.07 /usr/sbin/httpd -T
blt 51040 0.0 0.4 2644668 59852 ?? S 10:34PM 0:01.05 /usr/sbin/httpd -T
root 47136 0.0 0.1 2615456 18872 ?? Ss 5:34PM 0:00.67 /usr/sbin/httpd -T
root 43442 0.0 0.0 2614244 7172 ?? Ss 4:14PM 0:00.83 /usr/local/Cellar/httpd24/2.4.23_2/bin/httpd -k start
blt 52451 0.0 0.0 2423384 256 s003 R+ 11:06PM 0:00.00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn httpd
路径为/usr/sbin/httpd
的进程是默认的Apache安装。路径/usr/local/Cellar/httpd24/2.4.23_2/bin/httpd
的是Homebrew安装。这甚至不可能。目录/usr/local/Cellar/httpd24
甚至不存在。我试过手动杀死这些进程,但最终还是回来了。我试过重新启动计算机。我已经无数次重启了Apache。我已确认使用$ apachectl
在命令行上与我交互的Apache是默认安装。我不知道还能做什么。谢谢你的帮助。
答案 0 :(得分:4)
我无法记住我究竟做了什么来解决这个问题,但是我将一个bash别名拼凑在一起,这可能对使用Homebrew PHP但默认Mac OS Apache的其他人有用。它将停止Apache,杀死任何Homebrew Apache(httpd24)进程,取消链接并卸载Homebrew Apache并重新启动剩余的默认Apache安装。有时我必须在使用Homebrew安装新的PHP版本后使用它。有关详细信息,请参阅此问题:https://github.com/Homebrew/homebrew-php/issues/3601
alias fix_apache='sudo apachectl stop; sudo pkill -f /usr/local/Cellar/httpd24; sudo pkill -f /usr/sbin/httpd; sudo pkill -f /usr/local/opt/httpd24; brew unlink httpd24; brew uninstall --ignore-dependencies --force httpd24; sudo apachectl start;'
答案 1 :(得分:0)
根据@pilot 评论(我当前使用的是 2.4.48 版),我遇到了同样的问题,并遵循了 @maskedjellybean 的回答,升级了 httpd 的脚本。
代码如下:
alias fix_apache='sudo apachectl stop; sudo pkill -f /usr/local/Cellar/httpd; sudo pkill -f /usr/sbin/httpd; sudo pkill -f /usr/local/opt/httpd; brew unlink httpd; brew uninstall --ignore-dependencies --force httpd; sudo apachectl start;'
一切都很完美。