『壹』 【php-fpm的安裝】在安裝過程中遵循教程,其中有一句「make all install」不知道怎麼操作
編譯安裝三部曲:
./configure->make->make install
只有./configure是需要一大串指令的(設定你的參數配置),其他的直接輸指令就可以。make完就直接make install
『貳』 PHP-FPM詳解
PHP-FPM是PHP FastCGI進程管理器,專為管理PHP進程池設計,用於接收web伺服器請求。
第一部分,為什麼出現PHP-FPM?PHP-FPM的誕生源自PHP-FastCGI的需求。為有效管理PHP-FastCGI而出現的程序。
第二部分,了解PHP-FastCGI。它只是一個解析PHP請求並返回結果的CGI程序,並不負責管理進程。
第三部分,為何不稱為PHP-CGI?在PHP-FastCGI之前,存在PHP-CGI,但其執行效率低下,最終被PHP-FastCGI取代。
第四部分,解釋FastCGI與CGI的區別。在FastCGI時代,當web伺服器(如nginx)接收到請求並識別為動態PHP請求時,會將其轉給PHP處理。在CGI模式下,每次請求時都需要讀取php.ini配置,初始化執行環境,耗時且重復。
第五部分,FastCGI的效率提升。FastCGI允許一次啟動一個主進程(master),讀取一次配置,然後啟動多個工作進程(worker)。當請求來臨時,master將請求傳遞給worker,避免了重復的初始化工作。
第六部分,PHP-FPM的工作原理。PHP-FPM創建一個主進程來控制何時以及如何將HTTP請求轉發給一個或多個子進程處理。主進程還負責管理進程的創建與銷毀,以適應Web應用流量的變化。
安裝部分,PHP在5.3.3之後將PHP-FPM整合到核心代碼中,無需單獨下載安裝。只需在編譯PHP源碼時添加--enable-fpm即可啟用PHP-FPM支持。
全局配置方面,CentOS中PHP-FPM的主配置文件為/etc/php7/php-fpm.conf,配置內容通常包括進程池定義。
在CentOS中,PHP-FPM主配置文件頂部引入了進程池定義文件,通常使用www.conf作為默認配置文件。進行必要的編輯保存後,重啟PHP-FPM主進程。
PHP-FPM進程池的詳細配置請參考php.net/manual/install文檔。
針對Company開發環境的配置,提供測試環境與生產環境的具體配置示例。以nginx為例,說明如何轉發請求給PHP-FPM。
最後,針對PHPer進階時遇到的問題,提供了一系列資料,涵蓋分布式架構、高可擴展性、高性能、高並發、伺服器性能調優、TP6、Laravel、YII2、Redis、Swoole、Swoft、Kafka、Mysql優化、shell腳本、Docker、微服務、Nginx等高級進階干貨,需要的讀者可以免費獲取。
『叄』 說說php-fpm配置解析
PHP-FPM配置解析
在編譯安裝PHP時,通過在./configure中添加參數`--enable-fpm`即可開啟PHP-FPM。配置文件為`php-fpm.conf`,其語法類似`php.ini`。默認位置為`/usr/local/php/etc/php-fpm.conf`,若未在此處,可能位於`/usr/local/php/etc/php-fpm.d/`目錄下。
全局配置包含PID文件路徑、錯誤日誌位置及錯誤級別設置。
進程池配置允許定義多個進程池,通過設置監聽地址與埠來接受FastCGI請求。推薦使用Unix域Socket,如配置`listen/tmp/php-cgi.sock`以提高性能,適合高並發場景,盡管在不穩定時可設置`backlog`以管理連接隊列。
`listen.allowed_clients`允許訪問FastCGI進程的IP白名單,設置為`any`則不限制IP訪問。
進程管理器設置包括`pm`參數選擇靜態、動態或按需管理子進程數量,`pm.max_children`和`pm.start_servers`定義進程最大數量與起始數量,確保穩定性與資源利用。
內存管理考慮:對於大內存伺服器(8G以上),建議使用靜態設置以提升效率。而小內存伺服器(如1G)則有利於系統穩定,合理分配資源。
`request_terminate_timeout`與`request_slowlog_timeout`分別設置最大執行時間與慢請求記錄,有助於調試與優化。
慢日誌功能通過設置`request_slowlog_timeout`來記錄超過指定時間的請求,包括進程號、腳本名稱、執行時間等詳細信息,幫助排查問題。
配置修改後,執行`sudo systemctl restart php-fpm`以使更改生效。
希望以上內容能幫助您理解並應用PHP-FPM配置,更多學習資源可關注公眾號:PHP開源社區,或訪問我們整理的精華文章合集,覆蓋框架、微服務、分布式、高並發與資料庫等PHP技術領域。