1,检查php.ini 所有跟session 有关的配置。
2,使用以下代码检查,session的保存目录有没有读写的权限
<?php
echo "session 保存路径:".ini_get("session.save_path");
echo "<br>";
echo "可写的权限".var_dump(is_writeable(ini_get("session.save_path")));
echo "<br>";
echo "可读的权限".var_dump(is_readable(ini_get("session.save_path")));
echo "<br>";
if(file_exists(ini_get("session.save_path"))){
echo "当前目录中,文件".ini_get("session.save_path")."存在";
}else{
echo "当前目录中,文件".ini_get("session.save_path")."不存在";
}
?>
3,如何本地调试可以,线上调试不行。那对比一下本地的session配置跟线上环境有什么区别。
比如这一次,我比对到,本地的这些参数跟线上的不太一样。于是,改线上服务器的php.ini 如下
session.gc_divisor = 1000
session.cookie_secure = 0
session.gc_probability = 1
session.use_cookies = 1
session.use_only_cookies = 1