解决php7.1中yii2-redis-session不能使用的问题

问题

yii2中使用redis作为session存放点,已经配置好redis,而且redis使用一切正常,但是session的任何操作都不能正常使用。
配置如下:

1
2
3
4
'session' => [
'class'=>'yii\redis\Session',
'redis' => 'redis'
]

没有抛出错误,但是查看日志发现:session_start(): Failed to read session data: user

环境

  • php 7.1.9
  • apache 2.4

原因

是php7.1导致的,下面是官方解释:(http://php.net/manual/en/sessionhandlerinterface.read.php)

图片

解决方法

重写yii2-redis中的Session.php
readSession方法(115行~120行)

1
2
3
4
5
6
public function readSession($id)
{
$data = $this->redis->executeCommand('GET', [$this->calculateKey($id)]);
return $data === false || $data === null ? '' : $data;
}
------ 本文结束 ------

版权声明

yoGa's Blog by yoga lee is licensed under a Creative Commons BY-NC-ND 4.0 International License.
yoga lee创作并维护的yoGa's Blog采用创作共用保留署名-非商业-禁止演绎4.0国际许可证
本文首发于yoGa's Bloghttp://yoga.ibye.cn ),版权所有,若需转载请注明出处,谢谢支持。