macos 上用 homebrew 管理多版本 php 的核心是独立安装、精准切换、项目隔离:通过 brew install php@8.1/8.2/8.3 独立安装,用 brew unlink + brew link --force 切换全局 cli 版本,项目级用 bin/php 脚本绑定版本,web 服务需手动重启对应 php-fpm 并核对配置。
macos 上用 homebrew 管理多版本 php,关键不是装得多,而是切得准、不干扰项目。homebrew 原生命令就能搞定,不用第三方工具(比如已停用的 brew-php-switcher),也不用手动改 path 或写一堆 alias。
安装多个独立版本
Homebrew 官方直接支持主流历史版本,全部独立安装、路径隔离:
- 运行
brew install php@8.1 php@8.2 php@8.3—— 每个版本装在单独目录,例如 Apple Silicon 下为/opt/homebrew/opt/php@8.2/bin/php - 旧版如
php@7.4已被 Homebrew 移除;若项目强依赖,优先考虑升级,否则用phpbrew或容器方案,避免编译失败和安全风险 - 安装后不自动生效,只是“待命”状态:不会覆盖系统
/usr/bin/php,也不会互相污染
全局默认版本切换
用 brew unlink + brew link --force 切换 CLI 默认版本,所有新开终端立即继承:
- 先断开当前链接:
brew unlink php - 再强制链接目标版本:
brew link --force php@8.2(--force不可省略) - 验证:
which php应返回/opt/homebrew/bin/php,php -v显示对应版本 - 注意:该操作不影响已运行的后台进程(如
php -S),但新终端会立刻生效
项目级版本绑定(推荐做法)
避免全局切换误伤其他项目,建议在项目根目录下创建 bin/php 脚本:
- 新建文件
bin/php,内容为:
#!/bin/sh exec /opt/homebrew/opt/php@8.1/bin/php "$@"
- 赋予执行权限:
chmod +x bin/php - 后续命令如
./bin/php -v或通过 Composer 运行脚本,都严格使用该版本,完全与全局无关 - 比修改
~/.zshrc中的PATH或写alias更安全,不污染 shell 环境
Web 服务需同步调整
CLI 切换不等于 Web 服务自动切换,PHP-FPM 必须手动重启并核对配置:
- 确认当前运行的 FPM 实例:
brew services list | grep php - 停止旧版本:
brew services stop php@8.2 - 启动目标版本:
brew services start php@8.3 - 检查其配置中
listen地址(如127.0.0.1:9000)是否与 Nginx/Apache 的fastcgi_pass一致
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











