溫馨提示×

溫馨提示×

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

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

PHP介紹和Apache的Module、CGI與FastCGI

發(fā)布時間:2020-05-11 04:59:23 來源:網(wǎng)絡(luò) 閱讀:1378 作者:188801943 欄目:web開發(fā)

  靜態(tài)網(wǎng)站是指全部由HTML標(biāo)準(zhǔn)通用標(biāo)記語言的子集)代碼格式頁面組成的網(wǎng)站,所有的內(nèi)容包含在網(wǎng)頁文件中。網(wǎng)頁上也可以出現(xiàn)各種視覺動態(tài)效果,如GIF動畫、FLASH動畫、滾動字幕等,而網(wǎng)站主要是靜態(tài)化的頁面和代碼組成,一般文件名均以htm、html、shtml等為后綴。

  動態(tài)網(wǎng)站是指通過網(wǎng)頁程序語言編寫,當(dāng)客戶請求時執(zhí)行網(wǎng)頁程序腳本,將程序執(zhí)行的結(jié)果返回給客戶端。PHP、JSP、ASP等等都是比較常見的動態(tài)網(wǎng)頁程序。

  PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本預(yù)處理器”)是一種通用開源腳本語言。語法吸收了C語言JavaPerl的特點(diǎn),利于學(xué)習(xí),使用廣泛,主要適用于Web開發(fā)領(lǐng)域。PHP 獨(dú)特的語法混合了C、Java、Perl以及PHP自創(chuàng)的語法。它可以比CGI或者Perl更快速地執(zhí)行動態(tài)網(wǎng)頁。用PHP做出的動態(tài)頁面與其他的編程語言相比,PHP是將程序嵌入到HTML標(biāo)準(zhǔn)通用標(biāo)記語言下的一個應(yīng)用)文檔中去執(zhí)行,執(zhí)行效率比完全生成HTML標(biāo)記的CGI要高許多;PHP還可以執(zhí)行編譯后代碼,編譯可以達(dá)到加密優(yōu)化代碼運(yùn)行,使代碼運(yùn)行更快。  --百度百科


  PHP的Zend引擎將整個PHP執(zhí)行分為兩個階段:

  1.分析PHP代碼將其轉(zhuǎn)換為Zend Opcode格式,并存儲在內(nèi)存中
  2.之后執(zhí)行這些轉(zhuǎn)換后的opcode(opcode是一種將PHP腳本編譯后的中間語言,可以加快php的執(zhí)行速度)

  Zend引擎執(zhí)行PHP代碼的具體流程如下:

  1.掃描--將PHP代碼轉(zhuǎn)換為語言片段(Tokens)

  2.分析--將Tokens轉(zhuǎn)換成簡單而有意義的表達(dá)式

  3.編譯--將表達(dá)式編譯成opcode

  4.執(zhí)行--順次執(zhí)行opcode,每次一條


PHP結(jié)合Apache的方式有三種:

  1. 作為模塊:PHP作為Apache的模塊,當(dāng)有php頁面的請求時,Apache加載php模塊,加載資源并執(zhí)行php程序,將執(zhí)行結(jié)果返還給客戶端。

  2. CGI方式(注:CGI是一個協(xié)議,可以實(shí)現(xiàn)web服務(wù)程序和解釋器通信):PHP作為一個獨(dú)立的功能程序,當(dāng)有php頁面的請求時,Apache通過CGI方式啟動一個PHP進(jìn)程,PHP進(jìn)程獲取資源并執(zhí)行后,將執(zhí)行結(jié)果返回給Apache,Apache返回給客戶端,之后Apache銷毀該進(jìn)程。

  3. FastCGI(注:FastCGI是CGI協(xié)議的一個擴(kuò)展,可以實(shí)現(xiàn)將PHP作為一個獨(dú)立進(jìn)程,由PHP自身實(shí)現(xiàn)進(jìn)程的創(chuàng)建和銷毀):PHP作為一個獨(dú)立程序,根據(jù)配置文件事前啟動N個作業(yè)進(jìn)程用來等待處理用戶請求(類似于Apache的Prefork模型,規(guī)定默認(rèn)啟動進(jìn)程數(shù)、最大啟動進(jìn)程數(shù)、最小啟動進(jìn)程數(shù)等等),當(dāng)有php頁面的請求時,Apache通過代理方式使用FastCGI協(xié)議將請求發(fā)送給PHP進(jìn)程,并指定php網(wǎng)頁文件所在位置(URL),PHP進(jìn)程接收后為其分配一個作業(yè)進(jìn)程并執(zhí)行腳本。FastCGI好處在于可以使PHP服務(wù)作為一個獨(dú)立服務(wù)器,通過Socket與httpd通信,可以使服務(wù)分離,可擴(kuò)展性更強(qiáng),并且無需像CGI一樣需要Apache來控制PHP的啟動,提高了Apache的工作效率。


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI