OSX High Sierra安装Homebrew PHP72后PATH不生效问题求助
解决Homebrew PHP7.2与系统PHP版本冲突的思路
这种情况我之前也碰到过,明明which php指向了Homebrew安装的版本,但实际运行php -v却还是系统预装的PHP7.1,确实挺让人困惑的。给你几个排查方向,一步步来试试:
- 先确认PATH环境变量的顺序:执行
echo $PATH,看看输出里/usr/local/bin是不是在/usr/bin前面。虽然which是按PATH顺序找第一个匹配的命令,但如果当前shell的PATH配置有问题,比如后续脚本把/usr/bin又加到了前面,就会出现这种矛盾。 - 清理shell的命令缓存:很多shell会缓存已找到的命令路径,比如bash可以执行
hash -r,zsh执行rehash,之后再运行php -v看看是否切换到了Homebrew版本。 - 检查shell配置文件:看看
~/.bash_profile、~/.bashrc、~/.zshrc这些文件里,有没有修改PATH的语句,比如是不是有地方把/usr/bin放在了/usr/local/bin之前,或者有其他环境变量影响了PHP的调用。 - 确保Homebrew的PHP正确链接:执行
brew link --overwrite php72(如果是通过homebrew-php tap安装的,这个命令应该能强制覆盖系统的PHP链接),之后再验证链接状态。 - 用绝对路径测试:直接运行
/usr/local/bin/php -v,如果输出是7.2版本,说明Homebrew的PHP本身没问题,问题出在shell的路径配置或缓存;如果输出还是7.1,那可能是Homebrew的PHP安装或链接过程出错了,需要重新安装或者检查brew的状态。 - 重启终端:有时候修改配置文件后,需要重启终端才能让新的PATH配置生效,不妨试试这个最简单的方法。
内容的提问来源于stack exchange,提问作者nfvindaloo
相关产品推荐
相关产品推荐

