Composer负责安装依赖并生成自动加载文件,PHP-FPM执行PHP脚本时通过autoload加载类,Nginx或Apache将PHP请求转发给PHP-FPM处理,三者协同确保应用正常运行。

Composer 是 PHP 的依赖管理工具,它本身不直接参与运行时请求处理,而是与 PHP-FPM、Nginx 或 Apache 协同工作的基础环节之一。理解它们之间的关系,有助于正确部署和维护 PHP 应用。
Composer 负责依赖安装和自动加载
当你在项目中使用 composer install 或 composer update 时,Composer 会:
- 根据 composer.json 安装所需的第三方库到 vendor/ 目录
- 生成 vendor/autoload.php,实现类的自动加载
- 确保代码中通过 require_once 'vendor/autoload.php'; 就能加载所有依赖
这个过程发生在开发或部署阶段,不涉及 Web 服务器如何处理请求。
PHP-FPM 执行 PHP 脚本
当 Nginx 或 Apache 接收到一个 PHP 请求(如 index.php),它不会直接解析 PHP 文件,而是将请求转发给 PHP-FPM。
立即学习“PHP免费学习笔记(深入)”;
- PHP-FPM 是一个守护进程,负责运行 PHP 解释器
- 它执行你的 PHP 脚本,包括加载 Composer 生成的自动加载文件
- 脚本中使用的类(比如来自 Guzzle、Symfony 等)由 Composer 自动加载机制载入
如果没有运行过 Composer,vendor/ 目录就不存在,PHP-FPM 执行时就会报错“类未找到”。
Nginx/Apache 充当反向代理或模块化处理器
Web 服务器的作用是接收 HTTP 请求并决定如何处理:
- Nginx:通常通过 fastcgi_pass 指令把 .php 文件转发给 PHP-FPM
- Apache:可通过 mod_php(较少见)或 proxy_fcgi 模式与 PHP-FPM 通信
例如 Nginx 配置片段:
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
这个配置让 Nginx 把 PHP 文件交给运行在 9000 端口的 PHP-FPM 处理。
整体协作流程示例
用户访问 https://example.com/index.php 时发生以下顺序:
- Nginx 接收请求,匹配到 .php 后缀规则
- 将请求转发给 PHP-FPM
- PHP-FPM 运行 index.php,其中包含 require 'vendor/autoload.php';
- Composer 提供的自动加载器根据命名空间查找并包含对应类文件
- PHP-FPM 返回输出结果给 Nginx,再返回给用户
基本上就这些。Composer 不参与运行时通信,但它构建的依赖结构是整个应用正常工作的前提。只要部署时正确运行了 Composer,并确保 Web 服务器和 PHP-FPM 配置无误,三者就能无缝协作。











