這篇文章適合有一定經驗的PHP開發者閱讀啊,沒有上下文鋪墊
PHP生命周期
PHP-FPM是什么
php-fpm即php-Fastcgi Process Manager.
php-fpm是 FastCGI 的實現,并提供了進程管理的功能。
進程包含 master 進程和 worker 進程兩種進程。
master 進程只有一個,負責監聽端口,接收來自 Web Server 的請求,而 worker 進程則一般有多個(具體數量根據實際需要配置),每個進程內部都嵌入了一個 PHP 解釋器,是 PHP 代碼真正執行的地方。
三種PHP應用的Web模型
PHP生命周期進階-換個角度看一看-圖南科技.png
實際應用配置時,nginx如何配置fast-cgi模塊?
人們常說的nginx反向代理,PHP交由PHP-FPM處理,nginx與PHP-FPM關聯的配置如下
location ~ \.php$ {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass 127.0.0.1:9000;
try_files $uri =404;
}
image.png
PHP生命周期進階-換個角度看一看.png
PHP生命周期進階-換個角度看一看.png
這種模型中充當WebServer角色的構件不僅僅有nginx,應用本身也包含了一個內建WebServer,不過由于Swoole Http Server不是專業的Http Server,對Http的處理不完善 ,因此仍然需要使用Nginx作為靜態資源服務器以及反代,Swoole Http Server僅僅處理PHP相關的Http流量。