通过编译安装的方式,需要手动处理的内容太多,耗时又费力。那么通过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-config
、phpize
等命令是跟当前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扩展了。