【转载】PHP.INI配置:Session配置详细说明教程

网上有不少PHP.INI文件配置的中文说明,可是对于PHP初学者来讲在进行PHP运行环境搭建配置时仍是容易一头雾水,今天换一种角度来分享如何进行php.ini配置,以求达到解决实际问题的效果,开篇以PHP教程方式详细介绍如何经过php.ini来配置Session,以实现基本的Session应用。php

  咱们知道在利用PHP进行购物车、用户登陆等交互式网站开发时,Session是一种很好的解决方法,若是采用XAMPP,AppServ等PHP安装包,通常状况下,PHP Session设置系统都会配置若是采用手动配置PHP运行环境,就须要咱们经过php.ini来对Session进行配置,下面详细介绍如何进行Session配置。linux

  PHP运行环境说明ajax

  我采用的是DedeAMPZ,PHP版本5.2.4,若是你是手动安装PHP运行环境,你须要将php.ini-dist或者php.ini-recommended重命名为php.ini,并将其复制在windows目录下。shell

  php.ini中的session配置说明数据库

  下面介绍能让session运行的必要配置步骤apache

  手动配置PHP运行环境时,最容易遗忘的一项是服务器端session文件的存储目录配置工做,打开php.ini文件,搜索Session,找到session.save_path,默认值为/tmp,表明session文件保存在c:/tmp目录下,默认tmp目录并无建立,你能够在c盘下建立tmp目录,或者建立一个其余目录,好比leapsoulcn,再修改session.save_path的值,并去掉;,即windows

  session.save_path = ‘/leapsoulcn’;浏览器

  注意事项安全

  一、通常为了保证服务器的安全,session.save_path值最好设置为外网没法访问的目录,另外若是你是在linux服务器下进行session配置,请务必同时配置此目录为可读写权限,不然在执行session操做时会报错。服务器

  二、在使用session变量时,为了保证服务器的安全性,最好将register_globals设置为off,以保证全局变量不混淆,在使 用session_register()注册session变量时,你能够经过系统全局变量$_SESSION来访问,好比你注册了leapsoulcn 变量,你能够经过$_SESSION['leapsoulcn']来访问此变量。

  session.save_path配置其余说明事项,从php.ini配置文件翻译而来

  你可使用”N;[MODE;]/path”这样模式定义该路径,N是一个整数,表示使用N层深度的子目录,而不是将全部数据文件都保存在一个目录下。

  [MODE;]可选,必须使用8进制数,默认600(=384),表示每一个目录下最多保存的会话文件数量。[MODE;]并不会改写进程的 umask。php不会自动建立这些文件夹结构。可以使用ext/session目录下的mod_files.sh脚本建立。若是该文件夹能够被不安全的用 户访问(好比默认的”/tmp”),那么将会带来安全漏洞。当N>0时自动垃圾回收将会失效,具体参见下面有关垃圾搜集的部分。

  若是你服务器上有多个虚拟主机,建议针对每一个不一样的虚拟主机分别设置各自不一样的目录。

  至此最基本的session配置就完成了,你只要保存php.ini,并重启apache,便可使用session功能。

  其余session配置说明

  session.save_handler = ”files”

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

  session.use_cookies = 1

  是否使用cookies在客户端保存会话sessionid,默认为采用cookies

  session.use_only_cookies = 0

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

  session.name = “PHPSESSID”

  当作cookie name来使用的session标识名

  session.auto_start = 0

  是否自动启动session,默认不启动,咱们知道在使用session功能时,咱们基本上在每一个php脚本头部都会经过 session_start()函数来启动session,若是你启动这个选项,则在每一个脚本头部都会自动启动session,不须要每一个脚本头部都以 session_start()函数启动session,推荐关闭这个选项,采用默认值。

  session.cookie_lifetime = 0

  传递sessionid的Cookie有效期(秒),0表示仅在浏览器打开期间有效。

  session.gc_probability = 1

  session.gc_divisor = 100

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

  session.gc_maxlifetime = 1440

  设定保存的session文件生存期,超过此参数设定秒数后,保存的数据将被视为’垃圾’并由垃圾回收程序清理。判断标准是最后访问数据的时间 (对于FAT文件系统是最后刷新数据的时间)。若是多个脚本共享同一个session.save_path目录但 session.gc_maxlifetime不一样,将以全部session.gc_maxlifetime指令中的最小值为准。

  若是你在session.save_path选项中设定使用子目录来存储session数据文件,垃圾回收程序不会自动启动,你必须使用本身编写的shell脚本、cron项或者其余办法来执行垃圾搜集。

  好比设置”session.gc_maxlifetime=1440″ (24分钟):

  cd /path/to/sessions; find -cmin +24 | xargs rm

  以上是一些经常使用的session配置选项说明,更多的session配置选项说明你能够参考php.ini文件中的说明。

  至此,在php.ini配置文件中对session进行配置的PHP教程就介绍完毕了,经过上面的步骤实践与学习,基本的session功能均可以使用,至于session性能等其余方面则须要根据服务器环境和需求进行微调了,这个得本身体会。

转载地址:点击我

相关文章
相关标签/搜索