下载完成得到phpredis-master.zip
移动到/usr/local/目录中
sudo cp phpredis-master /usr/local/
进入/usr/local/目录
cd /usr/local
解压phpredis-master.zip
tar -zxvf phpredis-master.zip
得到phpredis-master文件夹,将文件夹改名为phpredis
sudo mv phpredis-master phpredis
进入phpredis文件夹
cd phpredis
执行phpize
sudo phpize
若未安装autoconf,则会报错
Cannot find autoconf.
需要先安装autoconf
brew install autoconf
若未安装brew,则另外百度安装brew的方法
安装完autoconf之后,再执行phpize,接着执行下面的代码
./configure --with-php-config=/usr/bin/php-config
执行make
sudo make
执行make install
sudo make install
由于OS 10点几开始本身关闭了对lib文件夹的操作权限,所以这句话会报错,自行百度mac获取bin权限的方法,然后将lib下的php文件夹赋予权限
再执行make install成功
然后打开php的配置文件,默认在/etc/php.ini,增加下列代码
extension=redis.so
重启apahce后
php -m|grep redis
查看phpredis扩展是否开启。
macOS 10.14软件编译时找不到头文件的解决方法
昨天(也就是2018-09-25)新版本的macOS Mojave 10.14正式开放下载,我如此时尚,自然是要第一时间下载安装的(这句话好熟悉的样子)。
今天开发时发现有些PHP扩展无法使用,提示版本不兼容需要重新编译。
这个自然是难不倒我的,于是:下载扩展源码包、解压后进入文件夹、执行phpize报错了。。。。
1
|
$ phpize
|
缺少PHP的header头文件,再一看/usr/include
文件夹根本不存在,想必是Xcode command line tools
没有安装完全(我macOS 10.13版本装过的)?熟练的敲出如下命令:
1
|
$ xcode-select --install
|
静等了一会安装完成,一看/usr/include
文件夹还是不存在,难道升级系统后System Integrity Protection
自动打开导致文件写不进?接着执行:
1
|
$ csrutil status
|
SIP
处于禁用状态,没有问题。
再安装一遍Xcode command line tools
试试:
1
|
$ xcode-select --install
|
不给装了,这可如何是好。。
于是各种吃力爬英文网站,最后终于让我找到了,只需执行下列命令安装header头文件SDK即可:
1
|
$ cd /Library/Developer/CommandLineTools/Packages/
|
安装完成再一看/usr/include
文件夹和里面的都文件都回来了。
接下里一切都简单多了,再次(编译过PHP扩展的一看就懂):
1
|
$ phpize
|
以上就是解决问题的大概过程,然后一一顺利解决掉所有不兼容的PHP扩展,很开心。
顺便记录一下如何将自己的mac变成一台开发机器:
1
|
# csrutil disable # 需要在恢复模式下运行命令,具体请自行搜索。
|