首頁 >後端開發 >PHP問題 >關於php的三種運行方法

關於php的三種運行方法

藏色散人
藏色散人原創
2020-08-13 09:10:175476瀏覽

php三種運行方法是:1、透過HTTPServer內建的模組來實現;2、透過CGI來實現;3、透過FastCGI來實現。

關於php的三種運行方法

推薦:《PHP影片教學

PHP三種運作方式

三種運作方式:mod_php5、cgi、fast-cgi

1. 透過HTTPServer內建的模組來實現,

例如Apache的mod_php5,類似的Apache內建的mod_perl可以對perl支援;

 

2. 透過CGI來實現

這個就好比之前perl的CGI,該種方式的缺點是效能差,因為每次伺服器遇到這些腳本都需要重新啟動腳本解析器來執行腳本然後將結果傳回給伺服器,另一方面就是不太安全,

該方式幾乎很少使用了。

 

3. 最新出現一種叫做FastCGI。

所謂FastCGI就是對CGI的改進。它一般採用C/S結構,一般腳本處理器會啟動一個或多個daemon進程,每次HTTPServer遇到腳本的時候,直接交付給FastCGI的進程來執行,然後將得到的結果(通常為html)返回給瀏覽器。

該種方法的問題存在一個小問題是當遇到大流量的頻繁請求的話,腳本處理器的daemon進程可能會超負荷從而變得很慢,甚至發生內存洩漏;

但是比較起Apache的內建模組的方式的優點是由於Server和腳本解析器完全分開各負其責,因此伺服器不再臃腫,可以專心地進行靜態文件響應或者將動態腳本解析器的結果返回給用戶客戶端。

所以比較起Apache的內建模組方式,有時候效能要提升很多。

有人測試可能會達到 Apache mod_php的5~10倍。

3.1. FastCGI常用模式:

lightppd spawn-fcgi

nginx PHP-FPM

 

#a、上面兩個都採用FastCGI對PHP支持,因此HTTPServer完全解放出來,可以更好地進行回應和並發處理。

b、spawn-fcgi由於是lighttpd的一部分,因此安裝了lighttpd一般就會使用spawn-fcgi對php支持,但是目前有用戶說ligttpd的spwan-fcgi在高並發訪問的時候,會出現上面說的記憶體洩漏甚至自動重啟fastcgi。

  nginx不像lighttpd本身含帶了fastcgi(spawn-fcgi),因此它完全是輕量級的,必須藉助第三方的FastCGI處理器才可以對PHP進行解析,因此其實這樣看來nginx是非常靈活的,它可以和任何第三方提供解析的處理器實現連接從而實現對PHP的解析。

  nginx可以使用spwan-fcgi(需要一同安裝lighttpd,但是需要為nginx避開端口,一些較早的blog有這方面安裝的教程),但是由於spawn-fcgi具有上面所述的用戶逐漸發現的缺陷,現在慢慢減少使用nginx spawn-fcgi組合了。

c、由於spawn-fcgi的缺陷,現在出現了新的第三方(目前還是,聽說正在努力不久將來加入到PHP core中)的PHP的FastCGI處理器,叫做PHP-FPM。它和spawn-fcgi比較起來有以下優點:

  由於PHP-FPM是作為PHP的補丁來開發的,安裝的時候需要和php源碼一起編譯,也就是說編譯到php core了,因此在性能方面要優秀一些;

  同時它在處理高並發方面也優於spawn-fcgi,至少不會自動重啟fastcgi處理器。

  因此,如上所說由於nginx的輕量和靈活性,因此目前性能優越,越來越多人逐漸使用這個組合:nginx PHP/PHP-FPM 。

以上是關於php的三種運行方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn