2012-05-15 67 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