MacOS brew安装PHP及其扩展


通过编译安装的方式,需要手动处理的内容太多,耗时又费力。那么通过brew来安装PHP就是一个非常明智的选择。一键安装:

brew install php

安装成功后,最后部分提示如下,因为MacOS还自带了Apache。

==> php
To enable PHP in Apache add the following to httpd.conf and restart Apache:
    LoadModule php7_module /usr/local/opt/php/lib/httpd/modules/libphp7.so

    <FilesMatch \.php$>
        SetHandler application/x-httpd-php
    </FilesMatch>

Finally, check DirectoryIndex includes index.php
    DirectoryIndex index.php index.html

The php.ini and php-fpm.ini file can be found in:
    /usr/local/etc/php/7.4/

To have launchd start php now and restart at login:
  brew services start php
Or, if you don't want/need a background service you can just run:
  php-fpm

此时,如果想用到这个PHP可能还不行。比如:php -v一下,发现版本还是之前机器里旧的PHP。替换方式如下:

brew link php

一般会提示覆盖警告而失败,强制链接:

brew link --overwrite php

当然,从警告中就可以看到,通过link --overwrite --dry-run php可以查看覆盖文件列表。

链接成功后的提示:

Linking /usr/local/Cellar/php/7.4.3... 282 symlinks created

安装扩展,例如redis扩展

直接安装的PHP是没有redis扩展的,安装的时候,可以通过pecl来安装,简单方便。

首先,搜索一下扩展的具体名称:

pecl search redis

得到如下结果:

Matched packages, channel pecl.php.net:
=======================================
Package Stable/(Latest)  Local
redis   5.2.0RC2 (alpha)       PHP extension for interfacing with Redis

可见,就一个。直接安装:

pecl install redis

安装过程中注意,此为编译安装,PHP环境通过php-config来获取,如当前的PHP信息:

downloading redis-5.1.1.tgz ...
Starting to download redis-5.1.1.tgz (245,205 bytes)
...................................................done: 245,205 bytes
25 source files, building
running: phpize
Configuring for:
PHP Api Version:         20190902
Zend Module Api No:      20190902
Zend Extension Api No:   320190902

所以,确保php-configphpize等命令是跟当前PHP版本一致的。一般通过brew link php就可以保证是正确的了。

安装日志的最后部分:

Build process completed successfully
Installing '/usr/local/Cellar/php/7.4.3/pecl/20190902/redis.so'
install ok: channel://pecl.php.net/redis-5.1.1
Extension redis enabled in php.ini

看到已经编译完成redis.so,并且更新了php.ini,此时通过php -m就应该能看到redis扩展了。


发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注