1. 介绍

1.1 作用:

主要用于服务器端的会话保持。

1.2 结构:

Session分以下几部分:

1)Session id 用户Session的唯一标识(随机生成,具有唯一性,随机性)

2)Session data 保存用户状态信息(用户数据)

3)Session file Session的存储方式,文件存储方式以"sess_"前缀+"Session_id"后缀的方式存储 格式如下: 1 sess_d3eom13a9r9p5i5nj923voqaf7

4)Session lifetime Session生存时间(从Session的产生到生命周期的结束)

1.3 工作原理:

1)客户端与服务器建立联系

2)客户端将session id传递给服务器

3)服务器根据session id建立相应的session id文件(session id序列化保存,读取时反序列化)

唯一标识的方法有两种:cookie或者通过GET方式指定

1.4 缺点:

1)使用Session会影响系统性能(受文件系统设计影响,目录定义超过10000个文件非常耗时)

2)Session文件大小1~2K,数量庞大的小文件影响硬盘IO性能

PS:此可以使用redis memcache的方式来共享session ,同时也解决了影响系统性能的问题

2.配置文件:

[Session]

session.save_handler = files #session的存储方式

session.use_cookies= 1 #使用cookies在客户端保存会话

session.use_only_cookies = 1 #去保护URL中传送session id的用户

session.name = PHPSESSID #session名称(默认PHPSESSID)

session.auto_start = 0 #不启用请求自动初始化session

session.cookie_lifetime = 0 #cookie存活时间(0为直至浏览器重启,单位秒)

session.cookie_path = / #cookie的有效路径

session.cookie_domain = #cookie的有效域名

session.cookie_httponly = #httponly标记增加到cookie上(脚本语言无法抓取)

session.serialize_handler = php #PHP标准序列化

session.gc_probability =1

session.gc_divisor =1000 #建议设置1000-5000 #概率=session.gc_probability/session.gc_divisor(1/1000 #页面访问越频繁概率越小   session.gc_maxlifetime =1440 #过期时间(默认24分钟,单位秒)

session.bug_compat_42 = off #全局初始化session变量

session.bug_compat_warn = off

session.referer_check = #防止带有ID的外部URL

session.entopy_length = 0 #读取的字节

session.cache_limiter = {nocache,private,pblic} #HTTP缓冲类型

session.cache_expire = 180 #文档过期时间(分钟)

session.use_trans_sid = 1 #trans_sid支持(默认0)

session.hash_function = 0 #hash方法{0:md5(128 bits),1:SHA-1(160 bits)}

session.hash_bits_per_character = 5 #当转换二进制hash数据奥可读形式是,每个字符保留位数

session.save_path = "/var/lib/php/session" #session id存放路径

可以分层存放phpsession,更高效率的去查找session文件

格式: session.save_path = "N;MODE;/path"

-- N定义目录层数(例如2,目录需手动创建)

-- MODE定义单目录最大会话文件数量(默认8进制600)

配置好之后,需要按自定义的目录层数,需结合hash_bits_per_character参数来生成目录结构

#!/bin/bash
perl -e '
$dir="./phpsession";
@N=(..,"a".."z");
for $i (..$#N) {
mkdir "$dir/$N[$i]";
for $j (..$#N) {
mkdir "$dir/$N[$i]/$N[$j]";
for $k (..$#N) {
mkdir "$dir/$N[$i]/$N[$j]/$N[$k]";
}
}
}'

PS:

4 bits: 0-9, a-f

5 bits: 0-9, a-v

6 bits: 0-9, a-z, A-Z, "-", ","

phpsession配置的更多相关文章

  1. phpMyAdmin:无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装。

    一:错误提示 英文:Cannot start session without errors, please check errors given in your PHP and/or webserve ...

  2. modsecurity配置指令学习

    事务(transactions) Console(控制台) 1 Introduction Modsecurity是保护网络应用安全的工作.不,从零开始.我常称modsecurity为WAF(网络应用防 ...

  3. CentOS7 Zabbix4.0环境下的安装和配置实例

    1.安装准备 Zabbix4.0对基础架构有一定的要求,对的英文尤其PHP状语从句:MySQL: 类型 内容 服务端运行环境 Linux和PHP与Web服务器和数据库 服务端操作系统 CentOS7. ...

  4. centos7 yum搭建lnmp环境及配置wordpress超详细教程

    yum安装lnmp环境是最方便,最快捷的一种方法.源码编译安装需要花费大量的人类时间,当然源码编译可以个性化配置一些其它功能.目前来说,yum安装基本满足我们搭建web服务器的需求. 本文是我根据近期 ...

  5. zabbix4.0的安装与配置

    #安装zabbix监控首先的先安装LNMP环境,在这里我采用事先准备好的脚本进行安装LNMP环境 脚本内容如下: #!/bin/bash # DATE:Wed Jan # hw226234@126.c ...

  6. 配置android sdk 环境

    1:下载adnroid sdk安装包 官方下载地址无法打开,没有vpn,使用下面这个地址下载,地址:http://www.android-studio.org/

  7. Android Studio配置 AndroidAnnotations——Hi_博客 Android App 开发笔记

    以前用Eclicps 用习惯了现在 想学学 用Android Studio 两天的钻研终于 在我电脑上装了一个Android Studio 并完成了AndroidAnnotations 的配置. An ...

  8. react-router 组件式配置与对象式配置小区别

    1. react-router 对象式配置 和 组件式配置    组件式配置(Redirect) ----对应---- 对象式配置(onEnter钩子) IndexRedirect -----对应-- ...

  9. 总结:Mac前端开发环境的搭建(配置)

    新年新气象,在2016年的第一天,我入手了人生中第一台自己的电脑(大一时好友赠送的电脑在一次无意中烧坏了主板,此后便不断借用别人的或者网站的).macbook air,身上已无分文...接下来半年的房 ...

随机推荐

  1. Intellij idea上传项目到github

    操作前提 1.安装了 git for windows客户端 2.配置了rsa公钥 3.设置了邮箱和用户名 详情请看上一篇博客http://www.cnblogs.com/520playboy/p/66 ...

  2. 欢迎使用markdowm编辑器

    欢迎使用Markdown编辑器写博客 [Mark一下CSDN用Markdown的写法而已] 本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown ...

  3. SpringMVC 多个数据源 配置多个事物管理器 Multiple Transaction Managers

    http://docs.spring.io/spring/docs/3.0.x/spring-framework-reference/html/transaction.html#transaction ...

  4. Hadoop集群时钟同步

    1. 为什么集群需要使用时间同步 暂时保留. 2. hadoop集群如何同步 2.1  以下面hadoop集群为例子: 10.10.11.1 master 10.10.11.2 slave 10.10 ...

  5. innobackupex参数之 --throttle 限速这个值设置多少合理 原创

    innobackupex参数之--parallel --throttle--parallel 此参数用于开启多个子进程并发备份多个数据文件(注意,一个数据文件只会有一个进程完成备份).可以加快备份速度 ...

  6. 修改 ueditor1_4_3-utf8-php 它的图片上传地址

    本来是这样的 至少应该是在,myapp目录下吧,从myapp文件夹,我的网站才刚开始啊...你让我将来怎么设置?麻烦... 找到uploader的文件 $rootPath = $_SERVER['DO ...

  7. 远程桌面能连接到服务器,但PING不通

    解决方法:

  8. e662. 取的图像的色彩模型

    // This method returns the color model of an image public static ColorModel getColorModel(Image imag ...

  9. 【转载】C#进阶系列——动态Lamada(二:优化)

    前言:前几天写了一篇动态Lamada的文章C#进阶系列——动态Lamada,受园友xiao99的启发,今天打算来重新优化下这个动态Lamada的工具类.在此做个笔记,以免以后忘了. 一.原理分析 上篇 ...

  10. php获取当月的第一天以及最后一天

    <?php header("Content-Type:text/html;charset=utf-8"); $date = date("Y-m-d H:i:s&qu ...