PHP_YII框架_Session共享设置


环境准备

1. PHP 安装 redis 模块

// cmd终端输入命令 确认是否安装
$ php -m
[PHP Modules]
...
redis

2. 安装Redis软件

安装好后设置一下配置,比如:密码、端口、后台运行

3. 测试是否能Ping Redis

如果redis不是安装在本地,安装在虚拟机、别的机器,先ping一下查看是否能ping通;

4. 配置二级域

我使用Phpstudy环境工具;


redis插件存取数据默认是80端口,如果改别的端口 ,可能要修改一些配置文件(需要修改端口的请找具体教程 修改配置);

Yii框架环境准备

yii-redis插件,可以手动下载,也可以通过composer下载;

Yii配置文件

需要跨站共享session的三级域,每一个程序都需要配置成一致。

config\web.php

<?php
$config = [
    'components' => [
        'session'=>[
            'class' => 'yii\redis\Session',
            'keyPrefix'=>'session', // 跨站共享session,前缀必须设置一样
            'redis' => 'redis',
            'cookieParams' => [
                'domain' => 'test.com', // 配置二级域
                'httponly' => true,
            ]
        ],
        'redis' => [
            'class' => 'yii\redis\Connection',
            'hostname' => '127.0.0.1',   // Redis服务器 IP
            'port' => 6379,  // Redis 端口
            'database' => 0,
        ],
?>

web\index.php

<?php
ini_set('session.cookie_domain','test.com');  // 配置二级域
?>

效果

你浏览器请求一次 a.test.com ,在请求一次b.test.com ,发现他们两个三级域 Cookie 中的 PHPSESSIONID 值都是一样的。

猜你喜欢

转载自www.cnblogs.com/mysticbinary/p/10821484.html