php/FPM/CLI
PHP-FPM 和 PHP CLI 是 PHP 的两种运行模式,它们各自适用于不同的场景。†
## 🚀 什么是 PHP-FPM(FastCGI Process Manager)
PHP-FPM 是 PHP 的一种运行方式,它实现了 FastCGI 协议,并提供了进程管理功能。它的主要作用是:
- **处理 Web 请求**:当用户访问网站时,Web 服务器(如 Nginx 或 Apache)会将 `.php` 请求交给 PHP-FPM 来处理。
- **高性能并发处理**:PHP-FPM 会预先启动多个 PHP 工作进程,避免每次请求都重新启动 PHP,提升性能。
- **资源管理**:可以配置最大进程数、空闲进程数、请求超时等参数,灵活控制服务器资源。
- **与 Web 服务器解耦**:PHP-FPM 作为独立服务运行,Web 服务器通过 FastCGI 协议与它通信。
📍适用于:**Web 应用场景**,如网站、API 服务等。
## 🧑💻 什么是 PHP CLI(Command Line Interface)
PHP CLI 是 PHP 的命令行接口,允许你在终端中直接运行 PHP 脚本。它的特点是:
- **无需 Web 服务器**:直接在命令行运行 `.php` 文件。
- **适合脚本任务**:如定时任务(crontab)、数据处理、自动化脚本等。
- **长时间运行不受限制**:不像 Web 请求有超时限制,CLI 脚本可以运行很久。
- **调试方便**:开发者可以快速测试 PHP 代码。
📍适用于:**后台任务、脚本执行、开发调试**。
## 🔍 对比总结
| 特性 | PHP-FPM | PHP CLI |
| ------ | --------- | --------- |
| 启动方式 | 由 Web 服务器通过 FastCGI 调用 | 直接在命令行运行 |
| 使用场景 | 网站请求处理 | 后台任务、定时脚本 |
| 性能 | 高并发优化,进程池管理 | 单进程执行 |
| 是否需要 Web 服务器 | 是 | 否 |
| 是否支持 HTTP 请求 | 是(通过 Web 服务器) | 否 |
## 🎯 举个例子
- 如果你在做一个网站,用户访问 `index.php`,你需要用 PHP-FPM。
- 如果你写了一个脚本 `backup.php`,每天凌晨自动备份数据库,那就用 PHP CLI。