<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[Snooda]]></title> 
<link>http://www.snooda.com/index</link> 
<description><![CDATA[Snooda's Blog]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[Snooda]]></copyright>
<item>
<link>http://www.snooda.com/read/</link>
<title><![CDATA[session不按时过期的解释]]></title> 
<author>snooda &lt;admin@snooda.com&gt;</author>
<category><![CDATA[默认分类]]></category>
<pubDate>Wed, 24 Feb 2010 07:29:14 +0000</pubDate> 
<guid>http://www.snooda.com/read/</guid> 
<description>
<![CDATA[ 
	今天发现一个问题：服务器上设置的session有效期是1440秒，但是我上午开的网页下午刷新session仍有效，查了一下，得到了结果：原来php的session过期垃圾收集机制是按概率启动的。<br />
<br />
由于php的工作机制，它并没有一个守护线程来定时扫描session的过期与否，所以php采用了一种独特的方法：在每次访问请求时有一定概率启动垃圾收集过程。通过查看phpinfo()可以看到下面参数：session.gc_probability=1，session.gc_divisor=1000。也就是说每次访问有千分之一的概率启动垃圾收集过程。所以假如网站访问量很小的话可能很长时间都不会触发垃圾收集，自然session就不会过期了。<br />
<br />
还有一个小问题，就是对于虚拟主机来说，同一台服务器上不同的虚拟主机默认放置session的位置是相同的，而gc（Garbage Collector）并不区分不同网站间的session，所以当各网站间设置的session有效期不同时可能并不能完全生效。解决方法就是修改session.save_path参数，将自己主机的session信息放到自定义的一个位置，这样就不会被“误伤”了。<br />
<br />
<br />
参考资料：http://blog.sina.com.cn/s/blog_4d73c2c20100hahv.html
]]>
</description>
</item><item>
<link>http://www.snooda.com/read/#blogcomment</link>
<title><![CDATA[[评论] session不按时过期的解释]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.snooda.com/read/#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>