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 文件,添加以下别名:

然后通过执行 php74、php80、php81 来快速切换 PHP 版本。

5. Homebrew 管理 PHP 扩展

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

例如:

bash 复制代码
pecl install xdebug

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


总结

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

相关推荐
笑容掩饰我的失落1 分钟前
区块链从小白到精通(八):从零实现一个标准 ERC-20 代币(完整可运行代码)
算法·区块链·php·智能合约·哈希算法
xbzb1 天前
从零容器化部署 ECShop:Harbor 私有仓库 + 自定义 PHP 镜像 + LNMP 三容器
容器·php·harbor·镜像·仓库·ecshop
爱和冰阔落2 天前
【Linux网络】JsonCpp 怎么实现序列化?从 Request/Response 到网络计算器消息设计
linux·运维·网络·php
eggwyw2 天前
PHP8.5怎么用ffmpeg提取视频里的字幕轨道
开发语言·php
我叫黑大帅3 天前
PHP 常驻 Worker 中 MySQL 连接中断问题报告
后端·面试·php
国科安芯3 天前
人在回路中的总线:商业空间站环境控制与生命保障系统CANFD网络的可靠性与功能安全
网络·嵌入式硬件·安全·架构·php·抗辐射
码途行者3 天前
网站的SQL 注入:从攻击原理到防御措施
开发语言·sql·php
老秦包你会3 天前
计算机网络第二课 ----Socket(套接字)编程预备
开发语言·计算机网络·php
迪康coolmu4 天前
出差终端数据安全落地实战:基于迪康端点安全一体化管理系统的四道防线实践
运维·服务器·经验分享·笔记·其他·安全·php
普通人64 天前
PHP文件读写完全指南
开发语言·php·1024程序员节