我的 apache 安装如何加载 PHP-FPM

How is my apache installation loading PHP-FPM

我在安装 Apache 2.4php-fpm (remi-8.0) 的地方进行了干净的 Centos 8 安装,使用以下简单的一行:

dnf install -y httpd php-fpm

没有其他代码,没有对系统进行其他更改,什么都没有。

启动 httpd.servicephp-fpm 后,我可以使用浏览器访问 PHP 文件。伟大的。问题是这样的:我知道 PHP-FPM 的配置文件在 /etc/php-fpm.d/www.conf 但我完全不知道 Apache 是如何加载这个文件的。在 /etc/httpd/conf/httpd.conf 上,我没有看到任何指向此文件的内容,在 conf.modules.d 目录中也是如此 - 没有任何内容。

我只是想知道 Apache 是如何知道加载 php-fpm,或者它是否知道 php-fpm 已启用并且它必须 proxy 请求 [=34] =] 解释请求的文件?在许多在线教程中,安装 php-fpm 的人向虚拟主机、httpd.conf 文件添加了很多行……但我什么也没做,但它起作用了。为什么?

php-fpm 是一个 FastCGI 服务,监听在 /etc/php-fpm.d/www.conf

中定义的套接字
listen = /run/php-fpm/www.sock

httpd 是另一个服务,使用 mod_proxy 使用 /etc/httpd/conf.d/php.conf[= 中定义的套接字与其通信14=]

<FilesMatch \.php$>
    SetHandler "proxy:unix:/run/php-fpm/www.sock|fcgi://localhost"
</FilesMatch>

But I did nothing and it worked. Why?

因为它被设计为开箱即用,这要归功于 php-fpm 包提供的默认配置文件;)