OSX下Homebrew管理PHP版本异常:unlink php71后仍显示该版本
解决OSX下brew切换PHP版本后仍显示旧版本的问题
这种情况我碰到过好几次,大概率是命令缓存、PATH优先级或者brew的链接没处理干净导致的。给你一步步排查解决:
第一步:先搞清楚当前
php命令到底指向哪里
运行这两个命令,看看实际路径和软链接指向:which php ls -l $(which php)如果输出的路径不是
/usr/local/bin/php,那可能是系统自带的PHP或者其他地方的版本在干扰;如果是/usr/local/bin/php但软链接还指向php71,说明brew的unlink没生效。第二步:刷新shell的命令缓存
有时候shell会缓存命令的路径,unlink后没及时更新,运行:hash -r之后再执行
php -v看看版本有没有变化。第三步:确保php56已安装并正确链接
首先如果还没装php56,先安装:brew install php56然后彻底unlink php71(如果之前unlink没成功,加
--force强制):brew unlink --force php71再链接php56,同样如果有冲突就加
--force:brew link --force php56第四步:检查PATH环境变量优先级
brew安装的PHP在/usr/local/bin,系统自带的在/usr/bin,必须让/usr/local/bin在PATH里的顺序早于/usr/bin,否则系统自带的会优先被调用。
运行echo $PATH看输出的顺序,如果/usr/local/bin在/usr/bin后面,就需要修改你的shell配置文件:- 如果用bash,编辑
~/.bash_profile;如果用zsh,编辑~/.zshrc - 添加一行:
export PATH="/usr/local/bin:$PATH" - 保存后刷新配置:
# bash用户 source ~/.bash_profile # zsh用户 source ~/.zshrc
- 如果用bash,编辑
最后再运行php -v,应该就能看到php56的版本了。
内容的提问来源于stack exchange,提问作者Miguel Stevens
相关产品推荐
相关产品推荐

