当前位置: 首页 > news >正文

php.ini中的session配置说明

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

   手动配置PHP运行环境时,最容易遗忘的一项是服务器端session文件的存储目录配置工作,打开php.ini文件,搜索Session,找到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']来访问此变量。 

    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性能等其他方面则需要根据服务器环境和需求进行微调了,这个得自己体会。

转载于:https://www.cnblogs.com/w10234/p/5454024.html

相关文章:

  • 如何上传自己的jar包到maven中央仓库(2021最新版)
  • ElasticSearch聚合查询Restful语法和JavaApi详解(基于ES7.6)
  • 《偷影子的人》
  • 模板方法设计模式理论与应用
  • 跟我一起数据挖掘(13)——矩阵分解
  • 用了MybatisPlus后,我很久没有手写sql了
  • 两张图让你快速读懂JVM字节码指令
  • Android Bitmap面面观
  • 用几张图深度剖析Java运行时数据区
  • HDOJ(HDU) 2519 新生晚会(组合公式)
  • 从JVM角度思考--如何预估线上环境机器资源大小
  • 1到3年的Java开发工程师应该如何准备面试
  • 写了两年代码之后再来看看Spring中的Bean
  • 【Python之旅】第二篇(四):字典
  • 使用Optional更优雅地处理非空判断
  • [case10]使用RSQL实现端到端的动态查询
  • [笔记] php常见简单功能及函数
  • 【RocksDB】TransactionDB源码分析
  • IOS评论框不贴底(ios12新bug)
  • Python3爬取英雄联盟英雄皮肤大图
  • spark本地环境的搭建到运行第一个spark程序
  • Yii源码解读-服务定位器(Service Locator)
  • 简单易用的leetcode开发测试工具(npm)
  • 那些被忽略的 JavaScript 数组方法细节
  • 在Docker Swarm上部署Apache Storm:第1部分
  • 中国人寿如何基于容器搭建金融PaaS云平台
  • 【干货分享】dos命令大全
  • 大数据全解:定义、价值及挑战
  • #define用法
  • #pragma once
  • (04)Hive的相关概念——order by 、sort by、distribute by 、cluster by
  • (12)目标检测_SSD基于pytorch搭建代码
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (一)kafka实战——kafka源码编译启动
  • (一)搭建springboot+vue前后端分离项目--前端vue搭建
  • ./configure,make,make install的作用
  • .Net Core/.Net6/.Net8 ,启动配置/Program.cs 配置
  • .net2005怎么读string形的xml,不是xml文件。
  • .NetCore Flurl.Http 升级到4.0后 https 无法建立SSL连接
  • .NET程序员迈向卓越的必由之路
  • /etc/motd and /etc/issue
  • @Controller和@RestController的区别?
  • []sim300 GPRS数据收发程序
  • [ARM]ldr 和 adr 伪指令的区别
  • [CVPR 2023:3D Gaussian Splatting:实时的神经场渲染]
  • [Hive] INSERT OVERWRITE DIRECTORY要注意的问题
  • [JavaWeb]—Spring入门
  • [Linux内存管理-分页机制]—把一个虚拟地址转换为物理地址
  • [MicroPython]TPYBoard v102 CAN总线通信
  • [MySQL]日期和时间函数
  • [MySQL]数据库基础
  • [NEWS] J2SE5.0来了
  • [NSSCTF 2nd] web刷题记录
  • [Spring] Spring注解简化开发
  • [UIM]论文解读:subword Regularization: Multiple Subword Candidates