魔方财务后台登录成功不跳转解决办法:服务器权限设置一步搞定
魔方财务
2024-10-22 20:32
3224
在宝塔面板上部署魔方财务(ZJMF)时,很多人会撞上一个很别扭的现象:后台账号密码都对,点「登录」也确实弹出“登录成功”,可页面就是不跳转,刷新一下又回到登录页。这个问题九成以上不是密码错了,而是PHP 会话(session)写不进去。
先判断:到底是哪种“不跳转”
- 提示登录成功但不跳:session 写入失败,或 cookie 域/路径不对;
- 跳转一下又弹回登录页:session 文件权限不对,写入后读不出来;
- 点了完全没反应:多半是前端 JS 报错,或 CSRF token 失效。
本次遇到的是第一种。排查时打开浏览器控制台,Network 里可以看到 admin/login 返回 200,但响应头里的 Set-Cookie 缺失——这就说明服务端没能把 session 落盘。
一步解决:给 session 目录写权限
登录服务器(SSH),执行:
chmod 777 /tmp/session
如果提示目录不存在,先建再授权:
mkdir -p /tmp/session
chmod 777 /tmp/session
chown www:www /tmp/session
然后重启 PHP:
/etc/init.d/php-fpm-73 restart
刷新浏览器重新登录,一般就正常了。
为什么会这样
魔方财务默认把 session 存在 /tmp/session(也可以在 app/config/config.php 里改 session.save_path)。PHP-FPM 的运行用户是 www,如果这个目录属主是 root、权限只有 700,php 进程写得进去却读不出来,于是:登录接口返回成功 → 写 session 失败 → 下一次请求带不上身份 → 又回到登录页。
如果改完还是不行,按顺序查这四件事
- 磁盘满了:
df -h看/是否 100%,满了之后 session 一律写失败; - 时间不同步:
date与真实时间差太多,cookie 会立即过期,执行ntpdate -u ntp.aliyun.com; - 反向代理丢了 Cookie:套了 CDN 或 Nginx 反代,检查是否透传
Cookie与Set-Cookie; - session 目录被定时任务清理:部分一键脚本会清
/tmp,建议把 session 目录改到站点目录下并加入白名单。
小结
记住一句话:登录接口返回 200 但不跳转,先看 Set-Cookie 有没有回来,没有就是 session 落盘失败,去查 session 目录权限。这条经验对魔方财务、宝塔面板、Discuz 一类 PHP 程序同样适用。
標籤:
- 魔方财务,后台登录故障,权限设置教程,登录不跳转解决,服务器操作技巧