我们的项目所在的服务器的lamp环境中,经过这次安装php-redis扩展的时候才发现,服务器上竟然存在两个版本的php,一个是系统自带的版本5.3,一个是另外安装的版本5.6,而且似乎没有人安装过docker什么的来控制环境版本,这就尴尬了。。。
我首先百度centos上安装php-redis扩展的时候,根据流程,编译安装好以后,修改php.ini,重启apache后没有生效,php -m也没有看到redis出现在module的列表中,所以想查阅资料解决这个问题,然后php -v时发现php版本是5.6,而且通过phpinfo()查看扩展时发现其configure的路径不是php.ini所在的/etc/php.ini,而是/usr/local/php5/etc/php.ini,而这个路径文件不存在,所以找不到php.ini,我就认为文件缺失导致,然后将文件拷贝到这个路径,还有redis.so文件也是拷贝到相关extension路径,然后可以找到php.ini文件了。
然而还没有结束,虽然找到了,但是还是没有生效,php -m不仅找不到redis.so,还出现了错误,后来经过各大论坛和手册资料的查阅一番后,因为我运行/usr/bin/php -v发现版本是5.3,所以我之前编译使用的/usr/bin/phpize和/usr/bin/php-config在相同的路径下都是5.3版本的,然后编译安装到了/usr/lib64/php/modules路径中了,在5.6版本中的php拷贝过去的是版本5.3编译的,所以我删掉这个redis.so后,通过版本5.6的phpize和php-config两个文件重新编译安装了php-redis,然后成功出现在了exten