我有一个从头开始用PHP编写的应用程序。我正在使用PHP的本机会话处理程序函数来处理用户身份验证和持久性。
在开发服务器上进行测试时,一切都很好。身份验证,持久性等工作正常。
当安装在生产服务器上时,一切正常,直到用户身份验证 - 当应用程序实际将数据写入会话对象时,突然跟随它的HTTP请求完全挂起,当执行session_start()时。
我怀疑临时会话文件被PHP锁定并且从未发布过,所以我尝试跟进应用程序使用session_write_close()
写入会话对象的位置,但这似乎没有效果。
这听起来像文件锁定问题还是其他的?我很困惑为什么session_write_close似乎没有处理文件锁定问题,如果是这种情况,这就是为什么我想知道在这里是否还有其他东西可以使用。
任何可能的想法或想法?
回复Pekka的伟大建议:
Linux wynn 2.6.18-164.9.1.el5PAE #1 SMP
答案 0 :(得分:4)
只是一些想法 - 除了pygorex的评论之外,首先打开error_reporting,这应该是第一个。
可能不是,但是对于session_start的用户贡献说明中描述了三个挂断:
您是否可以阅读会话cookie并检查/ tmp目录中是否存在该名称的会话文件?该文件是否可写?它是否包含数据?
如果所有其他方法都失败了,manual page on session_save_handler()似乎是默认会话处理功能的完全自定义替代品。请考虑使用它们进行详细调试。