Windows下 Apache + PHP SESSION丢失的惨痛经历

今天的工作是迁移一个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小时。

时间: 2024-10-09 20:16:58

Windows下 Apache + PHP SESSION丢失的惨痛经历的相关文章

Windows下Apache + PHP SESSION丢失的惨痛经历

今天的工作是迁移一个PHP站点至新服务器. 创建一台Windows Server 2008虚拟机,并在其上停掉net stop http服务(避免争抢80端口),安装配置 Apache + PHP,迁移站点至新服务器,站点正常打开,Apache + PHP运行正常,连接MySql Server正常,一切都美好,本想着半小时完成的工作,紧接着噩梦开始了. 该站点使用单点登录,登录过程包含JavaScript异步操作,包含SOAP调用Web Service.登录却直接跳回了登录页面,没有任何错误提示

Windows下Apache+Tomcat实现应用集群

Windows下Apache+Tomcat实现应用集群1 环境依赖:windows.jdk1.6.Apache2.2.tomcat6.02 Jdk1.6安装2.1 略3 安装Apache(2.2.27)3.1 下载:从Apache官网http://httpd.apache.org/download.cgi下载httpd-2.2.25-win32-x86-openssl-0.9.8y.msi:3.2 安装:双击上一步下载的安装程序,持续下一步直到完成:安装向导成功完成,左面右下角托盘中会出现Apa

Windows 下 Apache HTTP Server 与 Tomcat 的整合

整合准备: 1.Apache HTTP Server(下文用Apache简称) 2.Tomcat 7或8 3.mod_jk.so (tomcat-connectors)-这个文件是用来链接http server与tomcat的桥梁 下载地址:http://mirrors.hust.edu.cn/apache/tomcat/tomcat-connectors/jk/binaries/windows/ 下载的版本要与Apache的版本一致 Apache的安装都是下一步,只是有个地方要输入填一下 安装

Windows下Apache配置SSL以支持https及出错的解决办法

步骤一:安装apache,使其支持SSL,并安装php 1.安装配有SSL模块的apache,apache_2.2.8-win32-x86-openssl-0.9.8g 2.配置apache以支持SSL: 1)打开apache的配置文件conf/httpd.conf LoadModule ssl_module modules/mod_ssl.so Include conf/extra/httpd-ssl.conf 去掉两行前面的# 2)注意修改httpd-ssl.conf 文件里的两个字段: S

Windows下Apache的优化

Windows下Apache的优化 (2012-06-02 13:00:35) 转载▼ (1)首选查看apache的工作模式windows下的查看apache的工作模式命令:httpd -l如果列出mod_win32.c,则表示是 win32.c 工作方式. 列出的全部内容如下所示:core.cmod_win32.cmpm_winnt.chttp_core.cmod_so.c mpm_winnt.c是专门针对Windows NT优化的MPM(多路处理模块),它使用一个单独的父进程产生一个单独的子

Windows下Apache与PHP的安装与配置

Windows下Apache+PHP开发环境的搭建主要包括三种方式,第一种是直接采用集成化的安装包,如XAMPP,第二种是Apache采用官方提供的msi安装包,PHP手动安装,第三种是Apache和PHP均手动安装.显然,第一种方式是最简单的,但相应的限制也比较大,第三种方式最麻烦,但可以灵活的选择自己所需的版本进行安装.本文主要记录了第三种方式的安装过程. 本文不同于其它同类文章的一个特点是:我不希望只是单纯提供几个下载链接,而是希望告诉初学者如何从官方网站找到相关资源,这样即使情况发生了变

windows下Apache配置SSL安全连接

什么是SSL? SSL(Secure Socket Layer): 是为Http传输提供安全的协议,通过证书认证来确保客户端和网站服务器之间的数据是安全.Open SSL下载地址:http://www.openssl.org/source/ 一.下载并安装 支持SSL的 Apache  1.安装配有SSL模块的apache, 下载地址http://httpd.apache.org/download.cgi#apache23附件提供httpd-2.2.15-win32-x86-openssl-0.

Windows下Apache+mod_python+Django配置

Windows下Apache+mod_python+Django配置 Apache 首先要安装Apache,我安装的版本是2.2.*: Python python肯定是要安装的,我安装的版本是2.5的,高版本的还没有mod_python支持,那就需要用mod_wsgi来支持,那个我配过,虽然成功了,但是没有去详细研究wsgi这个东东,不过是这肯定是个趋势,mod_python是个太监产品.跑题了.Python安装目录:D:\Python25,安装完成后,将D:\Python25加入系统环境变量的

Windows下Apache Tomcat?的下载安装和使用

本文将给出在windows下Apache Tomcat的下载安装和使用的简易教程. 前往Tomcat的官网http://tomcat.apache.org/.如下图所示: 在上图左侧红色方框中选择版本,例如,我们点击Tomcat 9,进入以下页面. 我们以windows为例,选择下载相应windows版本的Tomcat 9, 点击文件下载,得到zip文件,如下图所示: 将文件解压至某个文件夹,注意解压路径中不要有中文和空格.例如,解压至E盘下, 下面,来稍微解释一下Tomcat下各个文件及文件夹