works程序在我本机上运行的时候,从来没有被踢出的情况,但是把一样的程序传到公司linux服务器上后,
则过不了多久会被踢出(大概20多分钟)。
这样看来肯定不是程序问题,应该跟系统的设置(php) 有关系, 后来我把我自己机子上的php.ini覆盖了服务器,问题依旧。
这样本身应该可以推断跟php.ini设置没有关系的。 那问题到底出在哪里呢?
后来我看了一下php.ini中关于session中的配置
发现里面有一个session.gc_maxlifetime = 1440(24min) , 我试着该成了86400(24hours),结果上公司的works居然一天都没被踢出来。
看来问题出在这里了,但是为什么我本机上没做改动居然没问题。
原因应该是:windows上面的session的gc功能不好用,即session_tmp文件夹下面的过期文件都没有被回收。而在linux上面这个功能是可以用的,于是就出现了上面这种奇怪的现象。
(注:1. 问题原因纯属猜测,如有错误,该不负责
2. works是我们公司的用php写的b/s架构的内部管理系统
)