centos7安装redis、配置PHP扩展

简单部署服务

关闭防火墙:
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
firewall-cmd –state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
配置编译环境:
sudo yum install gcc-c++
下载源码:
wget http://download.redis.io/releases/redis-3.2.8.tar.gz
解压源码:
tar -zxvf redis-3.2.8.tar.gz
进入到解压目录:
cd redis-3.2.8
执行make编译Redis:
make MALLOC=libc
注意:make命令执行完成编译后,会在src目录下生成6个可执行文件,分别是redis-server、redis-cli、redis-benchmark、redis-check-aof、redis-check-rdb、redis-sentinel。
安装Redis:
make install
配置Redis能随系统启动:
./utils/install_server.sh
显示结果信息如下:
Welcome to the redis service installer
This script will help you easily set up a running redis server

Please select the redis port for this instance: [6379]
Selecting default: 6379
Please select the redis config file name [/etc/redis/6379.conf]
Selected default – /etc/redis/6379.conf
Please select the redis log file name [/var/log/redis_6379.log]
Selected default – /var/log/redis_6379.log
Please select the data directory for this instance [/var/lib/redis/6379]
Selected default – /var/lib/redis/6379
Please select the redis executable path [/usr/local/bin/redis-server]
Selected config:
Port           : 6379
Config file    : /etc/redis/6379.conf
Log file       : /var/log/redis_6379.log
Data dir       : /var/lib/redis/6379
Executable     : /usr/local/bin/redis-server
Cli Executable : /usr/local/bin/redis-cli
Is this ok? Then press ENTER to go on or Ctrl-C to abort.
Copied /tmp/6379.conf => /etc/init.d/redis_6379
Installing service…
Successfully added to chkconfig!
Successfully added to runlevels 345!
Starting Redis server…
Installation successful!

Redis服务查看、开启、关闭:
a.通过ps -ef|grep redis命令查看Redis进程
b.开启Redis服务操作通过/etc/init.d/redis_6379 start命令,也可通过(service redis_6379 start)
c.关闭Redis服务操作通过/etc/init.d/redis_6379 stop命令,也可通过(service redis_6379 stop)

redis.conf 的配置信息
1、daemonize 如果需要在后台运行,把该项改为yes
2、pidfile 配置多个pid的地址 默认在/var/run/redis.pid
3、bind 绑定ip,设置后只接受来自该ip的请求
4、port 监听端口,默认是6379
5、loglevel 分为4个等级:debug verbose notice warning
6、logfile 用于配置log文件地址
7、databases 设置数据库个数,默认使用的数据库为0
8、save 设置redis进行数据库镜像的频率。
9、rdbcompression 在进行镜像备份时,是否进行压缩
10、dbfilename 镜像备份文件的文件名
11、Dir 数据库镜像备份的文件放置路径
12、Slaveof 设置数据库为其他数据库的从数据库
13、Masterauth 主数据库连接需要的密码验证
14、Requriepass 设置 登陆时需要使用密码
15、Maxclients 限制同时使用的客户数量
16、Maxmemory 设置redis能够使用的最大内存
17、Appendonly 开启append only模式
18、Appendfsync 设置对appendonly.aof文件同步的频率(对数据进行备份的第二种方式)
19、vm-enabled 是否开启虚拟内存支持 (vm开头的参数都是配置虚拟内存的)
20、vm-swap-file 设置虚拟内存的交换文件路径
21、vm-max-memory 设置redis使用的最大物理内存大小
22、vm-page-size 设置虚拟内存的页大小
23、vm-pages 设置交换文件的总的page数量
24、vm-max-threads 设置VM IO同时使用的线程数量
25、Glueoutputbuf 把小的输出缓存存放在一起
26、hash-max-zipmap-entries 设置hash的临界值
27、Activerehashing 重新hash

177 # dbid is a number between 0 and 'databases'-1
 178 databases 16

在redis数据库配置文件中发现redis有16个库,查看进程的方法ps -ef|grep 加apache或者redis

ps -ef|grep redis
root     11646     1  0 00:48 ?        00:00:00 /usr/local/bin/redis-server 127.0.0.1:6379
root     12019 10530  0 01:03 pts/0    00:00:00 grep --color=auto redis

安装完我的redis目录在:user/local/bin

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

完成!

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

文 / Aex
LEAVE A REPLY
loading