成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

PHP 運行模式與運行原理

Pocher / 2585人閱讀

摘要:當客戶端請求到達時,進程管理器選擇并連接到一個解釋器。子進程完成處理后將標準輸出和錯誤信息從同一連接返回。子進程接著等待并處理來自進程管理器運行在中的下一個連接。

目前常見的4種PHP運行模式

CGI通用網關接口模式

FAST-CGI模式

CLI命令行模式

模塊模式

運行模式 CGI通用網關接口模式

每有一個用戶請求,都會先要創(chuàng)建cgi的子進程,然后處理請求,處理完后結束這個子進程

cgi是一種為了保證web server傳遞過來的數據是標準格式的通用網關接口協(xié)議

比較老,比較原始,大多已經不用了

FAST-CGI模式

是cgi的升級版本,FastCGI 像是一個常駐 (long-live) 型的 CGI,它可以一直執(zhí)行著,只要激活后,不會每次都要花費時間去fork 一次,也是一種協(xié)議

FastCGI的工作原理是:

  (1)、Web Server啟動時載入FastCGI進程管理器【PHP的FastCGI進程管理器是PHP-FPM(php-FastCGI Process Manager)】(IIS ISAPI或Apache Module);

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

  (3)、當客戶端請求到達Web Server時,FastCGI進程管理器選擇并連接到一個CGI解釋器。Web server將CGI環(huán)境變量和標準輸入發(fā)送到FastCGI子進程php-cgi。

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

  在CGI模式中,可以想象 CGI通常有多慢。每一個Web請求PHP都必須重新解析php.ini、重新載入全部dll擴展并重初始化全部數據結構。使用FastCGI,所有這些都只在進程啟動時發(fā)生一次。一個額外的好處是,持續(xù)數據庫連接(Persistent database connection)可以工作。

CLI命令行模式

一般使用調用腳本、查看php信息時會使用到該模式

php -r"phpinfo();" |less 分頁顯示

模塊模式

Apache + mod_php

lighttp + spawn-fcgi

nginx + PHP-FPM

運行原理

PHP-CGI:fast-cgi是一種協(xié)議,而php-cgi是實現了這種協(xié)議的進程。不過這種實現比較爛。它是單進程的,一個進程處理一個請求,處理結束后進程就銷毀

PHP - FPM:是對php-cgi的改進版,它直接管理多個php-cgi進程/線程。也就是說,php-fpm是php-cgi的進程管理器因此它也算是fastcgi協(xié)議的實現
php的運行原理,就是在服務器啟動時,自動載入PHP-FPM進程管理器,從而管理多個PHP-CGI進程來準備響應用戶的請求,如下圖所示:

由于php-cgi是隨服務器啟動載入的,所以初始化變量只會發(fā)生一次

運行模式和運行原理的區(qū)別

多個運行模式相當于超市的不同入口,運行原理就是進入超市后的固定的行走路線,通過不同的運行模式進入到底層(進入超市)

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://systransis.cn/yun/30782.html

相關文章

  • PHP的工作原理和生命周期

    摘要:的工作原理和生命周期是一門適用于開發(fā)的動態(tài)語言,它可以說是一個用語言實現的包含大量組件的軟件框架。無論是哪種公眾模式,的工作原理都是一樣的,都是作為一種運行。 PHP的工作原理和生命周期 php是一門適用于web開發(fā)的動態(tài)語言,它可以說是一個用C語言實現的包含大量組件的軟件框架。那么,php是如何工作的呢?它的生命周期是怎么樣的呢? 表層分析 php是以請求/響應為周期運行服務端應用...

    happyhuangjinjin 評論0 收藏0
  • mod_php模式原理探析

    摘要:模塊加載原理的模塊可以以靜態(tài)方式編譯到可執(zhí)行程序中,也可以在運行過程中動態(tài)加載以動態(tài)鏈接庫的方式。這樣在進程運行時一有請求,就可以加載動態(tài)鏈接庫文件形式的模塊,用來處理請求。 1、PHP與Apache工作模式 在傳統(tǒng)的LAMP架構中,PHP與Apache交互時,至少有兩種方式『運行PHP』: 使用CGI:Apache發(fā)送請求至php-cgi進程,php-cgi進程調用PHP解釋器,然...

    cnsworder 評論0 收藏0
  • mod_php模式原理探析

    摘要:模塊加載原理的模塊可以以靜態(tài)方式編譯到可執(zhí)行程序中,也可以在運行過程中動態(tài)加載以動態(tài)鏈接庫的方式。這樣在進程運行時一有請求,就可以加載動態(tài)鏈接庫文件形式的模塊,用來處理請求。 1、PHP與Apache工作模式 在傳統(tǒng)的LAMP架構中,PHP與Apache交互時,至少有兩種方式『運行PHP』: 使用CGI:Apache發(fā)送請求至php-cgi進程,php-cgi進程調用PHP解釋器,然...

    MSchumi 評論0 收藏0
  • 人人都要知道的PHP底層運行機制工作原理?

    摘要:弱類型語言一個變量的類型并不是一開始就確定不變的,運行中才會確定并可能發(fā)生隱式或顯示的類型轉換。引擎組件的模式降低內部耦合。 一、PHP設計理念及特點 多進程模型:由于PHP是多進程模型,不同請求間互不干涉,這樣保證了一個請求掛掉不會對全盤服務造成影響,PHP也早支持多線程模型。弱類型語言:一個變量的類型并不是一開始就確定不變的,運行中才會確定并可能發(fā)生隱式或顯示的類型轉換。引擎(Ze...

    ZHAO_ 評論0 收藏0
  • PHP 運行模式

    摘要:接下來會對其中五個比較常見的運行模式進行說明。模式是目前主流的服務運行模式,擁有高效可靠的性能,推薦大家使用。由于微軟的排他性,只能運行于環(huán)境。 SAPI 這里所說的 PHP 運行模式, 其實指的是 SAPI (Server Application Programming Interface,服務端應用編程端口 )。SAPI 為 PHP 提供了一個和外部通信的接口, PHP 就是通過這...

    OnlyMyRailgun 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<