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 相关文章推荐
php5 mysql分页实例代码
Apr 10 PHP
PHP写入WRITE编码为UTF8的文件的实现代码
Jul 07 PHP
fleaphp rolesNameField bug解决方法
Apr 23 PHP
PHP导航下拉菜单的实现如此简单
Sep 22 PHP
设置php页面编码的两种方法示例介绍
Mar 03 PHP
ThinkPHP验证码使用简明教程
Mar 05 PHP
php实现文件下载实例分享
Jun 02 PHP
php+memcache实现的网站在线人数统计代码
Jul 04 PHP
跟我学Laravel之配置Laravel
Oct 15 PHP
php字符串分割函数用法实例
Mar 17 PHP
PHP图像处理类库及演示分享
May 17 PHP
PHP赋值的内部是如何跑的详解
Jan 13 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转换颜色为其反色的方法
2015/04/27 PHP
PHP性能优化大全(php.ini)
2016/05/20 PHP
Yii框架实现记录日志到自定义文件的方法
2017/05/23 PHP
基于 Swoole 的微信扫码登录功能实现代码
2018/01/15 PHP
PHP实现八皇后算法
2019/05/06 PHP
Laravel 在views中加载公共页面的实现代码
2019/10/22 PHP
Autocomplete Textbox Example javascript实现自动完成成功
2007/08/17 Javascript
jquery keypress,keyup,onpropertychange键盘事件
2010/06/25 Javascript
ko knockoutjs动态属性绑定技巧应用
2012/11/14 Javascript
javascript实现获取cookie过期时间的变通方法
2014/08/14 Javascript
Java中Timer的用法详解
2015/10/21 Javascript
学习JavaScript设计模式之代理模式
2016/01/12 Javascript
jQuery中数据缓存$.data的用法及源码完全解析
2016/04/29 Javascript
angularjs 中$apply,$digest,$watch详解
2016/10/13 Javascript
原生javascript实现的ajax异步封装功能示例
2016/11/03 Javascript
jQuery表单验证之密码确认
2017/05/22 jQuery
基于React+Redux的SSR实现方法
2018/07/03 Javascript
适用于 Vue 的播放器组件Vue-Video-Player操作
2020/11/16 Javascript
Node.js 中如何收集和解析命令行参数
2021/01/08 Javascript
以一段代码为实例快速入门Python2.7
2015/03/31 Python
讲解Python中for循环下的索引变量的作用域
2015/04/15 Python
python实现批量下载新浪博客的方法
2015/06/15 Python
浅析python打包工具distutils、setuptools
2018/04/20 Python
python获取指定字符串中重复模式最高的字符串方法
2018/06/29 Python
我用Python抓取了7000 多本电子书案例详解
2019/03/25 Python
python模块和包的应用BASE_PATH使用解析
2019/12/14 Python
html5嵌入内容_动力节点Java学院整理
2017/07/07 HTML / CSS
html5 实现客户端验证上传文件的大小(简单实例)
2016/05/15 HTML / CSS
New Balance英国官方网站:始于1906年,百年慢跑品牌
2016/12/07 全球购物
TUMI马来西亚官方网站:国际领先的高品质商旅箱包品牌
2018/04/26 全球购物
业务总经理岗位职责
2014/02/03 职场文书
物业客服专员岗位职责
2015/04/07 职场文书
公司行政主管岗位职责
2015/04/09 职场文书
如何使用PyCharm及常用配置详解
2021/06/03 Python
一篇文章带你复习java知识点
2021/06/28 Java/Android
基于PyQt5制作一个群发邮件工具
2022/04/08 Python