服务器环境:win2003 + IIS + php5.3
php session 配置如下:
Directive Local Value Master Value
session.auto_start Off Off
session.bug_compat_42 Off Off
session.bug_compat_warn Off Off
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_httponly Off Off
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
session.entropy_file no value no value
session.entropy_length 0 0
session.gc_pisor 100 100
session.gc_maxlifetime 1440 1440
session.gc_probability 1 1
session.hash_bits_per_character 5 5
session.hash_function 0 0
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path D:phptemp D:phptemp
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies On On
session.use_trans_sid 0 0
现在的问题是用户登录后就能一直在线,临时目录下的session文件不能自动销毁,越积越多,最后把服务器拖垮了。
奇怪的是同样的配置在另外一台服务器上就没问题,应该是系统设置方面的问题,不涉及到程序开发,请有运维经验的高人指点?
回复讨论(解决方案)
关注一下期待高手来回答。
有没有高手啊!
你改变了 session.save_path 还能垃圾回收吗?
我的经验是 session.save_path 为操作系统的临时目录时(c:windowstemp)才能回收
你改变了 session.save_path 还能垃圾回收吗?
我的经验是 session.save_path 为操作系统的临时目录时(c:windowstemp)才能回收
session.save_path目录换到c:windowstemp果然可以了,应该是新建目录权限设置问题,多谢!
session.save_path目录换到c:windowstemp果然可以了,应该是新建目录权限设置问题,多谢!
我的理解是: GC 实际是操作系统的垃圾处理机制,他只在发现有垃圾(当然是系统的垃圾箱啦)时才询问“垃圾”归属者是否需要清理