【问题标题】:one php-file opens one process but then the process closes?一个php文件打开一个进程,然后进程关闭?
【发布时间】:2010-01-09 14:23:18
【问题描述】:

如果一个 web 用户正在进入我的 php 站点并与之交互,那么这个 php 文件将打开一个进程(一个线程),然后在 php 文件完成逻辑并将输出发送到浏览器之后,该进程关门了吗?

因为如果它没有关闭,那么这意味着该 php 文件中变量中的值将被取消删除,对吗?但是由于您总是必须用值初始化新变量,这意味着该过程已关闭?

我只是在传统的桌面应用程序中考虑了这个原因,我认为除非您将其关闭,否则该进程不会关闭。

【问题讨论】:

    标签: php process


    【解决方案1】:

    PHP 是 REQUEST 驱动的。 Web 服务器的交互如您所描述。

    • 请求进入服务器
    • Apache(示例)为 php 可执行文件创建一个线程
    • 您的 PHP 脚本已启动,变量已初始化
    • 您的脚本执行完毕,变量消失
    • Apache 清理
    • 您从服务器获得响应

    是的,桌面应用程序和在服务器上运行的 php 脚本在这些方面非常不同。

    【讨论】:

    • 好的,所以在执行该 php 文件的最后一行后关闭进程。
    • 不,不一定。阅读我的答案。
    • 但是当脚本完成时,所有由 PHP 分配的与脚本执行相关的资源(变量、文件/数据库句柄、网络套接字等)都会被清除,但是如果它以 mod_php 运行在 Apache 或 fastCGI 中,PROCESS 不会在此时终止——它只是进入待机状态,直到它有新的服务请求。 C.
    【解决方案2】:

    这取决于配置。例如,如果 php 以 FastCGI 方式运行,则进程不会关闭,会继续运行,等待新的请求。

    尽管您可以确定一件事,但无论配置如何:脚本结束时所有变量/等都将未初始化,因此您(程序员)不必担心这一点。无论配置如何以及进程是否关闭,它的行为都相同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-10
      • 1970-01-01
      • 2020-02-27
      • 2019-10-21
      • 2020-06-02
      • 1970-01-01
      • 2023-04-04
      • 2016-02-12
      相关资源
      最近更新 更多