需要什么php.ini设置才能使会话保持活动状态大约两天?

Kzq*_*qai 5 php config

http://www.php.net/manual/en/session.configuration.php#ini.session.cookie-lifetime

说session.cookie_lifetime为0"直到浏览器关闭".这是会话可以拥有的绝对最大长度(当浏览器关闭时总是擦除),或者设置一个session.cookie_lifetime,例如,23243245234,结果可能会在浏览器关闭时持续超过?

更重要的是,我需要设置什么样的php.ini设置才能使会话在两天内完成,并且是否有安全理由推荐一定的(我希望更低)时间限制,如果是这样的话推荐的时间段是?

预期的行为 编辑:这是我想要实现的,也许我将能够通过获取一些设置建议而不是php.ini设置的特定值来理解行为:

我希望会话尽可能长,最多(大约)两天.如果会话可以持续超出浏览器关闭,我希望它能够这样做(最多大约两天).

我将为php.ini设置设置什么(是的,我有直接编辑访问php.ini)来实现这一点?

Gor*_*onM 11

关于会话,您需要担心两个参数.第一个是cookie的TTL,另一个是会话数据文件在收集垃圾之前可以变为多久.

session.cookie_lifetime以秒为单位确定发送到浏览器的cookie将持续多长时间.它默认为0,这意味着在浏览器关闭之前.这两天需要172800秒.

session.gc_maxlifetime以秒为单位确定服务器上标记的会话数据被视为垃圾并且可以删除的时间.

设置这两个ini指令应该为您提供可以存活两天的会话,除了您需要注意的一件事.

某些操作系统会在其默认临时目录上执行自动垃圾回收.如果PHP配置为在那里存储会话数据,那么如果临时目录的GC周期很短,您可能会发现yoruself在达到session.gc_maxlifetime中的值之前丢失了会话.为避免这种情况,请确保PHP将会话数据存储到/ tmp以外的位置或主机操作系统的临时目录.