傳統模式(shi):每個請求啟(qi)動獨立 PHP 進程,處理(li)完成后銷毀(hui)。
性能低:進(jin)程創(chuang)建 / 銷毀開銷大,不適合高并發場景。
安全性(xing)高:進程隔離,一個請求崩潰不影響其他(ta)請求。
AddHandler cgi-script .php
Options +ExecCGI
常(chang)駐(zhu)進程(cheng):PHP 進程(cheng)持久化,避免頻繁創建銷毀。
性能(neng)提升:比 CGI 快 3-5 倍,適合中等流量網(wang)站。
需配合 Web 服務器(qi):如 Apache 的 mod_fastcgi 或 Nginx 的 fastcgi_pass。
中小型網站
輕量級(ji)應用(如博客、論(lun)壇)
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;}FastCGI 的增(zeng)強版:自帶進程管理(動態 / 靜(jing)態進程池)。
智能負(fu)載均衡:根據請求量自(zi)動(dong)調(diao)整進(jin)程(cheng)數量。
平滑重啟:支持(chi)不中斷服務的(de)配(pei)置重載。
中大型網站
高(gao)并發應用(如電商、API 服務)
[www]pm = dynamicpm.max_children = 50pm.start_servers = 10pm.min_spare_servers = 5pm.max_spare_servers = 35
深度集成:PHP 作為 Apache 模塊(kuai)運行,請求(qiu)直接由(you) Apache 處理(li)。
執行效率高:無需進(jin)程間通信,響應速(su)度(du)快。
內存(cun)占用大:每個 Apache 進程都加載(zai) PHP 解釋器(qi)。
LoadModule php_module /path/to/libphp.so
AddType application/x-httpd-php .php
通用接口:PHP 與不同服務器的(de)抽象層(如 CLI、embed、litespeed 等)。
靈活(huo)性高:支持自定義擴展和運行(xing)環境(jing)。
需特(te)定服(fu)務(wu)器支持:如 LiteSpeed 的 lsapi。
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 |
主流選擇:PHP-FPM + Nginx
微服務與容器化
混(hun)合模式
監控與調優
PHP-FPM:適合大多數場景,尤其是高并發應用(yong)。
mod_php:追求性(xing)能的純 PHP 項目。
CGI/FastCGI: legacy 系統或(huo)低流量場景。
SAPI:與特定服務器(如 LiteSpeed)深度集成的高性能場(chang)景。
根據業務規(gui)模和(he)技術棧(zhan)選(xuan)擇合適的(de)運(yun)行模式,并通過(guo)性(xing)能測試(如 ApacheBench、WRK)驗證配置效果(guo),是(shi)保障(zhang) PHP 應用..穩定(ding)運(yun)行的(de)關鍵。
(聲明:本文來(lai)源于網絡,僅供參考閱讀,涉及侵權請聯(lian)系我(wo)們(men)刪除、不代表任何(he)立(li)場(chang)以及觀點(dian)。)