php.ini配置session教程详解

时间:2016-07-31
在php配置文件中,有一组和session相关的配置选项,通过对一些选项重新设置新值,就可以对session进行配置,否则使用默认的session配置。本文章向大家介绍php session相关配置的教程和详解,需要的朋友可以参考一下。

在php.ini文件中和session有关的配置选项如下:

1.session.auto_start

是否自动启动session,0表示禁止,1表示开启。默认不启动,我们知道在使用session功能时,我们基本上在每个php脚本头部都会通过session_start()函数来启动session,如果你启动这个选项,则在每个脚本头部都会自动启动session,不需要每个脚本头部都以session_start()函数启动session,推荐关闭这个选项,采用默认值。

2.session.cache_expire

session.cache_expire为缓存中的会话页设置当前时间,单位为分钟。默认值为180(分钟)

3.session.cookie_domain

session.cookie_domain指定会话cookie中的域。默认值为none。

4.session.cookie_life

session.cookie_life用于设置cookie中的session id在客户机上保存的时间,默认为0,表示延续到浏览器关闭时。

5.session.cookie_path

session.cookie_path用于设置会话cookie的路径,默认值为"/"

6.session.name

session.name设置会话的名称,即在客户端用作cookie的标示符名称。默认值为PHPSESSID

7.session.save_path

session.save_path用于设置会话在服务存储路径。默认值为/tmp,代表session文件保存在c:/tmp目录下,默认tmp目录并没有创建,你可以在c盘下创建tmp目录,或者创建一个其他目录,比如leapsoulcn,再修改session.save_path的值,并去掉;,即

session.save_path = ‘/leapsoulcn’;

注意事项:

  1. 一般为了保证服务器的安全,session.save_path值最好设置为外网无法访问的目录,另外如果你是在linux服务器下进行session配置,请务必同时配置此目录为可读写权限,否则在执行session操作时会报错。
  2. 在使用session变量时,为了保证服务器的安全性,最好将register_globals设置为off,以保证全局变量不混淆,在使用session_register()注册session变量时,你可以通过系统全局变量$_SESSION来访问,比如你注册了leapsoulcn变量,你可以通过$_SESSION['leapsoulcn']来访问此变量。

8.session.use_cookies

session.use_cookies用于设置是否允许在客户端使用cookie会话,默认值为1,表示允许。

9.session.save_handler

默认以文件方式存取session数据,如果想要使用自定义的处理器来存取session数据,比如数据库,用”user”。

10.session.use_only_cookies

是否仅仅使用cookie在客户端保存会话sessionid,这个选项可以使管理员禁止用户通过URL来传递id,默认为0,如果禁用的话,客户端如果禁用Cookie将使session无法工作。

11.session.gc_divisor

定义在每次初始化会话时,启动垃圾回收程序的概率。计算公式如下:session.gc_probability/session.gc_divisor,比如1/100,表示有1%的概率启动启动垃圾回收程序,对会话页面访问越频繁,概率就应当越小。建议值为1/1000~5000。