日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php fpm工作原理,什么是phpfpm的工作原理?

發布時間:2023/12/4 php 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php fpm工作原理,什么是phpfpm的工作原理? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

什么是phpfpm的工作原理?

發布時間:2020-07-13 15:12:53

來源:億速云

閱讀:181

作者:Leah

什么是phpfpm的工作原理?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

php-fpm是一種master(主)/worker(子)多進程架構,與nginx設計風格有點類似。master進程主要負責CGI及PHP環境初始化、事件監聽、子進程狀態等等,worker進程負責處理php請求。

運行原理

php-fpm采用master/worker架構設計,前面簡單地描述master和worker進程模塊的功能。下面將詳細講解這兩個模塊的運行原理。

master進程

master進程工作流程分為4個階段,如下圖:

1、cgi初始化階段:分別調用fcgi_init()和 sapi_startup()函數,注冊進程信號以及初始化sapi_globals全局變量。

2、 php環境初始化階段:由cgi_sapi_module.startup 觸發。實際調用php_cgi_startup函數,而php_cgi_startup內部又調用php_module_startup執行。

php_module_startup主要功能:

a)、加載和解析php配置;

b)、加載php模塊并記入函數符號表(function_table);

c)、加載zend擴展 ;

d)、設置禁用函數和類庫配置;

e)、注冊回收內存方法;

3、php-fpm初始化階段:執行fpm_init()函數。負責解析php-fpm.conf文件配置,獲取進程相關參數(允許進程打開的最大文件數等),初始化進程池及事件模型等操作。

4、php-fpm運行階段:執行fpm_run() 函數,運行后主進程發生阻塞。該階段分為兩部分:fork子進程和循環事件。

fork子進程部分交由fpm_children_create_initial函數處理( 注:ondemand模式在fpm_pctl_on_socket_accept函數創建)。

循環事件部分通過fpm_event_loop函數處理,其內部是一個死循環,負責事件的收集工作。

worker進程

worker進程分為 接收客戶端請求、處理請求、請求結束三個階段。

1、接收客戶端請求:執行fcgi_accept_request函數,其內部通過調用accept函數獲取客戶端請求。//請求鎖

FCGI_LOCK(req->listen_socket);

req->fd = accept(listen_socket, (struct sockaddr *)&sa, &len);

//釋放鎖

FCGI_UNLOCK(req->listen_socket);

從上面的代碼,可以注意到accept之前有一個請求鎖的操作,這么設計是為了避免請求出現“驚群”的現象。當然,這是一個可選的選項,可以取消該功能。

2、處理請求階段:首先,分別調用fpm_request_info、php_request_startup獲取請求內容及注冊全局變量($_GET、$_POST、$_SERVER、$_ENV、$_FILES);然后根據請求信息調用php_fopen_primary_script訪問腳本文件;最后交給php_execute_script執行。php_execute_script內部調用zend_execute_scripts方法將腳本交給zend引擎處理。

3、請求結束階段:執行php_request_shutdown函數。此時 回調register_shutdown_function注冊的函數及__destruct()方法,發送響應內容、釋放內存等操作。

總結

php-fpm采用master/worker架構設計, master進程負責CGI、PHP公共環境的初始化及事件監聽操作。worker進程負責請求的處理功能。在worker進程處理請求時,無需再次初始化PHP運行環境,這也是php-fpm性能優異的原因之一。

關于什么是phpfpm的工作原理?問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

總結

以上是生活随笔為你收集整理的php fpm工作原理,什么是phpfpm的工作原理?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品久久91 | 亚洲视频一 | 国内精品人妻无码久久久影院蜜桃 | 久久久最新| 麻豆com| 99视频一区二区 | 亚洲人成无码网站久久99热国产 | 99re视频在线 | 成人免费影院 | 欧美做爰全过程免费观看 | 一曲二曲三曲在线观看中文字幕动漫 | 亚洲激情视频 | 男生坤坤放进女生坤坤里 | 俄罗斯丰满熟妇hd | 日韩一级久久 | 日韩免费不卡视频 | 一二三不卡视频 | 欧美一级特黄视频 | 免费久久视频 | 天天插天天干天天操 | 国产美女视频一区二区 | 啊v视频在线 | 激情视频在线观看免费 | 成人在线网站 | 亚洲视频 欧美视频 | 亚洲AV无码乱码国产精品牛牛 | 91豆花视频| 中国女人一级一次看片 | 日韩精品免费 | 天堂网视频在线观看 | 在线观看精品 | 精品成人一区二区三区 | 毛片av免费 | 大陆日韩欧美 | 久久99久久99精品蜜柚传媒 | 91麻豆精品国产91久久久更新时间 | 亚洲大片精品 | 国产日日操 | 青娱乐超碰在线 | 91久久婷婷| 国产色视频在线 | 激情婷| 国产调教打屁股xxxx网站 | 97超碰中文 | 成人精品区 | 久久久久久一区二区三区 | 久久久免费看片 | 女生扒开尿口 | 欧美激情一区二区三区蜜桃视频 | 成人午夜性视频 | 国产无码精品一区二区 | 波多野吉衣伦理片 | av在线成人 | 亚洲精品日韩综合观看成人91 | 日韩免费视频一区二区视频在线观看 | 日本视频黄色 | 色一涩| 久操成人 | www日本在线 | 欧美a网站 | 精品动漫一区二区三区 | 熟睡人妻被讨厌的公侵犯 | 成人福利在线免费观看 | 精品免费 | 婷婷久久五月 | 国产精品中文字幕在线观看 | 国产真实交换夫妇视频 | www网站在线观看 | 少妇精品偷拍高潮白浆 | 欧美日韩一区二区三 | www.午夜激情| 黄色精品视频 | 特级西西444www大精品视频 | 国产处女 | 看片在线 | 亚洲午夜福利一区二区三区 | 中文字幕一级二级三级 | 欧美日韩高清一区二区三区 | 99在线观看 | 涩涩视频在线播放 | 亚洲精品无码一区二区 | 懂色av中文字幕 | 国产成人亚洲精品 | www.黄色一片 | 国产精品福利片 | 久久久久久久久久久久 | 亚洲精华国产精华精华液网站 | 日韩城人免费 | 国内偷拍一区二区 | 久久丫精品忘忧草西安产品 | 屁屁影院一区二区三区 | 一级黄色网 | 西川结衣在线观看 | 中文字幕人妻一区二区三区 | 亚洲国产经典 | 毛片在线不卡 | 女同中文字幕 | 成人激情自拍 | av日韩精品 |