php7编译安装phpredis扩展报一下错误的解决办法
[root@************ phpredis-2.2.8]# make
/bin/sh /usr/local/src/phpredis-2.2.8/libtool --mode=compile cc -I. -I/usr/local/src/phpredis-2.2.8-DPHP_ATOM_INC -I/usr/local/src/phpredis-2.2.8/include-I/usr/local/src/phpredis-2.2.8/main -I/usr/local/src/phpredis-2.2.8-I/usr/local/php/include/php -I/usr/local/php/include/php/main -I/usr/local/php/include/php/TSRM -I/usr/local/php/include/php/Zend -I/usr/local/php/include/php/ext -I/usr/local/php/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /usr/local/src/phpredis-2.2.8/redis.c -o redis.lo
mkdir .libs
cc -I. -I/usr/local/src/phpredis-2.2.8-DPHP_ATOM_INC -I/usr/local/src/phpredis-2.2.8/include-I/usr/local/src/phpredis-2.2.8/main -I/usr/local/src/phpredis-2.2.8-I/usr/local/php/include/php -I/usr/local/php/include/php/main -I/usr/local/php/include/php/TSRM -I/usr/local/php/include/php/Zend -I/usr/local/php/include/php/ext -I/usr/local/php/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /usr/local/src/phpredis-2.2.8/redis.c -fPIC -DPIC -o .libs/redis.o
In file included from /usr/local/src/phpredis-2.2.8/redis.c:27:0:
/usr/local/src/phpredis-2.2.8/common.h:3:40: 致命错误:ext/standard/php_smart_str.h:没有那个文件或目录
#include <ext/standard/php_smart_str.h>
^
编译中断。
make: *** [redis.lo] 错误1
解决办法,因为最新的 phpredis 分了几大分支,针对最新的PHP稳定发行版 php7 有专门为php7的分支,所以我们从github拉下phpredis 源码
git clone https://github.com/nicolasff/phpredis
将原来的phpredisy移动或者备份
然后再重复执行
/usr/local/php/bin/phpize #用phpize生成configure配置文件 (#找不到phpize的路径可用whereis命令查看:whereis phpize 得到路径 或者 find / -name phpize 得到路径)
# ./configure --with-php-config=/usr/local/php/bin/php-config #配置(./configure --with-php-config=/usr/local/php/bin/php-config #此处为php-config的路径,可用whereis php-config查看路径 或者 find / -name php-config 得到路径)
最后:
make
make install