中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

workerman程序在PHP中的運行模式有哪些

發布時間:2022-02-25 09:53:39 來源:億速云 閱讀:158 作者:小新 欄目:web開發

這篇文章給大家分享的是有關workerman程序在PHP中的運行模式有哪些的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

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

  CGI

  全稱是“通用網關接口”(CommonGatewayInterface),它可以讓一個客戶端,從網頁瀏覽器向執行在Web服務器上的程序請求數據,描述的是客戶端和這個程序之間傳輸數據的一種標準,另外CGI獨立于任何語言,所以可以用任何一種語言編寫,只要這種語言具有標準輸入、輸出和環境變量。如php,perl,tcl等。

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

  FastCGI

  CGI的升級版本,FastCGI像是一個常駐(long-live)型的CGI,它可以一直執行著,只要激活后,不會每次都要花費時間去解析php.ini、重新載入全部dll擴展并重初始化全部數據結構。

  PHP使用PHP-FPM(FastCGIProcessManager),全稱PHPFastCGI進程管理器進行管理。

  FastCGI工作原理

  WebServer啟動時載入FastCGI進程管理器;

  FastCGI進程管理器自身初始化,啟動多個CGI解釋器進程并等待來自WebServer的連接;

  當客戶端請求到達WebServer時,FastCGI進程管理器選擇并連接到一個CGI解釋器。Webserver將CGI環境變量和標準輸入發送到FastCGI子進程php-cgi。

  FastCGI子進程完成處理后將標準輸出和錯誤信息從同一連接返回WebServer。當FastCGI子進程關閉連接時,請求便告處理完成。FastCGI子進程接著等待并處理來自FastCGI進程管理器的下一個連接。

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

  Cli

  PHP-CLI是PHPCommandLineInterface的簡稱,就是PHP在命令行運行的接口,區別于在Web服務器上運行的PHP環境(PHP-CGI等)。

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

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

  phpindex.phpstart

  要說明的是,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的問題。

  小結

  如果要搭建一個高性能的PHPWEB服務器,目前最佳的方式是Apache/Nginx+FastCGI+PHP-FPM(+PHP-CGI)方式了,不要再使用Module加載或者CGI方式啦

感謝各位的閱讀!關于“workerman程序在PHP中的運行模式有哪些”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

东光县| 扎囊县| 商水县| 海安县| 阜阳市| 调兵山市| 乐都县| 会理县| 宁波市| 新晃| 阿尔山市| 凯里市| 广灵县| 盐城市| 三台县| 化隆| 三门峡市| 庆城县| 游戏| 苏尼特左旗| 长岛县| 尼玛县| 绵竹市| 黄陵县| 合江县| 夏邑县| 莱西市| 深州市| 桑日县| 新邵县| 平湖市| 花莲市| 华容县| 黄骅市| 宾阳县| 闸北区| 普格县| 应用必备| 鸡泽县| 桓台县| 韶关市|