Redis安装
1,安装redis
wget http://download.redis.io/releases/redis-3.0.5.tar.gz
tar -zxvf redis-3.0.5.tar.gz
cd redis-3.0.5
make
cd src
make install PREFIX=/usr/local/redis
cd ..
mkdir /usr/local/redis/etc
cp redis.conf /usr/local/redis/etc/redis.conf
或者直接批处理:
cd && wget http://download.redis.io/releases/redis-3.0.5.tar.gz && tar -zxvf redis-3.0.5.tar.gz && cd redis-3.0.5 && make && cd src && make install PREFIX=/usr/local/redis && cd .. && mkdir /usr/local/redis/etc && cp redis.conf /usr/local/redis/etc/redis.conf
2、默认情况,Redis不是在后台运行,需要把redis放在后台运行:
vi /usr/local/redis/etc/redis.conf
将daemonize的值改为yes
2.1 如果redis需要设密码,改:
requirepass 【密码】
/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
下面安装扩展,配置php支持
1.下载编译安装redis
$ wget https://github.com/phpredis/phpredis/archive/2.2.4.tar.gz $ cd phpredis-2.2.7 # 进入 phpredis 目录 $ /usr/local/php/bin/phpize # php安装后的路径,使用phpize生成编译文件 $ ./configure --with-php-config=/usr/local/php/bin/php-config $ make && make install
2.修改php.ini添加redis扩展
vi /usr/local/php/lib/php.ini 增加如下内容: extension_dir = "/usr/local/php/lib/php/extensions/no-debug-zts-20090626" extension=redis.so
lnmp环境下,php.ini文件在/usr/local/php/etc/php.ini,这里会有些不同。
有的会在编译时(make && make install)出现下面的错误
fatal error: ext/standard/php_smart_str.h: No such file or directory
那是因为你是PHP7版本,我们需要从github,下载指定的分支
git clone https://github.com/phpredis/phpredis.git cd php redis/ git checkout php7 phpize ./configure make && make install 启动扩展 光安装了还不够,我们还需要编辑PHP的配置文件来使扩展被加载才行, vi /uer/local/php/etc/php.ini,在配置文件中添加如下语句: extension=redis.so
还有情况你会在执行,./config时,让你制定php-config的路径
configure: error: Cannot find php-config. Please use --with-php-config=PATH
//这里指定路径 [root@iZuf6gq83tirjb44hc5q6vZ phpredis]# ./configure --with-php-config=/usr/local/php/bin/php-config
再一次执行 make && make install ,结果如下:
Build complete. Don't forget to run 'make test'. Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/
查下php扩展下的redis.so文件,是否生成
[root@iZuf6gq83tirjb44hc5q6vZ no-debug-non-zts-20160303]# ll total 6644 -rwxr-xr-x 1 root root 3418276 Jun 28 13:45 opcache.a -rwxr-xr-x 1 root root 1635527 Jun 28 13:45 opcache.so -rwxr-xr-x 1 root root 1730895 Jun 28 22:32 redis.so
再次vi php.ini,加上,不用加路径了,直接写下面的这段代码,重启服务,查看phpinfo
extension=redis.so
session.save_handler = redis #原值:files
session.save_path = “tcp://127.0.0.1:6379″ #原值:/tmp,且未启用
session.auto_start = 0 #原值:0
session的存储不再使以文件的形式存储到硬盘上,因为传统方式当用到seesion时,还要先读到内存中,这也是一些大网站,session值过多,导致程序运行效率低的原因,因为他要在一堆session文件中,将你要的session数据读到内存中
这样配置session数据存储到redis中,大大增加了运行效率.
完成!
自己踩过的坑,只有自己才知道