linux安装redis服务,配置PHP扩展

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 【密码】

3,启动Redis:

/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中,大大增加了运行效率.

 

完成!

自己踩过的坑,只有自己才知道

原文地址:https://www.cnblogs.com/hanshuai0921/p/7092081.html