今天aspku小编遇到一个比较奇怪的问题。客户每次登陆帝国cms后台,隔3秒钟左右就会立刻自动退出后台。然后页面提示是“未登录”,如图所示:
帝国后台
这个问题花了ASPKU小编整整三个小时处理,处理结果也挺让人无奈,竟然和小编之前处理过的一个关于discuz的问题原因一样。下面我把排查问题所在的流程写出来,方便下次又遇到同样问题的站长可以迅速解决这个问题。
1、首先ASPKU小编怀疑的是cookie无法写入的问题
处理方法:
删除e/data/adminlogin目录下的log临时文件,尝试登录后台
如果登录后台失败,那么查看e/data/adminlogin目录下是否有新生成的登录验证文件,如果有,有新文件生成,说明与权限无关,无法登陆的问题是由缓存导致的,只要手工删除缓存文件就能恢复正常,那么删除e/data/fc文件夹下所有文件即可。
如果没有新文件生成,那么说明是权限问题导致的,将adminlogin目录的权限设为777(无忧主机的客户请设置权限为755)即可。很遗憾该客户并不是这个问题。
本地时间与服务器时间不符
由于该客户的电脑截图的时间比正常北京时间整整快了15分钟,所以ASPKU怀疑是否是本地时间与服务器时间不一致导致的。结果修改好了无效
动态IP问题
经过一系列的失败,ASPKU小编注意到一个细节:客户说他使用的是移动拨号上网,本地的IP地址会经常发生变化。这让小编意识到该问题很可能是帝国cms的验证ip功能有关。这个功能的discuz中也有。于是小编让客户尝试用vpn工具固定IP登陆后台,结果问题顺利解决。
最终方案,关闭登陆验证
由于验证ip的功能是设置在程序中的,所以最终的解决方法就是,打开e/class/config.php文件,找到$do_ckhloginfile=1,修改为$do_ckhloginfile=0,这样文件验证就会被关闭。同样的,此操作会降低后台的安全性。(慎用)