• 技术文章 >后端开发 >php教程

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

    2016-05-30 14:59:17原创354
    今天的工作是迁移一个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有所帮助。

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:Apache PHP SESSION丢失
    上一篇:Laravel 5框架学习之表单验证_PHP 下一篇:php使用post数组的键值创建同名变量并赋值的方法_PHP
    PHP编程就业班

    相关文章推荐

    • 带你聊聊PHP中的泛型之基础知识浅析• PHP高并发实例详解之解决商品库存超卖问题• 十天学会php之第三天_php基础• php将数组存储为文本文件方法汇总_PHP• 再点一次Active的名,我把你的函数功能扩充了一下,嘻嘻,现在能_PHP

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网