mac下homebrew安装的多个php版本如何切换?

在 macOS 上,使用 Homebrew 安装多个 PHP 版本后,你可以通过以下步骤切换不同版本的 PHP。

1. 查看已安装的 PHP 版本

首先,查看通过 Homebrew 安装的 PHP 版本:

bash 复制代码
brew list | grep php

你应该看到类似以下的输出:

bash 复制代码
php@7.4 
php@8.0 
php@8.1

2. 切换 PHP 版本

在 macOS 上,Homebrew 默认会将当前的 PHP 版本链接到 /usr/local/bin(或 /opt/homebrew/bin,具体路径根据你的系统架构不同而不同)。你可以使用 brew link 命令来切换 PHP 版本。

切换到 PHP 8.0 版本:
  1. 首先, unlink 当前的 PHP 版本(如果已设置)

    bash 复制代码
    brew unlink php
  2. 然后,链接到你希望使用的 PHP 版本 (例如 PHP 8.0):

    bash 复制代码
    brew link --overwrite --force php@8.0
  3. 验证切换是否成功

    bash 复制代码
    php -v
  4. 如果一切顺利,你应该会看到类似以下的输出,表示你已经切换到 PHP 8.0:

    bash 复制代码
    PHP 8.0.0 (cli) (built: ...)
切换到其他 PHP 版本(例如 PHP 7.4):
bash 复制代码
brew unlink php brew link --overwrite --force php@7.4

3. 切换 PHP 版本时需要重新加载配置

在切换 PHP 版本之后,如果 PHP-FPM 或 Apache 等服务已经在运行,你可能需要重启这些服务。

例如,如果你使用 PHP-FPM,运行:

bash 复制代码
brew services restart php@8.0

或者,如果你使用 Apache,你可以重启 Apache 服务:

bash 复制代码
sudo apachectl restart

4. 自动切换 PHP 版本(可选)

bash 复制代码
alias php74="brew unlink php && brew link --overwrite --force php@7.4" 
alias php80="brew unlink php && brew link --overwrite --force php@8.0" 
alias php81="brew unlink php && brew link --overwrite --force php@8.1"

如果你想要更方便地在不同的 PHP 版本之间切换,可以考虑创建一个别名(alias)或使用脚本来管理 PHP 版本。

例如,编辑 ~/.bash_profile~/.zshrc 文件,添加以下别名:

然后通过执行 php74php80php81 来快速切换 PHP 版本。

5. Homebrew 管理 PHP 扩展

有时,PHP 扩展也需要为不同版本的 PHP 进行切换。你可以使用 pecl 来管理 PHP 扩展,或者在切换 PHP 版本后重新安装相关扩展。

例如:

bash 复制代码
pecl install xdebug

这样就会为当前 PHP 版本安装 Xdebug 扩展。


总结

通过使用 brew linkbrew unlink,你可以在 macOS 上切换不同的 PHP 版本。切换后,记得重新启动相关的服务(如 PHP-FPM 或 Apache)。如果你有多个 PHP 版本,并且经常切换,可以通过别名来简化操作。

相关推荐
思茂信息14 小时前
CST License(Flexnet)设置与问题处理方法
服务器·网络·单片机·3d·php·1024程序员节·cst
m0_7381207214 小时前
内网横向靶场——记录一次横向渗透(三)
开发语言·网络·安全·web安全·网络安全·php
无心水16 小时前
【中间件:Redis】2、单线程Redis高并发原理:I/O多路复用+3大优化点(附多线程对比)
redis·中间件·php·后端面试·i/o多路复用·redis原理·redis高并发
万岳软件开发小城17 小时前
在线教育系统源码架构设计指南:高并发场景下的性能优化与数据安全
php·在线教育系统源码·教育平台搭建·教育app开发·教育软件开发
wxin_VXbishe1 天前
springboot在线课堂教学辅助系统-计算机毕业设计源码07741
java·c++·spring boot·python·spring·django·php
苏琢玉1 天前
被问性能后,我封装了这个 PHP 错误上报工具
php·composer
郑州光合科技余经理1 天前
乡镇外卖跑腿小程序开发实战:基于PHP的乡镇同城O2O
java·开发语言·javascript·spring cloud·uni-app·php·objective-c
hzbigdog1 天前
php的CSV大数据导入导出的通用处理类
大数据·后端·php
何憶树之長青2 天前
Kernel
开发语言·php
bin91532 天前
PHP文档保卫战:AI自动生成下的创意守护与反制指南
开发语言·人工智能·php·工具·ai工具