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 版本,并且经常切换,可以通过别名来简化操作。

相关推荐
JaguarJack17 分钟前
FrankenPHP 是否是 PHP 的未来?
后端·php
xixixi7777739 分钟前
解析常见的通信流量和流量分析
运维·开发语言·网络·安全·php·通信·流量
游戏开发爱好者841 分钟前
Charles抓包工具怎么用 Charles抓包教程、网络调试技巧与HTTPS配置全流程
网络·ios·小程序·https·uni-app·php·webview
万岳软件开发小城1 小时前
在线教育系统源码开发指南:功能、架构、部署全解析(2025最新版)
架构·开源·php·在线教育系统源码·教育app开发·教育软件开发
万岳科技程序员小金1 小时前
在线教育系统源码选型对比:PHP、Java、Flutter、UniApp谁更适合?
java·uni-app·php·软件开发·在线教育系统源码·教育app开发·教育软件开发
catchadmin15 小时前
PHP Fiber 优雅协作式多任务
后端·php
DanB2415 小时前
Java(网络编程)
java·网络·php
龙泉寺天下行走16 小时前
[PowerShell 入门教程] 第9.5天(间章):PowerShell 常见 Cmdlet 速查手册
开发语言·php
用户6073203694517 小时前
PHP header already sent:中文乱码、BOM、空格导致的全套解决方案(图文版)
php
牛奔19 小时前
php 8.2 配置安装php-zbarcode扩展
android·开发语言·php