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进程加载新的配置,而之前已经存在的进程会在工作完成之后销毁,因此实现平滑重启
欢迎留言评论~