关于session的解决方案

PHP手册关于session.save_path的介绍:php

session.save_path stringnode

session.save_path 定义了传递给存储处理器的参数。若是选择了默认的 files 文件处理器,则此值是建立文件的路径。默认为 /tmp。参见 session_save_path()shell

此指令还有一个可选的 N 参数来决定会话文件分布的目录深度。例如,设定为 '5;/tmp' 将使建立的会话文件和路径相似于 /tmp/4/b/1/e/3/sess_4b1e384ad74619bd212e236e52a5a174If。要使用 N 参数,必须在使用前先建立好这些目录。在 ext/session 目录下有个小的 shell 脚本名叫 mod_files.sh,windows 版本是 mod_files.bat 能够用来作这件事。此外注意若是使用了 N 参数而且大于 0,那么将不会执行自动垃圾回收,更多信息见 php.ini。另外若是用了 N 参数,要确保将 session.save_path 的值用双引号 "quotes" 括起来,由于分隔符分号( ;)在 php.ini 中也是注释符号。windows

文件储存模块默认使用 mode 600 建立文件。经过 修改可选参数 MODE 来改变这种默认行为: N;MODE;/path ,其中 MODE 是 mode 的八进制表示。 MODE 设置不影响进程的掩码(umask)。服务器

Warningsession

若是将此设定为一个全局可读的目录,例如 /tmp(默认值),服务器上的其余用户有可能经过该目录的文件列表破解会话。memcached

Caution函数

使用以上描述的可选目录层级参数 N 时请注意,对于绝大多数站点,大于1或者2的值会不太合适——由于这须要建立大量的目录:例如,值设置为 3 须要在文件系统上建立 64^3 个目录,将浪费不少空间和 inode。code

仅仅在绝对确定站点足够大时,才能够设置 N 大于2。进程

Note: 在 PHP 4.3.6 以前,Windows 用户必须修改此选项以使用 PHP 的会话函数。必须指定一个合法路径,例如:c:/temp。

关于session的回收:

session.gc_probability = 1 : 每一次的请求就会有1%的几率的回收。

1.session能够放入到memcached中

2.使用分级目录,如上,可是分级目录的话,不会进行自动的session过时回收,要手动进行

3.使用自动清理

好比

find /tmp/session -amin +180 -exec rm -rf {} \;

相关文章
相关标签/搜索