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

Yii2 PHP会话功能失效求助(无代码/Composer更新)

紧急登录故障排查记录

这并非CSRF问题——此前功能正常(已启用CSRF,符合安全要求)。

初始故障与初步处理

今早发现无法登录网站,或登录后无法访问需认证页面,直接跳转至首页。排查发现/var/lib/php/sessions目录下有1600万个文件,推测为问题根源,遂删除所有文件(删除会话文件夹后重新创建并设置原权限)。

处理后登录出现错误:Unable to verify data submission,于是添加代码禁用CSRF:

public function beforeAction($action)
{
    $this->enableCsrfValidation = false;

    return parent::beforeAction($action);
}

部署后重启VPS及apache2,但现在尝试登录时完全无法登录(不再出现验证错误),直接跳转至首页,apache日志及app.log无任何输出。

权限与会话文件检查

已将会话目录所有者及组设置为www-data,权限改为777,确保可写:

[20:15:35][root@vps12345:/var/lib/php]#ls -l
total 236
drwxr-xr-x 2 root     root       4096 Feb  7 11:34 emptydir
drwxr-xr-x 4 root     root       4096 Apr  8  2019 modules
drwxrwxrwx 2 www-data www-data 229376 Feb  7 20:15 sessions

且会话文件确实已写入该目录:

[20:17:33][root@vps12345:/var/lib/php/sessions]#ls -l | wc
   4189   37694  339240

删除目录所有文件后尝试登录(问题依旧,无法登录):

[20:19:13][root@vps12345:/var/lib/php/sessions]#ls -l
total 12
-rw------- 1 www-data www-data 23 Feb  7 20:19 sess_9gu45ng49mem7934e8qcap5rr4
-rw------- 1 www-data www-data 14 Feb  7 20:19 sess_aog85dp6ovrpn3hq2l14a46nms
-rw------- 1 www-data www-data 14 Feb  7 20:19 sess_r18rb7b72a97ku9dv19p1v3js3

会话内容分析

检查会话文件内容,发现仅包含flash相关数据,无登录会话详情:

[20:32:48][root@vps12345:/var/lib/php/sessions]#for x in $(find . -type f); do cat $x; echo ""; done
__flash|a:0:{}
__flash|a:0:{}
__flash|a:0:{}
__flash|a:0:{}
__flash|a:0:{}
__flash|a:1:{s:5:"error";i:-1;}error|s:27:"Service category not found.";
__flash|a:0:{}
__flash|a:0:{}
__flash|a:0:{}
__flash|a:0:{}
__flash|a:0:{}
__flash|a:0:{}
__flash|a:0:{}
__flash|a:0:{}
__flash|a:0:{}
__flash|a:0:{}
__flash|a:0:{}
__flash|a:0:{}
__flash|a:0:{}__id|i:7;
__flash|a:0:{}
__flash|a:0:{}
__flash|a:0:{}
__flash|a:0:{}
__flash|a:0:{}
__flash|a:1:{s:5:"error";i:-1;}error|s:27:"Service category not found.";
__flash|a:0:{}
__flash|a:0:{}__id|i:69079;
__flash|a:{}

进一步排查

已启用数据库存储会话,问题依旧,排除文件写入/权限问题。

目前所有用户均无法登录,情况紧急!近几个月未修改任何代码,未执行Composer命令,无定时任务涉及会话操作。唯一变化是接入广告商Ezoic Inc,期间提供了Cloudflare账号密码供其获取API密钥,不确定是否相关。此外存在缓存情况,不确定是否影响会话:

public function actionLogin()
{
   die('here'); // 仅在POST请求时生效
   
   // 其余登录处理代码...

}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 22:00:57