php session参数说明
今天遇到一个问题,后台无法登陆。最开始以为是session文件的读取权限问题,将权限修改为777后还是无效
然后写了两个脚本
t1.php
<?php
session_start();
$_SESSION["abc"] = 123;
t2.php
<?php
session_start();
var_dump($_SESSION);
发现在这个环境里面读取session失败。 最后找到了原因是因为cooke被禁用。
由于这台服务器是台老机器,多个部门都在用这台服务器,而我们的业务有一堆直接发送到前台的xxx.data 的配置文件,迁移是个问题,有其他人修改过过php配置,所以出现了这个问题。
我们使用的所有工具,都可以作为我们创造新的工具的参考,有句古话叫做~天助我也~大概就是这个意思吧~
解决的过程中发现对session的配置说明有些是看不懂的,所以贴出了这个配置说明。
其实使用工具,了解他的时候,也是你创造类似的工具的起点,说不定哪天自己写个session的处理器呢。
如果自己写,那么php的这些配置就是我可以收集到的很有用的信息,如果没有这些信息,可能就会写个在服务器端基于hash存储小文件的处理器吧
[Session]
session.save_handler = files ; 用于保存/取回数据的控制方式
session.save_path = /tmp ; 在 save_handler 设为文件时传给控制器的参数,
; 这是数据文件将保存的路径。
session.use_cookies = 1 ; 是否使用cookies
session.name = PHPSESSID ; 用在cookie里的session的名字
session.auto_start = 0 ; 在请求启动时初始化session
session.cookie_lifetime = 0 ; 为按秒记的cookie的保存时间,
; 或为0时,直到浏览器被重启
session.cookie_path = / ; cookie的有效路径
session.cookie_domain = ; cookie的有效域
session.serialize_handler = php ; 用于连接数据的控制器
; php是 PHP 的标准控制器。
session.gc_probability = 1 ; 按百分比的'garbage collection(碎片整理)'进程
; 在每次 session 初始化的时候开始的可能性。
session.gc_maxlifetime = 1440 ; 在这里数字所指的秒数后,保存的数据将被视为
; '碎片(garbage)'并由gc 进程清理掉。
session.referer_check = ; 检查 HTTP引用以使额外包含于URLs中的ids无效
session.entropy_length = 0 ; 从文件中读取多少字节
session.entropy_file = ; 指定这里建立 session id
; session.entropy_length = 16
; session.entropy_file = /dev/urandom
session.cache_limiter = nocache ; 设为{nocache,private,public},以决定 HTTP 的
; 缓存问题
session.cache_expire = 180 ; 文档在 n 分钟后过时
session.use_trans_sid = 1 ; 使用过渡性的 sid 支持,若编译时许可了
; --enable-trans-sid
url_rewriter.tags = "a=href,