Mac 中brew安装PHP及扩展

brew安装php

brew search php  使用此命令搜索可用的PHP版本
brew install [email protected] 使用此命令安装指定版本的php
brew install brew-php-switcher 安装php多版本切换工具
brew-php-switcher 7.1 切换PHP版本到7.1(需要brew安装多个版本)

PHP -v 查询版本信息,确定是否安装成功(如果显示的是系统自带版本,则需要配置环境变量,修改~/.bash_profile中/usr/local/bin的优先级)

brew安装PHP扩展

通过brew安装的PHP版本中自带了pecl,可以直接使用

pecl version 查看版本信息
pecl help 可以查看命令帮助
pecl search xdebug  搜索可以安装的扩展信息
pecl install xdebug 安装扩展
pecl install http://pecl.php.net/get/redis-4.2.0.tgz 安装指定版本扩展

默认扩展.so文件会被编译到/usr/local/Cellar/[email protected]/7.2.15/pecl/目录中,此目录实际上是软链接到了/usr/local/lib/php/pecl目录。


image.png

接下来需要的是配置扩展,这里提供两种方法:

方法一:

因为[email protected]的默认扩展目录为/usr/local/Cellar/[email protected]/7.2.15/lib/php/20170718
所以我们可以直接将/usr/local/Cellar/[email protected]/7.2.15/pecl/20170718目录下的.so文件复制到默认目录下,然后在/usr/local/etc/php/7.2/conf.d中新建一个扩展配置文件extension.ini,写入配置

[xdebug]
zend_extension="xdebug.so"

再通过php --ini查看php加载的配置文件路径,并删除php.ini中的

zend_extension="xdebug.so"
方法二:

因为/usr/local/Cellar/[email protected]/7.2.15/pecl/是软链接到了/usr/local/lib/php/pecl目录的,而php.ini中的

extension_dir = "/usr/local/lib/php/pecl/20170718"

所以我们可以直接在/usr/local/etc/php/7.2/conf.d中新建一个扩展配置文件extension.ini,写入配置

[xdebug]
zend_extension="/usr/local/lib/php/pecl/20170718/xdebug.so"

以上方法二选一:
配置完成之后重启服务器,php -m查看扩展是否安装成功。

注:Mac下如mysqli等扩展,phpinfo()和php -m都会显示安装加载了并且是可以直接使用的,但是你在扩展目录里是找不到相应的.so文件的,所以你要是把php.ini中extension注释去掉的话,重启服务器会报错找不到扩展文件(因此不需要再去配置php.ini)。这里经过查资料,据说是这些找不到.so文件的扩展是通过xcdoe做了处理的,具体如何没找到相关资料。搜索了下,这里贴出我感觉是这些扩展的存在路径:

/usr/local/Cellar/[email protected]/7.2.15/include/php/ext

这里记录几种查看扩展是否开启的方法:

1. php -m
2. phpinfo()
3. extension_loaded() //直接判断扩展是否加载
4. function_exists() //判断扩展库下的方法是否存在
5. php --ri 扩展名 //查看扩展版本信息

你可能感兴趣的:(Mac 中brew安装PHP及扩展)