php執行原理 fastcgi與php fpm

2021-09-30 20:03:51 字數 1515 閱讀 7149

(一)我們知道像apache這些web伺服器是不能直接解析php程式,那麼我們在網頁在輸入的php程式是如何解析的啦?

是通過sapi: server abstraction api 它提供了乙個介面,使得php可以和其他應用進行互動資料。

php 提供多種sapi

1.給apache、nginx 這種web伺服器使用的 php_module .cgi

2.給shell 提供的cli

(cli 即php命令列模式)

(二)mod_php模式

把php模組安裝到apache中,每個請求都會產生乙個新的程序。

我們在apache的配置檔案httpd.conf中加上或者修改這樣幾句:

./configure –with-mysql=/usr/local –with-apache=/usr/local/apache –enable-track-vars

所以,這種方式,他們的共同本質都是用loadmodule來載入php5_module,就是把php作為apache的乙個子模組來執行。當通過web訪問php檔案時,apache就會呼叫php5_module來解析php**。

這就是mod_php模式

(三)mod_fastcgi 模式

cgi 是外部程式與web伺服器的介面標準,是在cgi程式和web伺服器之間傳遞資訊的規程。

cgi工作原理:web伺服器收到使用者請求,把請求提交給cgi程式,cgi程式根據請求提交引數做出處理,把結果返回給web伺服器

fastcgi:傳統的cgi每次web請求都有啟動和退出,而fastcgi是啟動多個cgi模組,一直執行,web請求過來了,可以直接處理,處理完也不會退出。

圖形表示一下 mod_php模式和mod_fastcgi 模式

mod_php模式

mod_fastcgi模式

(四)php-cgi php實現的自帶fastcgi的管理器

php-fpm php-cgi的管理程式,是對於php-cgi的改進

請求靜態頁面

php_fpm模式

php_cgi模式

取至:

FastCGI執行原理及php fpm引數配置

1 什麼是cgi cgi全稱是 公共閘道器介面 common gateway inte ce http伺服器與你的或其他機器上的程式進行 交談 的一種工具,cgi程式須執行在網路伺服器上。傳統cgi介面方式的主要缺點是效能很差,因為每次http伺服器遇到動態程式時都需要重新啟動指令碼解析器來執行解析...

CGI 和 FastCGI 協議的執行原理

在用php開發的過程中,我們常常使用nginx或者apache作為我們的web伺服器。但是php是如何與這些web伺服器通訊的呢?要談fastcgi就必須先說說cgi。那什麼是cgi?cgi協議同 http 協議一樣是乙個 應用層 協議,它的 功能 是為了解決 web 伺服器與 php 應用 或其他...

CGI 和 FastCGI 協議的執行原理

目錄深入fastcgi協議 web 伺服器和 fastcgi 互動過程 為什麼需要在訊息頭髮送 requestid 這個標識?php fpm 在用php開發的過程中,我們常常使用nginx或者apache作為我們的web伺服器。但是php是如何與這些web伺服器通訊的呢?要談fastcgi就必須先說...