PHP 工作原理

cgi 协议

cgi协议用来确定webserver(例如nginx),也就是内容分发服务器传递过来什么数据,什么样格式的数据

php-cgi进程解释器

php-cgi是php的cgi协议进程解释器,每次启动时 :

需要经历加载php.ini文件->初始化执行环境->处理请求->返回内容给webserver->php-cgi进程退出的流程

graph TD A[php.ini文件] -->|加载配置| B[初始化执行环境] B --> |接受webserver的请求|C[处理请求] C-->|返回内容| D[webserver] C-->|退出进程| E[关闭php-cgi进程]

fastcgi协议

fastcgi协议是对cgi协议效率提升的补充,主要是针对每次请求过来时都需要启动一个cgi解释器进程的优化,不再需要cgi解释器进程每次收到webserver请求后都需要重新加载php.ini文件和初始化执行环境

php-fpm进程管理器

php-fpm是对fastcgi协议的实现,是进程管理器,启动时包括master和worker进程俩部分,master进程监听端口,接收来自webserver请求,worker进程一般具有多个,每个worker进程都有一个cgi进程解释器,用来执行php代码

php启动和工作原理

启动phpfpm时,会启动master进程,加载php.ini文件,初始化执行环境,并启动多个worker进程。每次请求来时会将请求传递给worker进程进行处理

php平滑重启原理

每次修改完php.ini配置并重启后,会启动新的worker进程加载新的配置,而之前已经存在的进程会在工作完成之后销毁,因此实现平滑重启

posted @ 2020-04-06 14:18  五个平均值  阅读(200)  评论(0编辑  收藏  举报