TikiWiki及PHP升级后登录“记住我”功能失效求助
Tiki Wiki 27+PHP8.3下「记住我」功能失效的排查方案
核心排查方向及修复建议
1. 优先检查Tiki内部的Cookie/会话配置(别只盯着php.ini)
从你提供的配置截图来看,重点确认以下几项:
- Cookie生命周期:截图里的
Cookie lifetime(单位秒)必须设为大于0的数值,比如要实现“记住我”至少设为86400(1天),长期记住可以设2592000(30天),设为0的话就是会话级Cookie,关闭浏览器就失效 - SameSite属性:PHP8.0+默认SameSite为
Lax,如果你的站点用HTTPS,建议把Tiki的Cookie SameSite设为None,同时必须开启Cookie secure选项(确保仅HTTPS下传输Cookie),否则浏览器可能会拒绝保存持久化Cookie - 会话存储方式:升级后Tiki的会话存储可能默认切换,比如从文件存储改为其他方式。如果用文件存储,要确认
session.save_path对应的服务器目录有PHP进程的读写权限,PHP8.3对目录权限的校验比7.4更严格
2. 适配PHP8.3的会话机制变化
- 禁用PHP自动会话垃圾回收:PHP8.3的会话GC触发逻辑可能和Tiki自带的回收机制冲突,可在php.ini里把
session.gc_probability设为0,让Tiki自行处理会话过期 - 校验Cookie安全属性:确保
session.cookie_secure=On(HTTPS站点)、session.cookie_httponly=On,PHP8.3会拒绝不符合安全标准的持久Cookie存储
3. 清理缓存及排查插件冲突
- 清空Tiki全量缓存:后台找到「清空缓存」功能,清理模板缓存、会话缓存;同时重启PHP-FPM或调用
opcache_reset()清理OPcache - 禁用第三方插件:先禁用所有非官方插件,切换到Tiki默认主题测试,排查是否是插件/主题升级后不兼容导致的会话异常
实用调试步骤
- 查看浏览器Cookie状态:按F12打开开发者工具→「Application」→「Cookies」,找到站点的会话Cookie(通常名为
tiki_session),检查Expires/Max-Age是否和设置的生命周期一致。如果显示「Session」,说明Cookie未被设置为持久化,问题出在Tiki配置未生效 - 核对实际生效的PHP参数:在Tiki后台打开phpinfo页面,搜索session相关参数,确认
session.cookie_lifetime、session.gc_maxlifetime等是否是你设置的值(Tiki代码可能会覆盖php.ini的配置) - 开启错误日志排查:在Tiki的
local.php中添加代码:error_reporting(E_ALL); ini_set('display_errors', 1); ini_set('session.log_level', 3);,查看是否有会话相关的错误提示
内容的提问来源于stack exchange,提问作者Georgi Bonchev
相关产品推荐
相关产品推荐

