Homebrew安装PHP

由于Homebrew仓库的更新, 将homebrew/homebrew-php合并到homebrew/core中, 同时也去掉了php各种扩展包. 甚至php安装包的名称也做了统一修改

以php7.1为例, 以前的安装方式是

brew install php71

而现在需要按照brew的统一包名称规范

brew install php@7.1

如果默认使用brew install php, 会安装最新版本, 相关依赖如下

整个过程时间会比较长, 如果没有科学上网, 建议使用docker方式部署

对比以前的方式, 现在安装的php会附加更多的扩展, 比如mysqlnd, gd相关的扩展都会统一安装进来. 对于一般的初学者, 确实方便了很多

但对于使用框架的开发人员, 反而会因为找不到其他扩展而烦恼, 比如redis, 如果我们按照以前的方式安装redis扩展

brew install php71-redis

brew install php@7.1-redis

从结果来看, 这个安装包是找不到了, 那么这个时候, 我们有两种做法

  1. 通过源码编译安装
  2. 通过pecl安装

这里, 我们选择第二种方式, 毕竟我们不想处理php和扩展包的版本依赖问题

如果使用pecl安装, 首先得安装pear, 这个大家可以自行安装, 但这里有个好消息告诉大家, pecl工具已经在安装brew install php时, 作为依赖一并安装了, 所以这里直接使用就好了

这个时候, 可以安装我们的扩展了

pecl install redis

可以看到报错, pecl会自动帮我们解决依赖问题, 提示安装其他扩展

我们这里的redis扩展还需要依赖igbinary, 这个也是核心包中没有的, 所以还需要先安装它

pecl install igbinary

再安装redis扩展

pecl install redis

当我们安装完redis扩展后, 可以确认模块是否加载成功

php -m | grep redis

php.ini配置文件中确认

grep -rn 'redis' /usr/local/etc/php/8.0/php.ini

确定so文件的位置, 可以通过查看pecl的编译后的文件路径

pecl config-show

ls /usr/local/lib/php/pecl/20200930 | grep redis

可以看到我们通过pecl编译安装的扩展文件在里面

展示评论