Apache 与 PHP 交互

Apache 与 PHP 交互

假设我们有一个典型的 LAMP 设置。当有人请求用 php 编码的网页时,Apache 级别会发生什么?Apache 是否会创建一个新的 php 实例来创建并返回该网页?还是有一个持续运行的 php 实例?

基本上,我认为它的工作原理如下:

  • 人次访问http://example.com/index.php

  • Apache 收到请求,启动 php 实例来创建页面

  • 页面创建完毕,发送回请求浏览器

  • PHP 实例已关闭

因此,只有一个 php 实例处理页面请求...我的想法正确吗?

答案1

这取决于您如何使用 PHP。如果您没有使用 CGI/FastCGI(这将使您的陈述正确),那么 PHP 实际上是在模块中运行的(请参阅 /etc/httpd/conf.d/php.conf 或 httpd.conf 以了解包含 php 模块)。这意味着当 Apache 有一个子进程时,每个进程已经有一个 PHP 二进制文件。因此,Apache 针对一组钩子运行解释器并呈现页面。

CGI 是作为单一进程执行的方法。

相关内容