PHP是一種廣泛使用的伺服器端腳本語言,用於Web開發和動態頁面產生。它可以作為CGI(公共網關介面)應用程式運行,也可以作為模組(如Apache HTTP伺服器)來運行。
CGI(公共閘道介面)是一種通用的標準,用於連接Web伺服器和Web應用程式。它允許Web伺服器發送請求到網路應用程式並接收回應。其中,PHP CGI指的是使用CGI標準協定連接PHP解釋器與Web伺服器的方式。
PHP有兩個主要的CGI解決方案:PHP-CGI和PHP-FPM。下面介紹一下它們的差異。
PHP-CGI是PHP的標準CGI解決方案。它使用進程池來運行PHP解釋器,每個請求都會建立一個新進程。它使用單獨的進程來處理每個請求,這會導致一些效能問題。因為它需要為每個請求重新載入PHP解釋器和相關的程式庫檔案。這個過程需要消耗更多的時間和資源。
PHP-FPM是PHP的另一個CGI解決方案,它改進了PHP的效能問題。它使用一個進程池來運行PHP解釋器,每個進程都可以處理多個請求。在PHP-FPM中,解譯器執行緒會在請求到達時被喚醒,並在請求處理完成後繼續保持活動狀態。這減少了每個請求處理的時間,因為在處理請求時不需要重新載入解釋器和庫文件,而是重複使用已經存在的執行緒。
PHP-FPM也提供了更好的調度和控制集中器的能力。它允許您設定可以使用的線程數量,以及當線程池滿時如何處理新到達的請求。這樣可以在動態負載下更好地保持伺服器的回應能力。
PHP-FPM是PHP的建議解決方案,原因是可以提供更好的效能和擴充性。 PHP-FPM比PHP-CGI在執行緒池管理方面具有更好的效果,具有更好的效能和更好的動態負載管理能力。 PHP-FPM也支援FastCGI協議,可以與各種Web伺服器(如Nginx,Apache等)通訊。
雖然PHP-CGI是PHP的標準CGI解決方案,但考慮到效能方面,可以選擇使用PHP-FPM。對於小型網站或開發環境,PHP-CGI是可以使用的,但在生產環境中,為了確保良好的效能和可擴充性,建議使用PHP-FPM。
總之,PHP可以透過CGI協定連接Web伺服器,使用PHP-CGI或PHP-FPM作為CGI解決方案。 PHP-FPM是PHP的建議解決方案,可以提供更好的效能和擴充性。使用哪種CGI解決方案,取決於您的使用情況,包括伺服器負載,流量等。
以上是php cgi區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!