秒懂PHP的FastCGI跟PHP-FPM有什麼關係
隨著時間的推進,php可以說是花樣越來越多,很多就在問說CGI跟FPM是有什麼關係,讓小編為大家講解一下:
CGI與FPM
CGI是一種協議,為了保證web server傳過來的資料是標準格式
比如說,如果請求 index.html,web server會去找到這個文件再丟給瀏覽器,但這個只限於靜態文件而已,如果是index.php呢,就需要去找php解析器來處理了,接下來web service就會把這個請求交給php 解析器處理,那會傳那一些資料呢?像是 post或是url還有http header等,CGI就是規定要傳哪些資料、以及怎麼樣的格式
FastCGI是什麼?
接下來又提到那FastCGI是什麼呢? FastCGI是用來提高CGI處理process性能用的
那FastCGI會怎麼實作呢?
當php啟動時、會去尋找php.ini、進行環境的初始化,如果不使用FastCGI的情況下,每一個請求都會做這個動作,很明顯浪費系統資源,所以FastCGI會先啟動一個master,解析配置文件用,接下來再啟動worker,當請求過來時、master會遞資訊給worker,然後接下來等下一個請求,有這個機制就不用每一次重新跑一次初始化的動作了
PHP-FPM
那PHP-FPM呢? Fastcgi是一個協議,其實是php-fpm實現了這個協議
php-fpm是管理fastcgi ,大概的關係就是這樣子
我要留言