我有一个用 PHP 编写的网站。其中一位用户在一栋大楼中,他们有两个互联网连接,两个 ISP,但只有一个网络。因此,网络上的任何计算机都可以通过任一 Web 连接进行连接,并且似乎切换有时会发生在请求中间。有时这会导致我的脚本出现内部服务器错误。可悲的是,我共享主机上的日志似乎没有很多细节。
所以,这是我的猜测。我的脚本使用会话。用户使用 Internet 连接 1 发送请求,这将锁定会话文件。在处理该请求时,互联网连接 1 被关闭,互联网连接 2 被打开。Apache/PHP 不断尝试将响应发送回 Internet 连接 1(不再存在)。用户尝试通过 Internet 连接重新加载页面 2. PHP 等待初始脚本退出并解锁会话文件,但它永远不会这样做,因此它最终因内部服务器错误而死。
那么,我该如何解决呢?如果自上次锁定以来已经过去了太多时间,有没有办法强制解锁会话文件?(没有脚本的执行时间超过 3 秒,因此如果锁定时间超过 15 秒,这意味着旧脚本正在等待将文件提供给错误的 IP 地址并且可能会被终止。 ) 谢谢!