這篇文章將為大家詳細講解有關php中有哪些運行方法,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
php三種運行方法是:1、通過HTTPServer內置的模塊來實現;2、通過CGI來實現;3、通過FastCGI來實現。

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中有哪些運行方法就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。