PHP FPM是最新版本的PHP FastCGI進程管理器,它使用FastCGI協議管理非常快速,而且可以輕松地為PHP應用設置咖啡應用服務器。具體來說,PHP FPM不僅提供了配置管理功能,同時還能夠優化進程管理,提高PHP應用程序的性能。對于像WordPress、Drupal、Joomla等常用框架的PHP應用程序,都可以和PHP FPM一起使用,在提高性能方面也有顯著的效果。
PHP-FPM是面向FastCGI協議的,它的主要功能是處理并對外提供PHP文件的解釋執行能力。它的工作流程是首先讀取用戶請求的PHP文件內容,然后按照FastCGI的規范規定進行編寫,最終由Socket將處理后的結果返回給Web服務器。
它其實就是一個PHP進程管理器,主要分為2種模式:Static 和Dynamic,一個管理者進程負責調度正在運行的worker子進程。其中,Static模式和Nginx的Worker進程模式很像,worker個數是靜態的,不會超過指定的最大上限,而Dynamic模式,則會開啟指定個數的Worker進 程,一定時間后如果worker進程空閑,將自動停止該worker進程,以達到動態與靜態進程數量的平衡。
PHP-FPM的Listen模式允許Web服務器與Philipps FPM進行通信。聽眾模式下,FPM必須偵聽某個端口或Unix套接字來接收Web服務器發送的請求。這個時候,用戶的請求數據被普通的套接字接收,并傳遞到一個worker子進程中。在孵化過程中,worker會處理請求,然后將結果返回給WP服務器。如果worker有其他請求要處理,就會直接處理下一個請求,如果沒有,就會關閉連接。
當然,如果PHP-FPM監聽到Web服務器端口,則必須要指定監聽請求的IP和端口:
如果需要監聽Unix套接字,則可以設置一個目錄和文件名:listen = 127.0.0.1:9000
對于大多數Web服務器,Unix套接字通常比TCP / IP套接字更快。此外,您可以啟用多個FPM進程來并發處理更多請求。例如,有些Web服務器按照不同的用戶類型分配請求,例如管理員,作者或其他訪客。這就是PHP-FPM的優勢之一,它可以處理來自Web服務器的不同請求,以確保系統的順暢運行。 總之,PHP-FPM Listen模式可以幫助您擴展您的PHP應用程序,使其能夠同時處理更多的請求。您可以根據實際情況選擇TCP / IP套接字或Unix套接字,具體取決于您的需求和Web服務器的性能以及存儲解決方案。無論哪種情況,PHP-FPM Listen模式都能夠提供出色的性能,并幫助您提高PHP應用程序的響應速度和效率。listen = /var/run/php-fpm/php-fpm.sock