brew安装php
brew search php 使用此命令搜索可用的PHP版本
brew install php@7.1 使用此命令安装指定版本的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/php@7.2/7.2.15/pecl/目录中,此目录实际上是软链接到了/usr/local/lib/php/pecl目录。
image.png
接下来需要的是配置扩展,这里提供两种方法:
方法一:
因为PHP@7.2的默认扩展目录为/usr/local/Cellar/php@7.2/7.2.15/lib/php/20170718
所以我们可以直接将/usr/local/Cellar/php@7.2/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/php@7.2/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/php@7.2/7.2.15/include/php/ext
这里记录几种查看扩展是否开启的方法:
1. php -m
2. phpinfo()
3. extension_loaded() //直接判断扩展是否加载
4. function_exists() //判断扩展库下的方法是否存在
5. php --ri 扩展名 //查看扩展版本信息
网友评论