PHP会话*不总是*工作
我最近将一批网站迁移到了一个新的VPS,我在PHP会话方面遇到了很多麻烦。所有网站的配置方式基本相同,但有一个网站的会话并不总是有效。让我不舒服的是它有点随机。我可以在网站上登录,会话将正常工作。然后,一个小时后我返回,尝试登录到同一个帐户,但它不再保持我的会话 VPS在CentOS 5.8上运行,并且具有PHP5.4.3。我应该提到,在迁移之前,该网站是在PHP5.3上运行的PHP会话*不总是*工作,php,session,vps,Php,Session,Vps,我最近将一批网站迁移到了一个新的VPS,我在PHP会话方面遇到了很多麻烦。所有网站的配置方式基本相同,但有一个网站的会话并不总是有效。让我不舒服的是它有点随机。我可以在网站上登录,会话将正常工作。然后,一个小时后我返回,尝试登录到同一个帐户,但它不再保持我的会话 VPS在CentOS 5.8上运行,并且具有PHP5.4.3。我应该提到,在迁移之前,该网站是在PHP5.3上运行的 我已经检查了会话.save.path,一切正常。我甚至可以看到会话文件(具有正确的用户和所有内容),但当会话不工作时,
我已经检查了会话.save.path,一切正常。我甚至可以看到会话文件(具有正确的用户和所有内容),但当会话不工作时,它们是空的,这是有意义的。但为什么有时有效,有时无效?我很难弄清楚这一点。会话需要服务器磁盘空间来保存会话服务器是否有磁盘空间来保存会话?我们在linux上遇到一个问题,其中会话停止保存,因为它的分区已用完磁盘空间。检查您的php.ini,执行phpinfo()并查看会话是如何配置的。。。特别是session.gc_maxlife设置 我们也有这个问题。
我们通过在服务器的php.ini中将session.auto_start=0更改为session.auto_start=1来解决这个问题。我不知道为什么,但它解决了我们的问题。我们仍在调查为什么会这样做,以及这样做的后果是什么。我的一个专用服务器安装了PHP5.4.3,有时也会遇到同样的问题 讽刺的是,当我清除浏览器缓存时(从一开始就清除所有内容)
工作正常。您有
会话_start()吗代码>在每页的顶部使用它们?是的,我使用。事实上,当会话成功时,我可以毫无问题地浏览任何页面。如果他们不这样做,我就无法在一页上不丢失会话。嗯。。。在浏览器中,在旧服务器上查看时是否有剩余的cookie?它们可能会引起奇怪的事情。而且(很抱歉这样评论)。。。是否确保会话路径可写?正确的用户/组所有权等?会话绑定到域,例如abc.com和www.abc.com是分开的。您确定在代码中的任何地方都使用完全相同的路径吗?谢谢您的回答。好吧,我忘了检查一下。不幸的是,这不是问题所在。我的VPS上仍然有很多空间,我配置了网站(在我的Plesk面板中),以便它可以在服务器上使用所需的空间。所有设置与默认的php设置非常相似,除了一件事:session.gc_除数设置为1000而不是默认的100。我不知道它到底是干什么的。为了子孙后代。。。session.gc_除数加上session.gc_概率定义了每次会话初始化时启动gc(垃圾收集)进程的概率。概率是通过使用gc_概率/gc_除数计算的,例如,1/100表示gc进程在每个请求上启动的概率为1%。session.gc_除数默认为100@Y0lk