问题是每隔一段时间写入一个会话的页面都会导致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