当PHP会话到期时,Apache进程会发生什么?

时间:2016-07-17 22:58:28

标签: php apache

我的理解是,当收到请求时,Apache服务器将分叉一个新进程并调用相应的php脚本/文件。

当php脚本启动会话时,在这个由Apache分叉的新进程中,会发生什么情况已经过期,或者用户是通过关闭浏览器来结束它的?在我使用的错误或注销重定向之后有一个exit();调用,但我不确定它在服务器/操作系统级别的作用。

Apache会杀死进程吗? apache和php之间的通信如何工作?

1 个答案:

答案 0 :(得分:2)

  

我的理解是,当收到请求时,Apache服务器将分叉一个新进程并调用相应的php脚本/文件。

这只是PHP-CGI配置的情况,这不是典型的。大多数部署都使用mod_php SAPI,它在Apache进程中运行PHP脚本。

  

当php脚本启动会话时,在这个由Apache分叉的新进程中,会发生什么情况已经过期,或者用户通过关闭浏览器来结束它?

没有

在PHP-CGI配置中,只要脚本完成生成响应,该进程就会退出。在mod_php配置中,Apache进程返回以在脚本完成时侦听新请求。

会话的生命周期与任何特定流程无关。请记住,会话作为文件存储在系统的临时目录中 - PHP会定期检查此目录中是否已过期的会话,并在适当时删除它们。

关闭浏览器从服务器的临时目录中删除会话。它可能会导致您的浏览器丢弃与会话相关的cookie,导致会话停止使用,但服务器不会收到通知。