最近在学习关于PHP缓存技术方面的问题,然后了解到了Redis这种快捷方便的缓存方式,结果在做php扩展Redis模块的时候,出现了一些问题,费了好长时间才解决,在这里写出来,希望能够为大家解决一些问题。主要是为刚入linux的萌新解决一下烦恼。。。。
我用的Linux系统是Centos6.6
首先安装redis很简单
$ wget http://download.redis.io/releases/redis-2.8.3.tar.gz
2、编译完成后,在Src目录下,有四个可执行文件redis-server、redis-benchmark、redis-cli和redis.conf。然后拷贝到一个目录下。即在usr目录下创建一个redis目录,将这四个文件放在redis目录下
3.启动redis服务,这里会出现一些问题
正常方法是
即在/usr/redis 目录下输入这条语句。然而
没错找不到这条命令,我也不明白为什么,我于是试了一下输入“./ redis-server”
成功的启动了redis服务。。。
4、然后用客户端测试一下是否启动成功。这是成功案例
如果出问题的话,应该和上面是一样的同样是
这时候用“./redis-cli”,应该就可以进入服务界面了如下
这些都是在/usr/redis目录下进行操作的。
安装phpredis扩展
1.下载:https://github.com/nicolasff/phpredis/archive/2.2.4.tar.gz
2.上传phpredis-2.2.4.tar.gz到/usr/local/src目录
3.cd /usr/local/src #进入软件包存放目录
4.tar zxvfphpredis-2.2.4.tar.gz #解压
5.cdphpredis-2.2.4 #进入安装目录
以上应该是没有任何问题的,照着操作即可
下面这一步,我在安装php的时候用的是yum install php php-devel
(php-devel是php相关开发包,一般手动导入扩展所需要用的,在这里导入redis扩展需要用到它,
不过一般在安装php的时候都统一安装了,这里是特别拿出来说明一下,如果没有安装需要自行安装)
我并没有在/usr/local/php/bin/中发现phpize甚至在/usr/local中根本没有php目录,更别说bin目录和phpize了。
然后我在网上疯狂的找,还是没有线索,最后我在/usr/local/src发现了我之前解压过的phpredis-2.2.4文件夹,我抱着试一试的心态,在这个目录中运行了phpize
没错成功了。生成了configure文件,之前我几乎把整个linux文件目录翻遍了都没有找到php目录,我也不知道为什么,只有在etc下找到了php.d目录,然而没有卵用,如果是在其他目录中执行phpize会报错(如下图),具体原因我百度后也没有弄清楚,总之,这个扩展服务是安装成功了
6./usr/local/php/bin/phpize #用phpize生成configure配置文件,目录可能不同。phpize是php中bin目录下的一个可执行文件,所有要先找到对应的目录。
之后就顺顺利利的用./configure来进行配置吧,当然还是在/usr/local/src/phpredis-2.2.4目录下
7./configure--with-php-config=/usr/local/php/bin/php-config #配置,注意要先确保/usr/local/php/bin/php-conig存在。对应php的bin目录下的php-config
8.make #编译
9.make install #安装
安装完成之后,
出现下面的安装路径
/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/(这个路径如果出现了,则在后面会用到)
也可能出现
Installing sharedextensions: /usr/lib64/php/modules/
以上是的正常,继续下面的。
#修改php.ini
vim /usr/local/php/etc/php.ini (php.ini也有可能不在这个目录下,而在/etc中,自己找一下)
#查找extension_dir,修改为(我在php.ini中没找到extension_dir,直接在最后添加的,没什么影响)
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/"
注意这里的dir就是你上面出现的安装路径,不一定是我写的这个,按照上面最后出现的安装路径来写
#添加redis
extension = redis.so
#重启apache
service httpd restart
OVER!