讲师中心 微信公众号
AI工具推荐 视频效率加速

Workerman 4.0.10 Session 共享配置教程

夏杰大大_5300

夏杰大大_5300

发布时间:2026-08-08 21:01:07

|

205人浏览过

|

来源于php中文网

原创

必须用 Redis 替代文件存储实现 Session 共享,否则多进程/服务器下会话丢失;需安装 phpredis、注册 RedisSessionHandler、配置 Cookie 参数,并通过 redis-cli 或 curl 验证跨进程读写一致性。

workerman 4.0.10 session 共享配置教程

要在 Workerman 4.0.10 中实现跨进程、跨服务器的 Session 共享,必须放弃默认的文件存储方式,改用 Redis 统一托管会话数据;否则每个 Worker 进程都会写入各自独立的 session 文件,导致用户刷新页面后登录状态丢失、购物车清空、权限校验失败等典型问题。

启用 Redis 作为 Session 存储引擎

第一步:确认已安装 phpredis 扩展(非 predis),且 Redis 服务正常运行并可被 PHP 访问。若未安装,执行 sudo apt install php-redis(Ubuntu)或 pecl install redis(其他系统),然后在 php.ini 中启用 extension=redis.so

第二步:在启动脚本顶部引入 Redis 客户端,并注册自定义 Session 处理器:

use Workerman\Protocols\Http\Session;
use Workerman\Protocols\Http\Session\RedisSessionHandler;
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
Session::setHandler(new RedisSessionHandler($redis));

这一步必须在任何 $request->session() 调用之前完成,否则仍走默认文件存储路径。注意:不要调用 session_start(),Workerman 的 Session 是按需懒加载的。

配置 Session 基础参数

设置 Session 名称、Cookie 属性与生命周期,确保客户端能稳定携带 SID:

Session::$name = 'WORKERMAN_SESS';

Session::$cookieLifetime = 7200; —— 设为 2 小时,避免长期无效会话堆积;过长易被 Redis 内存淘汰策略误删,过短则频繁重登录。

Session::$cookiePath = '/';

Session::$domain = '.yourdomain.com'; —— 若部署在子域名下(如 app.yourdomain.com),此处必须填带点号的主域名,否则 Cookie 不会被子域共享。

Session::$secure = true; —— 生产环境务必开启,强制 Cookie 只在 HTTPS 下传输;若本地开发用 HTTP,请设为 false,否则浏览器拒绝写入。

验证 Session 是否真正走 Redis

方法一:直接检查 Redis 数据

执行 redis-clikeys "workerman_sess_*",能看到形如 workerman_sess_abc123... 的 key;再执行 get workerman_sess_abc123...,返回的是 PHP 序列化字符串,包含你存入的 usernamelogin_time 等字段。

Session Memory
Session Memory

持久记忆工具包,专为AI智能体设计。保存上下文,基于相关性评分进行召回,整合洞察,跨会话追踪决策。功能...

下载

方法二:代码内强制触发并观察行为

onMessage 回调中插入以下调试逻辑:

$session = $request->session();
$session->set('debug_ts', time());
$connection->send("OK, saved at ". date('H:i:s'));

刷新页面多次,打开另一个终端再次执行 redis-cli get workerman_sess_...,确认 debug_ts 值随每次请求实时更新 —— 这说明不同 Worker 进程确实读写的是同一份 Redis 数据。

【关键陷阱】 如果你发现每次刷新都生成新 SID,或 Redis 中 key 数量暴涨,大概率是 Session::$name 与前端 Cookie 名不一致,或 Nginx/Apache 反向代理未透传 Cookie 请求头,需检查代理配置中是否包含 proxy_pass_request_headers on;proxy_set_header Cookie $http_cookie;

启动 Worker 并测试多进程一致性

① 在启动脚本末尾添加如下代码:

$http_worker = new Worker('http://0.0.0.0:8080');
$http_worker->count = 3; —— 显式设为 3 个进程,便于观察跨进程读写效果。

② 启动服务:php start.php start -d(后台模式)或 php start.php start(前台调试)。

③ 用 curl 模拟两次请求,注意复用 Cookie:

curl -v http://127.0.0.1:8080/login -H "Cookie: WORKERMAN_SESS=abc123..."
curl -v http://127.0.0.1:8080/profile -H "Cookie: WORKERMAN_SESS=abc123..."

两次请求若均由不同 PID 的 Worker 处理(可通过 ps aux | grep php 查看),但都能读取到相同 Session 数据,即证明共享成功。

这一步操作起来很简单,直接把 curl 命令复制粘贴执行就行。不需要重启 Worker,修改配置后 reload 即可生效。

热门AI工具

更多
蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

超级简历WonderCV

一款AI办公效率工具,主要用于免费求职简历模版下载制作,应届生职场人必备简历制作神器,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

相关专题

更多
session失效的原因
session失效的原因

session失效的原因有会话超时、会话数量限制、会话完整性检查、服务器重启、浏览器或设备问题等等。详细介绍:1、会话超时:服务器为Session设置了一个默认的超时时间,当用户在一段时间内没有与服务器交互时,Session将自动失效;2、会话数量限制:服务器为每个用户的Session数量设置了一个限制,当用户创建的Session数量超过这个限制时,最新的会覆盖最早的等等。

580

2023.10.17

session失效解决方法
session失效解决方法

session失效通常是由于 session 的生存时间过期或者服务器关闭导致的。其解决办法:1、延长session的生存时间;2、使用持久化存储;3、使用cookie;4、异步更新session;5、使用会话管理中间件。

856

2023.10.18

cookie与session的区别
cookie与session的区别

本专题整合了cookie与session的区别和使用方法等相关内容,阅读专题下面的文章了解更详细的内容。

1726

2025.08.19

Workerman安装配置教程
Workerman安装配置教程

Workerman安装配置教程专题提供Workerman安装配置、WebSocket开发、TCP通信、异步编程、高并发服务搭建与PHP实时通信开发教程。

146

2026.05.20

Workerman实时通信与长连接开发教程
Workerman实时通信与长连接开发教程

WWorkerman实时通信与长连接开发教程聚合实时通信、聊天室、长连接、消息推送、AI流式输出等Workerman高并发开发内容。

182

2026.05.20

Workerman异步通信与TCP服务器开发
Workerman异步通信与TCP服务器开发

Workerman异步通信与TCP服务器开发专题整理Workerman异步通信、TCP服务、HTTP服务、WebSocket开发与高并发PHP服务器教程。

127

2026.05.20

NumPy常见函数使用方法
NumPy常见函数使用方法

本专题整理 NumPy 常见函数使用方法相关教程,覆盖函数大全、参数用法、数组运算、统计聚合、排序处理、where 条件筛选、linspace 创建数列等常用场景,帮助读者快速掌握 NumPy 函数调用思路和实际数据处理技巧。

0

2026.09.22

NumPy性能优化版本更新与常见报错排查
NumPy性能优化版本更新与常见报错排查

本专题整理 NumPy 性能优化、版本更新与常见报错排查相关教程,覆盖向量化计算、广播性能、内存布局、NumPy 2.0 升级、版本兼容冲突、安装导入报错、dtype 溢出、矩阵运算异常和 broadcasting 报错修复,帮助读者系统掌握 NumPy 性能调优与问题定位方法。

20

2026.09.22

Vibeknow在线使用入口合集
Vibeknow在线使用入口合集

本专题汇总了Vibeknow在线创作视频的官方入口及网页版使用教程,涵盖PPT、PDF、Word等文档一键转讲解视频的核心操作,并整理了免费版水印规则与手机端浏览器访问指南,助你快速将知识内容视频化。

20

2026.09.21

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Beego 官方文档首页
Beego 官方文档首页

共0课时 | 0人学习

Laravel 5.8 中文文档手册
Laravel 5.8 中文文档手册

共74课时 | 138.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn