php执行流程
2016-01-18
一图胜千言,此图详细描述了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进程还在么?