要在生产环境为一个内部系统升PHP版本,由5.3升成5.4.16
生成以后发现不能login,一路打断点过去,发现服务器端两个页面跳转的时候,取不到$SESSION
悲催的上网找解决方案,结果发现各种说法,
先去查浏览器cookie, cookie是可用的, sessionID也能正常拿的到
再去看代码, 代码写得很正常, 开头session_start, 中间$SESSION[XXX] = XXXX , 都很正常
百思不得其解,快要发疯的时候
我想起来, PHP是把session保存在哪里的呢
Tomcat是可以选择序列化在数据库里,或者写本地文件,或者干脆保存在内存里
PHP原来默认是保存在txt文件中, 保存的path是PHP.ini中的 session.save_path
阿弥陀佛,原来是升级PHP之后, 系统默认把session.save_path 的所有权交给了root, 而不是我当前运行PHP的用户
PHP没权限把session写入这个path中,当然会丢失了。
FFFFuck 狗日的PHP!!!!