PHP_YII框架_Session共享设置

2019-05-08 07:31:51来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

目录

  • 环境准备
    • 1. PHP 安装 redis 模块
    • 2. 安装Redis软件
    • 3. 测试是否能Ping Redis
    • 4. 配置二级域
  • Yii框架环境准备
  • Yii配置文件
  • 效果

环境准备

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


原文链接:https://www.cnblogs.com/mysticbinary/p/10821484.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:PHP防注入漏洞过滤函数代码

下一篇:Php无限层级并显示层级数