美文网首页
Mac 中brew安装PHP及扩展

Mac 中brew安装PHP及扩展

作者: Mr_Arvin | 来源:发表于2019-02-28 17:01 被阅读0次

    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 扩展名 //查看扩展版本信息
    

    相关文章

      网友评论

          本文标题:Mac 中brew安装PHP及扩展

          本文链接:https://www.haomeiwen.com/subject/rsehuqtx.html