zoco

php执行流程

2016-01-18


NnFaqg.png

一图胜千言,此图详细描述了PHP执行的5个步骤以及过程中做了哪些事情。

以fpm为例:

1、fpm启动时,会先执行 module_startup, 并随着fpm进程常驻

2、当一个请求到达之后,会执行 request_startup, 进行一些请求初始化工作,然后执行代码(execute_script), 最后,执行request_shutdown,把结果flush, 并做一些收尾工作

3、当我们关闭fpm或reload fpm的时候,会执行module_shutdown

最后抛几个问题给大家思考一下:

1、opcache在哪个阶段,解决了什么问题?

2、ini的文件加载在哪一步?每个请求到达是否都需要解析?

3、当出现fatal error,会有一个register_shutdown_function回调,这个是在哪一步?执行完这个之后,fpm进程还在么?