redis 安装成功之后,我们是可以在命令行通过一些redis命令来操作的,但是如果我们要通过PHP来操作redis的话,还需要为php安装redis扩展。
可以通过命令:php -m
来查看php现在已经安装的一些扩展
默认情况下,php并没有redis扩展,那么我们需要为php打一个redis的包
1.进入redis官网,点击“clients”(客户端)
2.选择对应的语言,这里我们选择PHP
这里面有很多phpredis的扩展,我们可以选择带星的,相对是比较好的
这里我们选择phpredis
进入到这个扩展的github地址:https://github.com/phpredis/phpredis.git
3.在redis目录的同级目录下,把phpredis扩展下载下来
$ git clone https://github.com/phpredis/phpredis.git
$ cd phpredis
$ phpize
这里报错:Canot find autoconf,请查看解决方法:phpize 时 Cannot find autoconf 解决方法
$ ./configure --with--php-config=/usr/local/php5/bin/php-config
$ make && make install
执行完毕之后,你可以在/usr/local/php5/lib/php/extensions/no-debug-non-zts-20160303/目录下发现多了一个redis.so
然后我们需要在php.ini中,把我们这个扩展加上:
有两个点需要修改:
a.有一个extension_dir的选项,修改成你现在扩展的目录
b.加上:extension=redis.so
重新启动php-fpm 和服务器
再执行php -m 应该就可以看到 redis 扩展了。
=================================================================
正常情况下应该就是上边的流程,但是我在MAC上安装的时候,有的地方不一样,当然这可能是之前用这台电脑的同事,有安装redis的缘故。当我执行php -m的时候,我发现就已经有redis扩展了,但是我没有找到他对应的安装包之类的,我决定把之前的替换掉。
但是我在php.ini的配置文件中并没有找到redis.so类似的扩展,真的是百思不得其解,
后来在一个测试文件中写了:phpinfo()进行测试。
发现有其他的一些配置文件被解析到,我打开发现,原来是写在这个扩展的配置文件中的。
它也是引入了/usr/local/php5/lib/php/extensions/no-debug-non-zts-20160303/redis.so
但是之前我在打这个redis扩展包的时候,结束提示:
Installing shared extensions: /usr/local/php5/lib/php/extensions/no-debug-non-zts-20160303/
cp: /usr/local/php5/lib/php/extensions/no-debug-non-zts-20160303/#INST@14993#: Permission denied
及时我使用sudo make && make install 还是提示这个。
后来我在/phpredis/modules/目录下发现在在这个目录下也生成了redis.so,
我就直接把这个redis.so复制到/usr/local/php5/lib/php/extensions/no-debug-non-zts-20160303/去了。
$ sudo cp redis.so /usr/local/php5/lib/php/extensions/no-debug-non-zts-20160303/redis.so
后来我再去刷新phpinfo那个页面,就发现redis扩展的相关信息变了,应该是替换成功了
我就是一直都没生成redis.so 复制过去就ok了!
————————————————
版权声明:本文为CSDN博主「我_曾是少年」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/liaobangxiang/article/details/81077641