configure: error: Cannot find php_hash.h
或者
configure: error: Cannot find php_json.h
原因:如果系统是big sur,且用的系统自带的php,那么是无法安装phpredis的,因为高版本的系统没有写入权限,网上的关闭SIP和sudo mount -uw /方法都没用
暂时成功的唯一办法是装其他版本的php,放弃这个自带的php,装其他版本也很简单,比如php7.2
brew install php72
安装成功提示
The php.ini and php-fpm.ini file can be found in:
/usr/local/etc/php/7.2/
php@7.2 is keg-only, which means it was not symlinked into /usr/local,
because this is an alternate version of another formula.
If you need to have php@7.2 first in your PATH, run:
echo 'export PATH="/usr/local/opt/php@7.2/bin:$PATH"' >> ~/.zshrc
echo 'export PATH="/usr/local/opt/php@7.2/sbin:$PATH"' >> ~/.zshrc
For compilers to find php@7.2 you may need to set:
export LDFLAGS="-L/usr/local/opt/php@7.2/lib"
export CPPFLAGS="-I/usr/local/opt/php@7.2/include"
To have launchd start php@7.2 now and restart at login:
brew services start php@7.2
然后正常安装phpredis扩展即可
进入phpredis目录
$ /usr/local/opt/php@7.2/bin/phpize #这里是新的PHP安装的目录 也就是找到phpize 所在目录
$ ./configure --with-php-config=/usr/local/opt/php@7.2/bin/php-config
$ make && make install
修改php配置文件,加载扩展
vi /usr/local/etc/php/7.2/php.ini
加上 extension=redis