上文

虽然解决了 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

重于切回来了,完美。

标签: macos, php, brew, link

添加新评论