我们最近从运行 xamp 的 Windows 2003 服务器迁移到运行 PHP 版本 5.3.3 的 apache 的 Centos 服务器。
最初,问题是用户在大约 24 分钟后被注销,所以我更改了 INI 变量session.save_path
,从而解决了问题。然而,一些用户仍然会定期退出我们的网站,似乎是随机的。它发生在多个用户在不同时间使用不同浏览器的情况。有时在页面闲置之后,但有时在从一个页面浏览到另一个页面时。
以下是我们与会话相关的 INI 设置:
session.save_handler = files
session.save_path = "/var/sessions"
session.use_cookies = 1
;session.cookie_secure =
;session.use_only_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 86400
session.cookie_path = /
session.cookie_httponly =
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor = 1000
session.gc_maxlifetime = 86400
session.bug_compat_42 = Off
session.bug_compat_warn = On
session.referer_check =
session.entropy_length = 0
session.entropy_file =
;session.entropy_length = 16
session.cache_limiter = nocache
起初我认为这可能是浏览器中的 cookie 存在问题,因为其中一个用户将他的 cookie 设置为永不过期,即使代码将 cookie 设置为 24 小时后过期。但是,在删除 cookie 并让他重新登录后,它将 cookie 正确设置为 24 小时,他也遇到了同样的过早注销问题。
我创建了一个 cron 作业脚本,该脚本在每天凌晨 4 点删除所有会话,因为会话已移出 tmp 目录。
我今天发现服务器上的会话并没有被删除,但是当用户重新登录时,正在创建一个具有新会话 ID 的新会话,即使他们在服务器上仍然有一个现有会话。
任何帮助将不胜感激。