欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

PHP_YII框架_Session共享设置

程序员文章站 2022-03-25 19:11:36
[TOC] 环境准备 1. PHP 安装 redis 模块 2. 安装Redis软件 安装好后设置一下配置,比如:密码、端口、后台运行 3. 测试是否能Ping Redis 如果redis不是安装在本地,安装在虚拟机、别的机器,先ping一下查看是否能ping通; 4. 配置二级域 我使用Phpst ......

环境准备

1. php 安装 redis 模块

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

2. 安装redis软件

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

3. 测试是否能ping redis

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

4. 配置二级域

我使用phpstudy环境工具;

PHP_YII框架_Session共享设置

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

yii框架环境准备

yii-redis插件,可以手动下载,也可以通过composer下载;
PHP_YII框架_Session共享设置

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 值都是一样的。