PHP运行的生命周期
PHP7的生命周期主要分为5大阶段
PHP7有多种模式运行
- 命令行模式
cli
模式 - FPM模式
- CGI模式
- enbed模式
- Apache2Handler模式
- litespeed模式
- phpdbg
等等
1 | 储备知识
PHP7生命周期中会涉及信号的处理,我们首先对UINX信号的处理
UNIX信号有163个,其中编号为131的信号为传统UNIX支持的信号,是不可靠信号(非实时信号)
32~63是后来补充的,是实时信号
2 | cli的生命周期
PHP的生命周期分为5个阶段
php_module_startup
模块初始化阶段php_request_startup
请求初始化阶段php_execute_script
脚本执行阶段php_request_shutdown
请求关闭阶段php_module_shutdown
模块关闭阶段
CLI模式和FPM模式
SAPI(Server Application Programimg Interface,服务端应用编程接口),相当于PHP外部环境的代理器
PHP运在终端上的SAPI就叫做CLI API
,应用在Web服务器中叫做CGI SAPI
SAPI有一个非常核心的数据结构–_sapi_module_struct
在main/SAPI.h
CLI
和FPM
都是基于SAPI
的实现,都定义了sapi_globals.