php7 安装 redis拓展 php-redis

标题内容

前言

Lnmp 是我们常见的架构,但是有时根据业务需要,在php前面需要加redis或者memcache做缓存(如session缓存),php默认是不能连接的,需要我们下载拓展模块(php-redis 或者memcached)才能将php和redis/memcache相连。长话短说下面一起来学习下如何安装redis-php拓展模块来实现php和redis连接

条件

拓展模块也有版本要求,php7和7之前的版本对应着不同版本的php-redis模块,这里大家要根据需求选择,企业里大多数都用Php7以上了(性能很棒),我这里是以php7.2版本演示。

注意:php-redis 2.24版本不适用php7 。之前用了2.24版本报错如下。所以这里从git下载 php 7对应的拓展模块

下载地址:

http://pecl.php.net/package/redis (官网)

这里下载php-redis 4.2版本即可
安装php-redis
1.wget http://pecl.php.net/get/redis-4.2.0.tgz
2.tar -xvzf   redis-4.2.0.tgz -C /usr/local/
3.cd redis-4.2.0 && phpize && ./configure --with-php-config=/usr/local/php/bin/php-config --enable-redis &&make && make install
编译成功后会将编译好的php-redis模块放在 /usr/local/php/lib/php/extensions/no-debug-zts-20170718/ 这个目录下面。
注意:这个20170718和你的php版本有关系,不同版本生成的数不同。通过php.info可以看到。所以写成脚本时候需要注意,这个编译好的redis.so的位置应该怎么自动获取

4.修改php.ini 
添加 :  extension=/usr/local/php/lib/php/extensions/no-debug-zts-20170718/redis.so
注意:这个redis.so需要根据你自己的路径填写,编译后会提示的。也可以用find去找一下,确认是否编译成功 
5.重启php-fpm生效
service php-fpm restart
6.验证结果
php -m |grep redis 即可

也可以通过info.php文件查看

遇到的问题1.php-redis版本的选择问题 。一定要去官网看一下选择正确的版本。 2.没有正确指定redis.so的路径,编译后会提示你redis.so的路径,网上的都是基于自己php版本的,是不能用来参考的 3.前两个问题解决后,理应通过 php -m |grep redis 看到结果,但是还是不行。分析下觉得php.ini配置没生效。通过info.php文件查看下加载php.ini文件的路径

这里我编译的时候加载php.ini的路径在 /usr/local/php/conf/,但是没有创建该路径,我的机器上的php.int在 /usr/local/php/etc/目录下了。所以这里load configure file提示none。

解决:创建conf目录 chown www:www /usr/local/php/conf -R 将php.ini拷贝到conf目录下。重启Php-fpm生效。再次查看

php连接redis测试代码模板

<?php
$redis_host = ‘192.168.137.99’;
$redis_port = 6379;
$redis_psw = ‘123456’;

$redis = new Redis ();
$redis->connect ( $redis_host, $redis_port );
$redis->auth ( $redis_psw );
$redis->set(‘a’,1);
echo $redis->get(‘a’);
?>

总结

这里仅仅演示了php添加php-redis的拓展模块,不过万变不离其宗,注意了这些问题以后。再编译其他模块都是一个原理。

 


                        
点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Loading...