php 使用 redis 作为 session 管理,本文采用 unix 的 sock 方式连接,主要讲解编译 phpredis、配置 php 和 redis 的关联
1、简介
如果你想做 php 多服务器的会话保持,那么 redis 是一种选择之一。当然 memcache 也不错不过为了稳定,慢一点无所谓了。
本教程讲解 phpredis 编译,挂载,与配置文件修改。
2、准备
提前准备的工具
1、phpredis 包 [链接]
2、PHP 的搭建方法,包含了一些本站的配置
安装的前提环境
1、php 成品环境
2、redis 安装完毕 (可通过 yum 安装)
3、使用 root 用户
3、操作
3.1、编译 phpredis
首先我们需要生成 php 的当前配置信息
phpize
然后我们使用编译命令编译。参数里就是配置文件的位置(请自行替换为你的配置文件)
./configure --with-php-config=/usr/local/php7.2/bin/php-config
错误结果如下
configure: error: Cannot find php-config. Please use –with-php-config=PATH
正确结果如下
creating libtool
appending configuration tag “CXX” to libtool
configure: creating ./config.status
config.status: creating config.h
配置完毕后,我们开始编译 (2~10s)
make
便宜完毕了当然是安装
make install
返回的结果如下
Installing shared extensions: /usr/local/php7.2/lib/php/extensions/no-debug-non-zts-20170718/
实际上是生成了一个文件 redis.so 放在这个目录下了。
3.2、修改 PHP 配置使用 redis 作为 session 管理
首先我们需要把这个文件添加进 php.ini 中
extension=redis.so
接着我们修改 redis 配置文件 /etc/redis.conf
#port 6379 port 0 #禁用端口访问 unixsocket /tmp/redis.sock unixsocketperm 660 #限制访问权限 # maxmemory <bytes> maxmemory 512mb #限制最高内存
然后我们修改 php 的配置 /usr/local/php7.2/etc/php-fpm.d/www.conf
php_value[session.save_handler] = redis php_value[session.save_path] = "unix:/var/run/redis.sock"
最后我们将 nginx 加入到 redis 用户组中
usermod -G redis nginx
4、讲解
默认编译 PHP 时,不会自带 redis 的相关组件。
而 redis 作为数据库,速度比文件加载就不知道快到哪去了。
5、后期修订
无
6、相关链接
1、phpredis 包 [链接]