問題是每隔一段時間寫入一個會話的頁面都會導致Apache永久掛起以進行特定會話。一旦此用戶發生此錯誤,任何用戶的任何會話的任何進一步修改都將導致該用戶的網站掛起。導致Apache無限期掛起的PHP會話
這個問題一直是我唯一關注的日子。我有一個使用標準PHP會話處理程序運行Windows 2003和默認最新版本的XAMPP的開發VPS。有問題的代碼實際上通常運行在另外兩臺機器上,雖然我的常識說這是一個web服務器配置問題,但在這一點上,我願意嘗試任何東西。
在進一步調查中,Apache,PHP或系統事件日誌中沒有錯誤。資源豐富,不存在「AJAX垃圾風暴」,或者不止一對夫婦寫入每頁會話。我也儘可能地實現了session_write_close()來嘗試並幫助提升問題。
我檢查了設置爲「C:\ windows \ Temp」的會話目錄,發現一旦用戶進入掛起階段,相應的會話文件被獨佔鎖定,解決此問題的唯一方法是停止Apache並等待一會兒文件解鎖並刪除它們。我不知道是否需要刪除。
會話本身只包含4位信息。 ShoppingCartID,UserID,UserLevel和Refering URL,並且是偶爾用斜槓的字母數字。
我的php.ini的會話部分配置是這樣的:
session.save_handler = files
session.save_path = "C:\WINDOWS\Temp"
session.use_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path =/
session.cookie_domain =
session.cookie_httponly =
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor = 100
session.gc_maxlifetime = 1440
session.bug_compat_42 = 1
session.bug_compat_warn = 1
session.referer_check =
session.entropy_length = 0
session.entropy_file =
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 0
session.hash_function = 0
session.hash_bits_per_character = 4
我已經試過所有我能想到的,現在整個問題是模糊了我。任何想法將不勝感激,並感謝您的閱讀時間:)
不需要刪除會話文件。一旦apache重新啓動,你實際上可以繼續進行會話。 – Kmaid 2010-04-25 20:18:16
我在Apache/Linux安裝上遇到完全相同的問題,您是否曾找到解決方案? – Rowan 2010-07-26 12:55:23
是的,我做了新的安裝一切都很好>> – Kmaid 2010-11-24 23:28:53