Thinkphp配置Session+Redis实现会话共享
通常我们在做分布式布局的时候,会涉及到多web服务器,用户会话需要进行共享,下面简单说一下再thinkphp结构中如何配置redis以实现session共享
假设两套代码分别对应tp1.local.com、tp2.local.com域名,找到config底下session.php配置文件进行如下修改
第一步,配置session内容,两套代码都要配置
return [
'id' => '',
// SESSION_ID的提交变量,解决flash上传跨域
'var_session_id' => '',
// SESSION 前缀
'prefix' => 'module',
// 驱动方式 支持redis memcache memcached
'type' => 'redis',
// 是否自动开启 SESSION
'auto_start' => true,
// redis主机
'host' => '127.0.0.1',
// redis端口
'port' => 6379,
// 密码
'password' => '',
'domain' => '.local.com',//域名前面的那个小“.”别忘了 ,设置session域
]
第二步,测试,本文是下载两个tp5.1.10框架进行测试。
在tp1项目index 模块 Index控制器内的test 利用session助手函数存储session变量
public function test()
{
session('hello','你好,Thinkphp');
echo session('hello');
}
然后在 tp2项目的任意方法内获取session值
public function hello()
{
echo session('hello');
}
然后去访问代理机test 分配到两个web机后会自动写入session ,再次访问hello的时候 会显示"你好,Thinkphp"