1、环境介绍
使用mac 自带的php 7.1.19进行开发,需要安装phpredis。
2、安装出错
2.1 下载 php ext-redis
去pecl.php.net 搜索redis 就可以找到php ext-redis
如上图,点击左下角的redis链接跳转到下载页面,点击相应的版本和文件包下载,也可以直接使用
https://pecl.php.net/get/redis-4.2.0.tgz
这个链接下载
sudo mkdir /usr/data/soft
cd /usr/data/soft
curl -o ext-redis.gz.tar https://pecl.php.net/get/redis-4.2.0.tgz
tar -zxvf ext-redis.gz.tar
cd /usr/data/soft/redis-4.2.0/redis-4.2.0
phpize
这里出现错误
grep: /usr/include/php/main/php.h: No such file or directory
grep: /usr/include/php/Zend/zend_modules.h: No such file or directory
grep: /usr/include/php/Zend/zend_extensions.h: No such file or directory
Configuring for:
PHP Api Version:
Zend Module Api No:
Zend Extension Api No:
到这里后,笔者被卡这一步很久,都没有得到很好的解决办法,中间也尝试过通过下载php 文件来解决这个错误,这个错误是解决了,但是又出现了其它的错误
在./configure 执行成功后
再执行make && make install 出现了以下错误,也就是下面这个错误卡了很多的时间 ,在网上搜索是因为mac OS 升级导致/usr/include 丢失。事实上也是因为这个问题导致的。
在解决这个问题前,我也试过安装Command Line Tools 来解决这个问题。
xcode-select --install
直接在shell 里面执行以上命令可以进行安装。
但是安装完成后也没有解决上图的错误,这个时候发现网上说一种方法可以解决于是做了尝试。
sudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include /usr/include
后来才发现我的电脑中根本没有/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include 这个乱七八糟的文件夹。
这时问题一度无法解决,也做了不少的尝试都失败了。
3、解决方法
后来通过上图的错误,做出如下猜测,是因为 缺少 zend_config.h 文件导致的,这个时候就在电脑中搜索
sudo find /|grep zend_config\.h
发现了这个文件,知道是因为丢失/usr/include 导致的问题,这个时候就结合
sudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include /usr/include
把文件夹的路径改成
sudo ln -s /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include /usr/include
执行成功后,一切解决。
4、总结
是因为升级mac OS 导致的/usr/include 丢失 ,从而导致phpize 不能正常的执行
安装Xcode 解决了 phpize 的执行问题
通过把开发环境软链过去,解决make && make install 的问题
sudo ln -s /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include /usr/include
5、所有命令行
sudo mkdir /usr/data/soft
cd /usr/data/soft
curl -o ext-redis.gz.tar https://pecl.php.net/get/redis-4.2.0.tgz
tar -zxvf ext-redis.gz.tar
cd /usr/data/soft/redis-4.2.0/redis-4.2.0
xcode-select --install
sudo ln -s /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include /usr/include
phpize
./configure
make && make install
安装 php ext-redis 完成
6、查看扩展情况
在php.ini 中设置
extension=redis.so
然后重启nginx 和php-fpm 就可以看到