后台打不开,或者一直跳回登录页
这个问题的典型描述是「密码没错,但就是进不去」。
先分清是哪一种
| 现象 | 方向 |
|---|---|
| 提示密码错误 | 密码真的不对,或者验证码没过 |
| 提示登录成功但跳回登录页 | 会话存储问题 |
| 进去了,点几下被踢出 | 会话过期或被覆盖 |
| 页面直接白屏 | PHP 报错,看错误日志 |
后两种最常见,往下看。
一、会话目录不可写
PHP 默认把会话存在文件里,目录没权限就写不进去,表现正是「登录成功但状态不保持」。
php -i | grep session.save_path
ls -ld /tmp # 或者上面查到的路径
修权限:
chown -R www:www /www/wwwroot/yourdomain.com/runtime
chmod -R 755 /www/wwwroot/yourdomain.com/runtime
二、Redis 挂了
如果你把会话存到了 Redis,Redis 一挂全站掉登录:
redis-cli ping # 应该返回 PONG
:::warning Redis 内存满了也会这样
maxmemory-policy 如果设成 noeviction,内存满之后写入直接失败。会话类用途应该设成 allkeys-lru。
:::
三、系统时间不对
服务器时间和真实时间差太多,会话会被判定为已过期:
date
timedatectl set-timezone Asia/Shanghai
systemctl restart systemd-timesyncd
四、多台服务器没共享会话
做了负载均衡但会话存在各自的本地文件里,请求打到不同机器就掉登录。解法是把会话统一存到 Redis。
五、后台入口被插件改了
装了「后台守护」这类插件的话,后台地址会被改成一个自定义路径。用旧地址访问会被跳走。
:::info 忘了自定义入口怎么办 去数据库的配置表里查对应的配置项,或者临时禁用该插件——把插件目录改个名字即可。 :::
六、Cookie 域名不匹配
站点从 www.a.com 换到 a.com,或者从 http 换到 https 之后,浏览器里可能存着旧的 Cookie。
先清一下浏览器 Cookie 再试,这一步能排掉不少疑难杂症。
评论 0