php session存放redis,session共享

其实关于php session存放redis和session共享,网上已经有非常多的例子,最近我们的项目刚好也要配置,那就记录一下流水账吧,别人的终究不是自己的,只有你真正实践过,才能算会吧,而且我写博客也是本着写笔记一样。不,我写博客就是在写笔记。

关于跨域问题,我有写过一篇文章的,简单的举个例子:www.buruyouni.com和api.buruyouni.com,都是buruyouni.com的域名,但是他们是跨域的,ajax请求需要允许跨域,session和cookie默认情况下也是分开存放的。

这次我们的目标是在www.buruyouni.com登录了的用户,访问api.buruyouni.com也是登录状态的。那么就更改下配置文件,让这两个域名的session存放位置和生成的session_id是一样的,就行了

1.我们把session存放位置改成redis存放,这里要注意,php要安装redis扩展,怎么安装的,先去查看你的php版本号是多少位的,然后到:http://pecl.php.net/package/redis 找到redis扩展。

Windows的用户直接解压到php的etc目录下,在php.ini文件增加extension=php_redis.dll,

linux下载目前最新版本: wget http://pecl.php.net/get/redis-5.3.1.tgz   

解压:tar -zxvf redis-5.3.1.tgz  &&  cd  redis-5.3.1

/usr/local/php/bin/phpize  

./configure --with-php-config=/usr/local/php/bin/php-config

make && make install

 vim  /usr/local/php/etc/php.ini

增加:extension=redis.so

ps -ef|grep php 

平滑重启php:   kill  -USR2 端口号,查看phpinfo

Redis扩展安装好后,然后配置php.ini文件:

方法1改php.ini文件:

session.save_path="tcp://127.0.0.1:6379"

session.save_handler = redis

session.cookie_domain = "buruyouni.com"

 

方法2,在php文件里面改ini:

<?php
//如果是已存在session_id先清除浏览器缓存
ini_set('session.cookie_domain', 'yaf.com');//跨域,必须在session start之前
//安装了redis扩展,就存放session到redis
if(class_exists("redis", false)){
    ini_set("session.save_handler", "redis");
    ini_set("session.gc_maxlifetime", 3600);
    ini_set("session.save_path", "tcp://127.0.0.1:6379");
}

session_start();

$a = $_SESSION["name"];
$b = $_SESSION["cat"];
$c = $_SESSION["sessionid"];
echo $a."<hr>";
echo $b."<hr>";
echo $c."<hr>";
echo session_id()."<hr>";
phpinfo();
exit();

$_SESSION["name"] = "coco is a dog";
$_SESSION["cat"] = "cat is a cat";
$_SESSION['sessionid'] = 'this is session content!'.date("Y-m-d H:i:s");
echo $_SESSION['sessionid'];
echo '<br/>';
echo session_id();
phpinfo();
exit();

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值