PHP是當前使用最廣泛的服務器端腳本語言之一,它能夠處理HTML表單,進行文本處理,打開、讀取和寫入文件,在服務器上動態創建圖像,和許多其他任務。CGI和FCGI是兩種PHP執行方式,它們在如何處理請求和管理資源方面有一些不同。
CGI(通用網關接口)是處理Web服務器和應用程序之間通信的標準方式。在CGI模式下,PHP被當做一個可執行的二進制文件使用,它的每個請求都需要啟動一個新的PHP進程,每次請求都會加載代碼,并初始化數據。這種方式有一些缺點,首先是它在處理高并發和大量請求時不穩定,因為每個請求都需要啟動一個新的PHP進程,這會導致系統資源使用過量。其次,這種方式需要在Web服務器和PHP之間進行大量的IO通信,并且每個請求都需要重新載入PHP代碼。
#!/usr/bin/php-cgi Content-type: text/html
另一方面,FCGI(快速CGI)是解決CGI的瓶頸問題的一種方式。在FCGI模式下,PHP作為一個長期運行的進程運行,單個進程可以處理多個請求。與CGI不同,FCGI將請求發送到一個監聽程序,該程序將請求轉發給可用的PHP進程,并將響應發送回Web服務器。這種方式消除了啟動新PHP進程的需要,減少了做出請求時的IO通信,并提高了處理高并發和大量請求時的性能。
#!/usr/bin/php-cgi Content-type: text/html"; echo "Hello World "; echo "Hello World