1. 什么是CGI和FastCGI
- CGI:
通用網(wǎng)關接口(Common Gateway Interface/CGI)是一種重要的互聯(lián)網(wǎng)技術,可以讓一個客戶端,從網(wǎng)頁瀏覽器向執(zhí)行在網(wǎng)絡服務器上的程序請求數(shù)據(jù)。CGI描述了服務器和請求處理程序之間傳輸數(shù)據(jù)的一種標準。 - FastCGI:
快速通用網(wǎng)關接口(Fast Common Gateway Interface/FastCGI)是一種讓交互程序與Web服務器通信的協(xié)議。FastCGI是早期通用網(wǎng)關接口(CGI)的增強版本。
FastCGI致力于減少網(wǎng)頁服務器與CGI程序之間互動的開銷,從而使服務器可以同時處理更多的網(wǎng)頁請求。 - 結論:CGI跟FastCGI都是協(xié)議、有別于CGI程序、FastCGI程序
2. 什么是PHP-CGI、PHP-FPM
PHP-CGI:
PHP-CGI是PHP自帶的FastCGI管理器,也就是專門給PHP使用的FastCGI管理器
PHP-CGI的不足:
1、php-cgi變更php.ini配置后需重啟php-cgi才能讓新的php-ini生效,不可以平滑重啟。
2、直接殺死php-cgi進程,php就不能運行了。(PHP-FPM和Spawn-FCGI就沒有這個問題,守護進程會平滑從新生成新的子進程。)PHP-FPM:
因為PHP-CGI的不足,所以PHP-FPM誕生了,它解決了PHP-CGI的不足,同時還具備更多的功能,還表現(xiàn)在其他方面更表現(xiàn)強勁。
PHP-FPM 是對于 FastCGI 協(xié)議的具體實現(xiàn),他負責管理一個進程池,來處理來自Web服務器的請求生成新的子進程。
3. 圖解

image.png