php使用redis管理session日常笔记

博主在CentOS7下已安装好php、php - fpm、mysql、nginx、redis,尝试将php的session交给redis管理。简单配置php.ini后测试无法获取session值,发现配置被覆盖。最终将session配置放到php - fpm的配置中,重启php - fpm后测试成功。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前在centos7下已经用yum安装好了php,php-fpm,mysql,nginx,redis。现在开始把php的session交给redis管理。简单配置一下就好。

找到php.ini,找到session.save_handler,session.save_path 修改,auth为密码,没有密码可以不设置,还有数据库等等其他配置。

[Session]
; Handler used to store/retrieve data.
; http://php.net/session.save-handler
session.save_handler = redis

session.save_path = "tcp://127.0.0.1:6379?auth=123456"

下面的配置还支持分布式的,如果不是超大型网站一般用不到。

;session.save_handler = redis
;session.save_path = "tcp://host1:6379?weight=1, tcp://host2:6379?weight=2&timeout=2.5, tcp://host3:6379?weight=2" 

配置完成后重启php-fpm开始测试(我用的yii框架),redis存的session的key默认为'PHPREDIS_SESSION:' +session_id。

    $_SESSION['a'] = 'this is session content!';

    $id = session_id();

    $redis = Yii::$app->redis;
    $key = 'PHPREDIS_SESSION:' . $id;

    $s = $redis->executeCommand('GET', [$key]);

    var_dump($s);

发现压根获取不到session值,检查配置没错,我猜配置应该被覆盖了。于是把ini最终值打印下看看

     $a = ini_get ("session.save_handler");
     $b = ini_get ("session.save_path");
     var_dump($a,$b);exit;

发现$a='files',$b='/var/lib/php/session'之前在ini的配置果然被覆盖了,于是去php-fpm里找,发现/etc/php-fpm.d/www.conf里面有覆盖,如下

; Set session path to a directory owned by process user
php_value[session.save_handler] = files
php_value[session.save_path] = /var/lib/php/session

考虑到网站的php都交给php-fpm管理了,于是决定把session也放到php-fpm的配置中,php.ini的修改还原。

; Set session path to a directory owned by process user
;php_value[session.save_handler] = files
;php_value[session.save_path] = /var/lib/php/session
php_value[session.save_handler] = redis
php_value[session.save_path] = "tcp://127.0.0.1:6379?auth=123456"

重启php-fpm后开始之前测试,没有问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值