You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MediaWiki创建页面失败:会话数据丢失问题排查求助

MediaWiki提交页面会话丢失错误排查方案

我的MediaWiki部署在WordPress的/wiki子目录,通过AuthWP实现WordPress用户登录,同时启用了AccessControl扩展。提交新页面时持续触发错误:

抱歉!由于会话数据丢失,我们无法处理您的编辑

但报错后右上角仍显示登录用户名,会话表面处于活跃状态。已准备好LocalSettings.php配置、AuthWP生成的WordPress用户dump、MediaWiki的UserInfo dump,可按需提供调试输出或日志文件。

核心排查方向

1. Cookie配置一致性检查

  • 确认MediaWiki的$wgCookiePath设置为/wiki/,避免与WordPress根目录Cookie产生路径冲突
  • 核对$wgCookieDomain与WordPress的Cookie域名完全一致,确保跨子目录会话共享的域名匹配
  • 检查两者Cookie的Secure/HttpOnly属性、过期时间是否统一,防止Cookie被浏览器提前清理或拦截

2. AuthWP会话同步有效性验证

  • 确认$wgAuthWP_SyncSession已设置为true,开启WordPress与MediaWiki的会话同步
  • 对比WordPress用户dump和MediaWiki UserInfo中的会话ID,若不一致说明AuthWP未完成会话同步
  • 检查AuthWP是否在登录时正确初始化MediaWiki的$wgUser会话数据,尤其是会话标识字段

3. AccessControl扩展冲突排查

  • 临时禁用AccessControl扩展后重新测试提交操作,若错误消失则说明该扩展与AuthWP会话逻辑存在冲突
  • 查看AccessControl是否重载了MediaWiki默认的编辑会话校验逻辑,比如修改了EditPage类中的会话验证步骤

4. MediaWiki会话存储检查

  • 确认$wgSessionHandler配置正确,若使用数据库存储,检查session表的读写权限及数据是否正常
  • 查看MediaWiki调试日志(路径由$wgDebugLogFile指定),排查是否存在会话写入失败的报错信息
  • 用MediaWiki本地用户登录测试提交,若正常则问题锁定在AuthWP会话同步环节

5. 调试输出建议

在LocalSettings.php中添加以下代码,输出会话关键信息到日志:

wfDebugLog('session', '当前会话ID: ' . session_id());
wfDebugLog('session', 'MediaWiki用户ID: ' . $wgUser->getId());
wfDebugLog('session', 'AuthWP同步的WordPress用户ID: ' . AuthWP::getWPUserId());

提交页面时查看日志,对比提交前后会话ID是否变化、用户ID是否保持一致,定位会话中断点。

内容的提问来源于stack exchange,提问作者HelloWorld

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 14:55:09