2012-05-15 42 views
1

页面上具有session_start()的所有页面突然停止加载,并且它已经工作了多年。即使主人不知道该怎么做,寻找建议。奇怪的问题,把session_start()导致页面不加载

用下面的代码进行了抽样检测页面也未能:

error_reporting(1); 
if(!$_REQUEST['disable']=="yes") 
{ 

session_start(); 
} 
echo "hello"; 

如果我所说的网页,而没有经过参数将disable = yes页面没有加载,它只是挂起处理

?该网站与服务器上的其他2个站点一起托管,其他2个站点没有任何问题,只是这个站点突然开始如此行事[网站上的代码没有更改为2+现在几个月]。

+2

检查'session.save_path'定义的会话目录是否仍然可写。 –

+0

有没有错误?日志对此有何评论? –

+0

还要确保你没有达到磁盘空间的限制。如果您没有做任何更改并且只是突然不再加载,则可能没有足够的磁盘空间来写入新的会话文件。 –

回答

0

好的我发现了这个问题!

猜猜看,它甚至不涉及会话!尽管MySQL会在会话中引起这样的问题,但相当令人惊讶。

到底发生了什么:

我有一个主数据库服务器和复制从DB成立。我服务器中的大部分页面都试图连接到从站,如果从站发生故障,它将连接到主站。然而,出于一些奇怪的原因[我还没有想到],从属数据库的mysql_connect只是挂起而没有超时,这反过来,由于某种奇怪的原因,不会允许任何其他具有session_start()加载!

现在我不确定为什么这会在所有其他页面上产生这样的副作用,但我必须禁用从属服务器,将所有查询仅路由到主服务器,然后才能清除浏览器缓存再次访问该网站。

因此,如果mysql_connect无法正常工作或无法连接[并且mysql_connect不会超时],那么它可能会导致服务器上的任何其他页面加载时出现问题 - 即使是简单的4行页面我已经在上面提到了我的问题,这个页面甚至没有调用数据库。

0

可能会话未启用。

使用phpinfo();将php设置输出到屏幕并查看更靠近底部的会话表。应该说Session Support => enabled

+0

已启用。事实上,在同一台服务器上有3个网站,其他2个网站没有任何问题,只有这1个特定网站突然开始显示这些错误 – Sam

+0

只是抛出了可能性。在这个网站的PHP文件有不同的所有者比其他网站?可能它可能是会话文件夹中的文件夹权限错误。 – Apot

+0

也看这个解决方案http:// stackoverflow。com/questions/2679616/session-start-hangs-the-server – Apot