搜尋
首頁後端開發PHP問題php與apache整合的幾種類型

php與apache整合的幾種類型

Oct 10, 2019 am 11:51 AM
apachephp整合類型

php與apache整合的幾種類型

一、CGI

CGI(common gateway interface)通常翻譯為共同網關接口,是HTTP伺服器與機器上的其他程式進行通訊的一個接口,讓Web伺服器必要時啟動額外的程式處理動態內容。 CGI是一種協議,它定義了Webserver與CGI程式的通訊方式。 Webserver接受客戶端的HTTP請求,然後建立進程執行CGI程序,客戶端的請求傳遞給CGI程序,CGI執行後結果再回傳Webserver。 

CGI的出現讓WEB從靜態變成動態,隨著Web的越來越普及,許多的網站的都需要有動態的頁面,以便與瀏覽者互交。隨著網路技術的發展,CGI方式的缺點也越來越突出。每次客戶端請求都需要建立和銷毀進程。因為HTTP要產生一個動態頁面,系統就必須啟動一個新的進程以運行CGI程序,不斷地fork是一項很消耗時間和資源的工作。

二、FastCGI

眾所周知,CGI解釋器的反覆載入是CGI效能低的主要原因,如果CGI解釋器保持在記憶體中並接受FastCGI進程管理器調度,則可以提供良好的性能、伸縮性、Fail-Over特性等等。

FastCGI是常駐型的CGI,可以一直執行,只要啟動後,不會每次都花時間去fork一次,而且還支援分散式運算(使得php程式解釋執行可以單獨交給php伺服器),即可以在網站伺服器以外的主機上執行並且接受來自其它網站伺服器來的請求。

1、Web Server 啟動時載入FastCGI進程管理器(IIS ISAPI或Apache Module); 

2、FastCGI進程管理器本身初始化,啟動多個CGI解釋器進程(在工作管理員中可見多個php-cgi.exe)並等待來自Web Server的連線。 

3、當客戶端要求到達Web Server時,FastCGI進程管理器選擇並連線到一個CGI解釋器。 Web server將CGI環境變數和標準輸入傳送到FastCGI子進程php-cgi.exe。 

4、FastCGI子進程完成處理後將標準輸出和錯誤訊息從相同連線返回Web Server。當FastCGI子程序關閉連線時,請求便告處理完成。 FastCGI子進程接著等待並處理來自FastCGI進程管理器(運行在 WebServer中)的下一個連線。在正常的CGI模式中,php-cgi.exe在此便退出了。 

三、Module

把php編譯成apache的模組,就要考慮apache的MPM的工作模式。

首先我們要了解什麼是MPM:

MPM:Multi Path Modules (多道處理模組)用於定義apache在回應多個使用者請求時所工作的模型。有三種MPM模式:

prefork(一個請求一個行程回應);

worker(一個請求用一個執行緒回應,啟動多個行程每個行程產生多個執行緒);

event(一個進程處理多個請求);

以模組安裝的php沒有獨立的進程,是作為apache的模組和apache一起啟動的。

以上三種MPM模式,worker模式會比prefork模式佔據更少的內存,高並發下的表現更好。而且使用多進程和多線程混合模式,即使有一個線程掛了,也只影響和該線程同進程的其他線程,不會影響到其他的進程。但是如果有特別多的線程都使用keep-alive的長連接方式,則線程會一直被佔據直到超時才釋放,導致在高並發場景下無可用線程。而event模式則使用了一個專門的線程來處理這些keep-alive類別線程,較好的解決了這個問題。

推薦教學:PHP影片教學

#

以上是php與apache整合的幾種類型的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具