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

相关推荐
我是唐青枫2 小时前
Php Doctrine ORM 实战详解:从实体映射到查询、关联与事务
php
juesdo3 小时前
array_search()函数的用法
web安全·php
ch3nyuyu6 小时前
socket套接字
开发语言·php
leagsoft_10038 小时前
零信任选型五刀法——零信任怎么选?五个问题,五条红线
开发语言·php
yyuuuzz9 小时前
云服务器软件部署的几个常见问题
运维·服务器·开发语言·网络·云计算·php·apache
juesdo10 小时前
青岑CTF web入门 EZCMD系列
web安全·网络安全·php
RisunJan10 小时前
Linux命令-php(PHP语言的命令行接口)
linux·php
艾莉丝努力练剑11 小时前
【Linux网络】NAT、内网穿透、内网打洞
linux·运维·服务器·网络·计算机网络·udp·php
dog2501 天前
网络长尾延时的重尾本质
开发语言·网络·php
其实防守也摸鱼1 天前
无线网络安全--10 规避WLAN验证之挫败MAC地址限制
网络·智能路由器·php·教程·虚拟机·wlan·无线网络安全