Windows下Apache + PHP SESSION丢失的解决过程全纪录


Posted in PHP onApril 07, 2015

今天的工作是迁移一个PHP站点至新服务器。

创建一台Windows Server 2008虚拟机,并在其上停掉net stop http服务(避免争抢80端口),安装配置 Apache + PHP,迁移站点至新服务器,站点正常打开,Apache + PHP运行正常,连接MySql Server正常,一切都美好,本想着半小时完成的工作,紧接着噩梦开始了。

该站点使用单点登录,登录过程包含JavaScript异步操作,包含SOAP调用Web Service。登录却直接跳回了登录页面,没有任何错误提示,考虑了以下可能:

1、是账户异常?在其他系统测试,账户状态正常。

2、是JavaScript异步操作失败?用IE开发人员工具跟踪Javascript返回值,返回值正常。

3、是Web Service调用失败?用Fiddler跟踪Web Service的返回值,表明已经验证成功,已经完成本地登录。

反复跟踪调试,才开始怀疑该站点SESSION丢失了:

1、JavaScript异步操作设置SESSION失败,难道是因为同步访问和异步访问的SESSION ID是不同造成的?这在Flash中进行异步调用才出现过,JavaScript也会吗?输出同步访问和异步访问的SESSION ID值是一样的。

2、建2个PHP测试页面,在一个页面中设置SESSION,在另一个页面中却读不到。检查php.ini相关设置,看起来是正常的,查看session.save_path = "C:/php/tmp"路径,却果真没有SESSION相关的文件,设置连tmp目录都没有。

结局令人啼笑皆非,没有tmp目录,PHP无法写入SESSION文件,自然SESSION就丢失了。为什么没有tmp目录,因为安装包里没有……我的3小时。

以上所述就是本文的全部内容了,希望能够对大家学习php有所帮助。

PHP 相关文章推荐
php2html php生成静态页函数
Dec 08 PHP
php trim 去除空字符的定义与语法介绍
May 31 PHP
php生成zip压缩文件的方法详解
Jun 09 PHP
解析php 版获取重定向后的地址(代码)
Jun 26 PHP
Yii使用ajax验证显示错误messagebox的解决方法
Dec 03 PHP
PHP中实现接收多个name相同但Value不相同表单数据实例
Feb 03 PHP
windows8.1下Apache+Php+MySQL配置步骤
Oct 30 PHP
关于Laravel Route重定向的一个注意点
Jan 16 PHP
PHP环形链表实现方法示例
Sep 15 PHP
Ubuntu上安装yaf扩展的方法
Jan 29 PHP
php实现QQ小程序发送模板消息功能
Sep 18 PHP
php swoft框架实例用法
Dec 22 PHP
php修改文件上传限制方法汇总
Apr 07 #PHP
windows下安装php的memcache模块的方法
Apr 07 #PHP
CodeIgniter删除和设置Cookie的方法
Apr 07 #PHP
php获取网页里所有图片并存入数组的方法
Apr 06 #PHP
经典PHP加密解密函数Authcode()修复版代码
Apr 05 #PHP
php简单实现快速排序的方法
Apr 04 #PHP
php获取网页上所有链接的方法
Apr 03 #PHP
You might like
微博短链接算法php版本实现代码
2012/09/15 PHP
PHP 登录完成后如何跳转上一访问页面
2014/01/14 PHP
初识Laravel
2014/10/30 PHP
php实现以只读方式打开文件的方法
2015/03/16 PHP
PHP ajax+jQuery 实现批量删除功能实例代码小结
2018/12/06 PHP
js字符编码函数区别分析
2011/12/28 Javascript
简单实用jquery版三级联动select示例
2013/07/04 Javascript
jquery中EasyUI使用技巧小结
2015/02/10 Javascript
JavaScript实现的字符串replaceAll函数代码分享
2015/04/02 Javascript
javascript处理a标签超链接默认事件的方法
2015/06/29 Javascript
JavaScript实现带箭头标识的多级下拉菜单效果
2015/08/27 Javascript
JQuery解析XML数据的几个简单实例
2016/05/18 Javascript
AngularJS基础 ng-cloak 指令简单示例
2016/08/01 Javascript
jquery实现全选、不选、反选的两种方法
2016/09/06 Javascript
jQuery.form.js插件不能解决连接超时(timeout)的原因分析及解决方法
2016/10/14 Javascript
Angularjs自定义指令实现三级联动 选择地理位置
2017/02/13 Javascript
javascript 动态生成css代码的两种方法
2017/03/17 Javascript
ES6 迭代器(Iterator)和 for.of循环使用方法学习(总结)
2018/02/08 Javascript
Vue-cli配置打包文件本地使用的教程图解
2018/08/02 Javascript
微信小程序如何引用外部js,外部样式,公共页面模板
2019/07/23 Javascript
Vue通过WebSocket建立长连接的实现代码
2019/11/05 Javascript
ElementUI Tree 树形控件的使用并给节点添加图标
2020/02/27 Javascript
jQuery实现简单评论区功能
2020/10/26 jQuery
基于JavaScript实现简单扫雷游戏
2021/01/02 Javascript
python3音乐播放器简单实现代码
2020/04/20 Python
Python实现删除列表中满足一定条件的元素示例
2017/06/12 Python
浅谈python中的占位符
2017/11/09 Python
python如何使用unittest测试接口
2018/04/04 Python
django 多数据库配置教程
2018/05/30 Python
使用CodeMirror实现Python3在线编辑器的示例代码
2019/01/14 Python
100行Python代码实现每天不同时间段定时给女友发消息
2019/09/27 Python
湖南卫视在线视频媒体平台:芒果TV
2019/10/30 全球购物
机关会计岗位职责
2014/04/08 职场文书
党员个人剖析材料
2014/09/30 职场文书
《7的乘法口诀》教学反思
2016/02/18 职场文书
MySQL中的布尔值,怎么存储false或true
2021/06/04 MySQL