macOS 下 brew 切换 php 版本
接上文。
虽然解决了 gd 库依赖的问题,但遇到一个新问题,就是我本地安装了多个 php 版本:
TMBA:php tony$ ll /opt/homebrew/Cellar | grep php
drwxr-xr-x 3 tony admin 96B 9 27 20:53 php
drwxr-xr-x 3 tony admin 96B 8 17 01:52 php@7.4
drwxr-xr-x 3 tony admin 96B 9 27 20:53 php@8.1
默认的这个 php 是 8.2 的,实际我主要使用的是 8.1 的。
不知道什么原因,给我切回了默认的 8.2 版本的,我 8.2 的没用过,没有安装 redis 扩展,所以先尝试了一下直接安装 redis 扩展:
TMBA:~ tony$ pecl install redis
# ...
# 省略一大段,编译中间有选择的都是默认一路 Enter 确认
# ...
Build process completed successfully
Installing '/opt/homebrew/Cellar/php/8.2.10/pecl/20220829/redis.so'
install ok: channel://pecl.php.net/redis-6.0.1
Extension redis enabled in php.ini
直接成功了,这有点太顺利了吧。
PS: 平时用 PCEL 安装个扩展大概率是要跪的,毕竟网址被墙了,没想到今天直接成功了,难道是墙变低了?
虽说不影响使用了,但我服务器的 php 版本是 8.1 的,所以我希望我本地的版本与服务器保持一致,所以还是得切回去。
以前用的是 brew link/unlink 命令,这次先试试看:
TMBA:~ tony$ brew link php@8.1
Linking /opt/homebrew/Cellar/php@8.1/8.1.23...
Error: Could not symlink bin/pear
Target /opt/homebrew/bin/pear
is a symlink belonging to php. You can unlink it:
brew unlink php
To force the link and overwrite all conflicting files:
brew link --overwrite php@8.1
To list all files that would be deleted:
brew link --overwrite --dry-run php@8.1
提示我要先 unlink 老版本,或者强制 link,我选择强制,再次执行:
TMBA:~ tony$ brew link --overwrite php@8.1
Linking /opt/homebrew/Cellar/php@8.1/8.1.23... 835 symlinks created.
If you need to have this software first in your PATH instead consider running:
echo 'export PATH="/opt/homebrew/opt/php@8.1/bin:$PATH"' >> /Users/tony/.bash_profile
echo 'export PATH="/opt/homebrew/opt/php@8.1/sbin:$PATH"' >> /Users/tony/.bash_profile
提示我要更新环境变量,其实我的环境变量一直都是生效的,但完全不起作用。这步我就不用干了。
再次执行 php -v :
TMBA:~ tony$ php -v
PHP 8.1.23 (cli) (built: Aug 31 2023 18:43:16) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.23, Copyright (c) Zend Technologies
with Zend OPcache v8.1.23, Copyright (c), by Zend Technologies
重于切回来了,完美。