传统模式:每个请求启动独立 PHP 进程,处理完成后销毁。
性能低:进程创建 / 销毁开销大,不适合高并发场景。
安全性高:进程隔离,一个请求崩溃不影响其他请求。
低流量静态网站
测试环境或开发环境
AddHandler cgi-script .php Options +ExecCGI
常驻进程:PHP 进程持久化,避免频繁创建销毁。
性能提升:比 CGI 快 3-5 倍,适合中等流量网站。
需配合 Web 服务器:如 Apache 的 mod_fastcgi
或 Nginx 的 fastcgi_pass
。
中小型网站
轻量级应用(如博客、论坛)
location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params;}
FastCGI 的增强版:自带进程管理(动态 / 静态进程池)。
智能负载均衡:根据请求量自动调整进程数量。
平滑重启:支持不中断服务的配置重载。
中大型网站
高并发应用(如电商、API 服务)
[www]pm = dynamicpm.max_children = 50pm.start_servers = 10pm.min_spare_servers = 5pm.max_spare_servers = 35
深度集成:PHP 作为 Apache 模块运行,请求直接由 Apache 处理。
执行效率高:无需进程间通信,响应速度快。
内存占用大:每个 Apache 进程都加载 PHP 解释器。
纯 PHP 应用
对响应速度要求极高的场景
LoadModule php_module /path/to/libphp.so AddType application/x-httpd-php .php
通用接口:PHP 与不同服务器的抽象层(如 CLI、embed、litespeed 等)。
灵活性高:支持自定义扩展和运行环境。
需特定服务器支持:如 LiteSpeed 的 lsapi
。
高性能服务器(如 LiteSpeed)
命令行脚本(CLI 模式)
lsapi.addhandler "lsapi-php74" "php74" "php74-fcgi"
模式 | 性能(请求 / 秒) | 内存占用 | 适合场景 | 技术栈推荐 |
---|---|---|---|---|
CGI | 100-300 | 高 | 低流量静态网站 | Apache + CGI |
FastCGI | 500-1000 | 中 | 中小型网站 | Nginx + FastCGI |
PHP-FPM | 1000-3000 | 可控 | 高并发应用 | Nginx + PHP-FPM |
mod_php | 1500-4000 | 高 | 纯 PHP 高性能应用 | Apache + mod_php |
SAPI | 3000+ | 低 | 性能需求 | LiteSpeed + LSAPI |
结合了高性能与灵活的进程管理,是当前 Web 应用的方案。
使用 Docker 部署 PHP-FPM 容器,配合 Nginx 反向代理,实现弹性伸缩。
对静态资源使用 Nginx 直接处理,动态请求转发给 PHP-FPM,提升整体效率。
通过 pm.status
监控 PHP-FPM 进程状态,动态调整进程池大小。
PHP-FPM:适合大多数场景,尤其是高并发应用。
mod_php:追求性能的纯 PHP 项目。
CGI/FastCGI: legacy 系统或低流量场景。
SAPI:与特定服务器(如 LiteSpeed)深度集成的高性能场景。
根据业务规模和技术栈选择合适的运行模式,并通过性能测试(如 ApacheBench、WRK)验证配置效果,是保障 PHP 应用..稳定运行的关键。
(声明:本文来源于网络,仅供参考阅读,涉及侵权请联系我们删除、不代表任何立场以及观点。)