自己動手和php fpm通訊

2021-10-06 23:44:56 字數 1301 閱讀 9448

跟很多協議類似,cgi協議也由header和body組成,其中header為固定格式。

字段長度

說明version

1 bytes

取值一般為1

type

1 bytes

requestid

2 bytes

big endians

contentlen

2 bytes

big endians

paddinglen

1 bytes

reserved

1 bytes

預留字段

其中type的可能取值如下:值名稱

說明1fcgi_begin_request

開始請求

2fcgi_abort_request

異常終止請求

3fcgi_end_request

正常終止請求

4fcgi_params

傳遞引數

5fcgi_stdin

post內容傳遞

6fcgi_stdout

正常響應內容

7fcgi_stderr

錯誤輸出

8fcgi_data

9fcgi_get_values

10fcgi_get_values_result

11fcgi_unknown_type

通知webserver所請求type非正常型別

字段長度

說明role

2 bytes

big endians

flags

1 byte

>0表示長連線,否則短連線

reserved

5 bytes

預留字段

包pack偽碼如下:

這個協議用來通知php-fpm一些常量,例如:

協議格式如下:

字段長度

說明name_len

1 bytes or 4 bytes

長度小於128用乙個位元組,大於128用4個位元組

value_len

同上同上

name

n bytes

script_filename/request_method etc

value

n bytes

/path/to/php etc

包pack偽碼如下:

這個協議沒有包體,只要將header中type置為fcgi_end_request即可

thank you

高階 PHP FPM和Nginx的通訊機制

php fpm 介紹 cgi 協議與 fastcgi 協議 每種動態語言 php,python 等 的 檔案需要通過對應的解析器才能被伺服器識別,而 cgi 協議就是用來使直譯器與伺服器可以互相通訊。php 檔案在伺服器上的解析需要用到 php 直譯器,再加上對應的 cgi 協議,從而使伺服器可以解...

高階 PHP FPM和Nginx的通訊機制

php fpm 介紹 cgi 協議與 fastcgi 協議 每種動態語言 php,python 等 的 檔案需要通過對應的解析器才能被伺服器識別,而 cgi 協議就是用來使直譯器與伺服器可以互相通訊。php 檔案在伺服器上的解析需要用到 php 直譯器,再加上對應的 cgi 協議,從而使伺服器可以解...

自己動手打造Apache和Mysql綠色免安裝版

自己動手打造apache和mysql綠色免安裝版 我自己用了很久了,雖然很簡單,但相信許多人還不知道,就寫出來和大家共享 重裝完系統後 1.執行cmd進入命令列 2.進入apache所在的目錄下的bin目錄,如 d apache bin 執行 只要這一步apache服務就安裝好了 3.進入mysql...