因为是在windows 下的iis进行php的环境,因此不少状况下不能像lamp那么简单进行设置。因为工做缘由我也遇到不少session没法保存的状况(在wamp下)。如下是相信信息的汇总,仅供参考学习。 php
1,php.ini设置问题,这类状况下须要设置 apache
session_auto_start = on //这是自动开启session的 windows
在php文档中输入 phpinfo 查看是否正确的开启了session。 安全
2,保存session的文件夹有问题 session
首先查看php.ini中的session_save_path 是否存在,而且没有被注释掉,若是存在的话 通常在widnows中默认的为c:\windows\tmp 下,这目录默认是不容许其余用户读取的。 学习
解决方案 spa
1.设置 文件夹为 everyone 可读取 可写入 ,这样虽然能够解决问题,可是却产生了新的问题就是安全问题,由于是windows 下,能够进行注册表等其余信息的跨目录读取。 继承
2.从新设置 session_save_path ,设置完成之后 重启iis 看是否成功 若是不成功的话 请设置两个,由于在php.ini中为了兼容之前的版本是有两个的 一个是被注释掉的 一个是 4.0以上 一个是5.0以上的。设置完成后,设置被设置的目录为everyone 读取 写入,而后继承,其余的都不要勾取,这样就保证了保存目录的安全和系统数据的安全。 文档
3.和程序代码有关系。 get
当看到设置的目录中有session生成的时候,可是所有都是0kb的空文件,这时候须要进行检查下代码是否有问题。
解决方案:
1.若是开启了session_auto的话 请关闭掉。而后在页面中上方写写入 session_start
2.若是第一种方案无效的话,建议在session_start前面加上'@'符号,写入页面和读取页面都要加的。
4.其余问题,
若是以上缘由还不能够进行处理的话,请检查php文档是否为当前加载的php文档,wamp加载的php.ini在apache中,关于检查当前php环境加载的php.ini的话 请关注后面的文章。
转载请著名出处谢谢。。