【发布时间】:2012-06-27 23:29:54
【问题描述】:
我最近将一堆网站迁移到了一个新的 VPS,但我在 PHP 会话方面遇到了很多麻烦。所有网站的配置方式几乎都相同,但有一个网站的会话并不总是有效。让我烦恼的是它有点随机。我可以去网站,登录,会话会正常工作。然后,一个小时后我回去,尝试用同一个帐户登录,但它不再保留我的会话。
VPS 在 CentOS 5.8 上运行,它具有 PHP 5.4.3。我应该提一下,在迁移之前,该网站是在 PHP 5.3 上运行的。
我检查了 session.save.path 并没有问题。我什至可以看到会话文件(具有正确的用户和所有内容),但是当会话不工作时它们是空的,这是有道理的。但是为什么有时会起作用,有时却不起作用?我很难弄清楚这一点。
【问题讨论】:
-
您在使用它们的每个页面顶部都有
session_start();吗? -
是的,我愿意。事实上,当会话做工作时,我可以毫无问题地进入任何页面。如果他们不这样做,我就无法在不丢失会话的情况下继续浏览单个页面。
-
嗯...在浏览器中是否有在旧服务器上查看时留下的任何 cookie?它们会引起怪异。
-
另外(抱歉这样的评论)...确保会话路径是可写的?正确的用户/组所有权等?
-
会话绑定到域,例如 abc.com 和 www.abc.com 是分开的。你确定你在代码中到处使用完全相同的路径吗?