session是服务器保持会话数据的一种方法,对应cookie是在客户端保持用户数据。Cby办公区 - 实用经验教程分享!
Session分以下几部分:Cby办公区 - 实用经验教程分享!
1)Session idCby办公区 - 实用经验教程分享!
用户Session的唯一标识(随机生成,具有唯一性,随机性)Cby办公区 - 实用经验教程分享!
2)Session dataCby办公区 - 实用经验教程分享!
保存用户状态信息(用户数据)Cby办公区 - 实用经验教程分享!
3)Session fileCby办公区 - 实用经验教程分享!
Session的存储方式,文件存储方式以"sess_"前缀 "Session_id"后缀的方式存储Cby办公区 - 实用经验教程分享!
格式如下:Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
sess_d3eom13a9r9p5i5nj923voqaf7Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
4)Session lifetimeCby办公区 - 实用经验教程分享!
Session生存时间(从Session的产生到生命周期的结束)Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
工具/原料
工作原理
11)客户端与服务器建立联系Cby办公区 - 实用经验教程分享!
2)客户端将session id传递给服务器Cby办公区 - 实用经验教程分享!
3)服务器根据session id建立相应的session id文件(session id序列化保存,读取时反序列化)Cby办公区 - 实用经验教程分享!
唯一标识的方法有两种:cookie或者通过GET方式指定Cby办公区 - 实用经验教程分享!
1 Session的缺点
11)使用Session会影响系统性能(受文件系统设计影响,目录定义超过10000个文件非常耗时)Cby办公区 - 实用经验教程分享!
2)Session文件大小1~2K,数量庞大的小文件影响硬盘IO性能Cby办公区 - 实用经验教程分享!
Session配置文件
1默认配置文件的路径Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
/etc/php.iniCby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
2查找配置文件Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
find/-namephp.iniCby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
3配置文件的参数Cby办公区 - 实用经验教程分享!
vim编辑/etc/php.iniCby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
[Session]Cby办公区 - 实用经验教程分享!
session.save_handler=files#session的存储方式Cby办公区 - 实用经验教程分享!
session.use_cookies=1#使用cookies在客户端保存会话Cby办公区 - 实用经验教程分享!
session.use_only_cookies=1#去保护URL中传送sessionid的用户Cby办公区 - 实用经验教程分享!
session.name=PHPSESSID#session名称(默认PHPSESSID)Cby办公区 - 实用经验教程分享!
session.auto_start=0#不启用请求自动初始化sessionCby办公区 - 实用经验教程分享!
session.cookie_lifetime=0#cookie存活时间(0为直至浏览器重启,单位秒)Cby办公区 - 实用经验教程分享!
session.cookie_path=/#cookie的有效路径Cby办公区 - 实用经验教程分享!
session.cookie_domain=#cookie的有效域名Cby办公区 - 实用经验教程分享!
session.cookie_httponly=#httponly标记增加到cookie上(脚本语言无法抓取)Cby办公区 - 实用经验教程分享!
session.serialize_handler=php#PHP标准序列化Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
session.gc_probability=1Cby办公区 - 实用经验教程分享!
session.gc_divisor=1000#建议设置1000-5000Cby办公区 - 实用经验教程分享!
#概率=session.gc_probability/session.gc_divisor(1/1000)Cby办公区 - 实用经验教程分享!
#页面访问越频繁概率越小Cby办公区 - 实用经验教程分享!
session.gc_maxlifetime=1440#过期时间(默认24分钟,单位秒)Cby办公区 - 实用经验教程分享!
session.bug_compat_42=off#全局初始化session变量Cby办公区 - 实用经验教程分享!
session.bug_compat_warn=offCby办公区 - 实用经验教程分享!
session.referer_check=#防止带有ID的外部URLCby办公区 - 实用经验教程分享!
session.entopy_length=0#读取的字节Cby办公区 - 实用经验教程分享!
session.cache_limiter={nocache,private,pblic}#HTTP缓冲类型Cby办公区 - 实用经验教程分享!
session.cache_expire=180#文档过期时间(分钟)Cby办公区 - 实用经验教程分享!
session.use_trans_sid=1#trans_sid支持(默认0)Cby办公区 - 实用经验教程分享!
session.hash_function=0#hash方法{0:md5(128bits),1:SHA-1(160bits)}Cby办公区 - 实用经验教程分享!
session.hash_bits_per_character=5#当转换二进制hash数据奥可读形式是,每个字符保留位数Cby办公区 - 实用经验教程分享!
session.save_path="/var/lib/php/session"#sessionid存放路径Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
session的保存目录
1默认路径:Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
ls-l/var/lib/php/sessionCby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
2路径查找方法:Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
find/-namesessionCby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
3配置文件自定路径Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
grepsession.save_path/etc/php.iniCby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
session的保存方式
1文件方式保存Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
session.save_handler=filesCby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
2处理器方式(如mysql)Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
session.save_handler=userCby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
3开启客户端会话保存Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
session.use_cookies=1Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Session的同步
1场景:应用程序层有多台服务器,服务器之间做负载均衡,可通过如下方式解决Cby办公区 - 实用经验教程分享!
1)Session存储于数据库Cby办公区 - 实用经验教程分享!
2)存储于共享存储(NFS)Cby办公区 - 实用经验教程分享!
3)负载均衡器保持会话Cby办公区 - 实用经验教程分享!
Session的管理脚本
1删除24分钟内没有被改变的Session文件Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
cd/var/lib/php/session;find-cmin 24|xargsrmCby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
内存直存Session的方法
1内存直接存储Session可以改善Session存储的性能(重启丢失),设置方法如下Cby办公区 - 实用经验教程分享!
vim编辑/etc/php.iniCby办公区 - 实用经验教程分享!
修改如下参数Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
session.save_path="/dev/shm"Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
注:"/dev/shm"相当于内存入口Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
yum源安装
1yum-yinstallwgettreeCby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
配置部分
1tar-xfphp-7.0.2.tar.bz2Cby办公区 - 实用经验教程分享!
cdphp-7.0.2/ext/sessionCby办公区 - 实用经验教程分享!
bashmod_files.sh/var/lib/php/session/25Cby办公区 - 实用经验教程分享!
chown-Rapache:apache/var/lib/php/session/Cby办公区 - 实用经验教程分享!
chmod700-R/var/lib/php/session/Cby办公区 - 实用经验教程分享!
2检查目录结构Cby办公区 - 实用经验教程分享!
tree/var/lib/php/session/Cby办公区 - 实用经验教程分享!
显示如下Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
3检查目录权限Cby办公区 - 实用经验教程分享!
ls-l/var/lib/php/session/Cby办公区 - 实用经验教程分享!
4重启httpd服务使PHP的Session相关设置生效Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
/etc/init.d/httpdrestartCby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
5增加测试代码:Cby办公区 - 实用经验教程分享!
vim编辑/var/www/www.cmdschool.org/test.phpCby办公区 - 实用经验教程分享!
创建如下代码:Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
?phpCby办公区 - 实用经验教程分享!
session_start();Cby办公区 - 实用经验教程分享!
$_SESSION["user_name"]="cmdschool.org";Cby办公区 - 实用经验教程分享!
echo$_SESSION["user_name"];Cby办公区 - 实用经验教程分享!
echo" ahref="test2.php">test2/a>"Cby办公区 - 实用经验教程分享!
?>Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
vim编辑/var/www/www.cmdschool.org/test2.phpCby办公区 - 实用经验教程分享!
创建如下代码:Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
?phpCby办公区 - 实用经验教程分享!
session_start();Cby办公区 - 实用经验教程分享!
echo$_SESSION["user_name"];Cby办公区 - 实用经验教程分享!
?>Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
6模拟DNS解析:Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
notepad%SystemRoot%System32driversetchostsCby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
7建立如下映射:Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
10.168.0.170www.cmdschool.orgCby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
测试与检查
1浏览器测试Cby办公区 - 实用经验教程分享!
http://xx.xx.xx.xx/test.phpCby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
2如上图所示:Cby办公区 - 实用经验教程分享!
本页生成Session变量"user_name"并赋值"cmdschool.org"Cby办公区 - 实用经验教程分享!
单击【test2】跳转页面Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
3日志检查Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
tail/var/log/httpd/error_logCby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
4检查生成的Session文件Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
tree/var/lib/php/sessionCby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
显示如下Cby办公区 - 实用经验教程分享!
Cby办公区 - 实用经验教程分享!
以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!Cby办公区 - 实用经验教程分享!