壹般的網頁服務架構是這樣的:
瀏覽器|
網站服務器(apache,?nginx等)?只支持靜態內容(html,?圖片,文件)
|\
CGI?Fast?CGI?(兩種編程規範,按照特定的方式讀輸入,寫輸出。也叫協議。)
|?|
任何語言任何語言?(按照上面的規範來寫代碼,提供動態內容,比如讀寫數據庫,根據數據庫展示不同內容)
任何語言中就包括了php
其中CGI的方式就是,網站服務器會把CGI程序當成普通的程序壹樣調用,然後把CGI程序的標準輸出流作為內容返回給瀏覽器。每來壹個請求,就要啟動壹個CGI程序。所以php可以直接加上可執行屬性(僅linux),就可以讓網站服務器調用。缺點是響應慢而且占用內存多(每次啟動程序的消耗較大)。
而FastCGI的方式就是,網站服務器通過socket跟FastCGI程序獲取輸入輸出。FastCGI程序會啟動壹個程序壹直運行並監聽端口。每來壹個請求,不需要再啟動新的程序。php提供了php-fpm這個東東來監聽端口。