搜尋
首頁php框架Workermanworkerman之小談PHP中的幾種運作模式

以下由workerman使用教學欄位來介紹PHP中的幾個運行模式,希望對需要的朋友有幫助!

workerman之小談PHP中的幾種運作模式

我們知道 workerman 程式需要在php-cli模式下執行,也就是命令列模式,這塊我們有必要了解一下。話說PHP當下共有4種運作模式,分別是CGI、FastCGI、CLI和Web模組模式。

CGI

全名為「通用網關介面」(Common Gateway Interface), 它可以讓一個客戶端,從網頁瀏覽器向執行在Web伺服器上的程式請求數據,描述的是客戶端和這個程式之間傳輸資料的一種標準,另外CGI獨立於任何語言,所以可以用任何一種語言編寫,只要這種語言具有標準輸入、輸出和環境變數。如php,perl,tcl等。

CGI針對每個使用者請求都要開單獨的子進程去維護,所以數量多的時候會出現效能問題,最近幾年很少用。

FastCGI

CGI的升級版本,FastCGI 像是常駐(long-live) 型的CGI,它可以一直執行著,只要啟動後,不會每次都要花時間去解析php.ini、重新載入全部dll擴充並重初始化全部資料結構。

PHP使用PHP-FPM(FastCGI Process Manager),全名為PHP FastCGI進程管理器進行管理。

FastCGI工作原理

##Web Server啟動時載入FastCGI進程管理器;

FastCGI進程管理器本身初始化,啟動多個CGI解釋器進程並等待來自Web Server的連線;

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

FastCGI子進程完成處理後將標準輸出和錯誤訊息從相同連線傳回Web Server。當FastCGI子程序關閉連線時,請求便告處理完成。 FastCGI子進程接著等待並處理來自FastCGI進程管理器的下一個連線。

在正常的CGI模式中,這就結束了,下次還要重新來過。但是在FastCGI,所有這些都只在進程啟動時發生一次。一個額外的好處是,持續資料庫連線(Persistent database connection)可以運作。

Cli

PHP-CLI是PHP Command Line Interface的簡稱,就是PHP在命令列運行的接口,區別於在Web伺服器上運行的PHP環境( PHP-CGI等)。

我們在Linux下經常使用”php –m”查找PHP安裝了那些擴充功能就是PHP命令列運行模式。你可以打入 php -h 來看看具體都有什麼指令。

在php-cli模式下我們可以直接啟動一個php檔案並執行,就像workerman中一樣

php index.php start

要說明的是,php-cli模式並沒有php執行逾時的說法。

Module載入

一般是針對apache而言的,這種方式,他們的共同本質都是用LoadModule 來載入phpX_module,就是把php當作apache的一個子模組來運作。當透過web存取php檔案時,apache就會呼叫phpX_module來解析php程式碼,那麼phpX_module是怎麼來將資料傳給php解析器來解析php程式碼的呢?答案是透過sapi。

所以,以上的apache呼叫php執行的過程如下:

apache -> httpd -> php5_module -> sapi -> php

apache每接收一個請求,都會產生一個進程來連接php透過sapi來完成請求,可想而知,如果一旦用戶過多,並發數過多,伺服器就會承受不住了。

而且,把mod_php編進apache時,出問題時很難定位是php的問題還是apache的問題。

小結

如果要建置一個高效能的PHP WEB伺服器,目前最佳的方式是Apache/Nginx FastCGI PHP-FPM( PHP-CGI)方式了,不要再使用Module載入或CGI 方式啦

以上是workerman之小談PHP中的幾種運作模式的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:segmentfault。如有侵權,請聯絡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

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

熱工具

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

mPDF

mPDF

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

SublimeText3 英文版

SublimeText3 英文版

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

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用