session_start()挂起服务器

问题描述:

完全被这一个困惑...session_start()挂起服务器

我们有一个WAMPServer安装设置,从各种文档根目录运行一些虚拟主机。

就在最近,一个特定的域已经开始挂起服务器。我们将其追溯到session_start()。如果我们将它评论出来,那就没有问题了(当然,除非我们在会议中无法做任何事情)。没有注释的话,它会挂起页面加载,并且在重新加载的情况下会挂起整个服务器。

所有其他网站仍然完美地与他们的会话。据我所知,会议正在进行的方式没有什么不同。我正在进一步寻找它(以防有人改变了一些东西),但现在我希望有一些方向:)

那么,有什么想法?

+0

权限错误是最有可能的,但是,也许代码包含一个自定义会话处理程序。检查session_set_save_handler的代码。自定义会话命令可能存在问题。 – 2010-04-21 02:09:14

+0

你有任何长期运行的PHP脚本,使用会话? – goat 2010-04-21 03:43:48

+0

@chris:没有长时间运行的脚本,@Don:会看看自定义会话处理程序,谢谢。 – Narcissus 2010-04-21 10:54:45

所以,我猜测这是一个应用层问题,因为其他网站的会话正常工作。但是,这假定他们的会话配置方式相同 - 通过仔细检查您的网站在其配置中与其他网站相比没有做一些“独特”配置,从而节省了一些时间。

我接下来会检查在您的应用程序中运行的其他与会话相关的代码。这可能是通过调用session_start()将应用程序置于其将运行其他代码的状态。例如,可能有一段代码表示“只有在设置此会话变量时才运行此函数”,并且通过启动会话来暴露该变量,在那里它不会被暴露,因此不会运行有问题的函数如果会话未开始。

祝你好运。

+0

你是完全正确的,因为会话导致会话变量存在其他地方,并从那里,该变量是最终是什么问题......感谢评论,因为它推动了我的大脑! – Narcissus 2010-04-21 18:03:01

+0

太棒了 - 很高兴听到我的帮助。 :-) – 2010-04-21 18:11:11

如果您使用基于文件的会话,我的第一个猜测将是文件权限。如果您正在使用数据库会话,那么我会检查以确保表格没有损坏。另外,它是Apache,PHP或其他被锁定的东西吗?

有可能您在底层基础架构中发现了一个您无法解决的错误。在尝试诊断此问题之前,您至少应该清除所有现有会话。