mac 安装php ext-redis 报错

1、环境介绍

    使用mac 自带的php 7.1.19进行开发,需要安装phpredis。

2、安装出错

2.1 下载 php ext-redis

mac 安装php ext-redis 报错_第1张图片

mac 安装php ext-redis 报错_第2张图片

去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 丢失。事实上也是因为这个问题导致的。

mac 安装php ext-redis 报错_第3张图片

在解决这个问题前,我也试过安装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 就可以看到

mac 安装php ext-redis 报错_第4张图片

 

你可能感兴趣的:(redis)