我正在使用PHP运行Apache的标准配置。 我想知道当客户端请求导致PHP脚本执行的页面时会发生什么,然后客户端在脚本完成之前终止来自服务器的请求。 Apache是以某种方式杀死脚本,还是允许它完成?
答案 0 :(得分:8)
documentation回答了这个问题:
当PHP脚本正常运行时 NORMAL状态是活动的。 如果 远程客户端断开ABORTED 状态标志已打开。远程 客户端断开通常是由 用户按下STOP按钮。如果 PHP强加的时间限制(见 命中set_time_limit()),TIMEOUT 状态标志已打开。
您可以决定是否需要 客户断开连接导致您的 要中止的脚本。有时是 总是让你的脚本运行方便 完成即使没有 远程浏览器接收输出。 但是默认行为是 你的脚本要在中止时中止 远程客户端断开连接。 :此 行为可以通过 ignore_user_abort php.ini指令为 以及通过相应的 php_value ignore_user_abort Apache httpd.conf指令或者用 ignore_user_abort()函数。如果你 不要告诉PHP忽略用户中止 并且用户中止,您的脚本将 终止。
如果您想告诉远程客户端脚本已完成,但仍继续请求后处理,请查看this question/answer。