博客
关于我
php代码执行完整流程介绍
阅读量:793 次
发布时间:2023-03-01

本文共 672 字,大约阅读时间需要 2 分钟。

PHP在Apache/Nginx环境下的初始化与执行流程

模块初始化

PHP模块初始化过程主要由Apache和Nginx触发。服务器在启动时会调用`php_module_startup()`函数,进而激活各个模块的`MINIT`(Module Initialization)方法。此时,Zend引擎将被初始化,包括垃圾回收器的注册以及对`php.ini`配置文件中的扩展的解析。这一过程涵盖了静态编译扩展和动态加载扩展的注册。

请求初始化

当处理新的HTTP请求时,服务器会调用`php_request_startup()`函数。这一步骤旨在激活Zend引擎,并准备好SAPI(Server Application Programming Interface)。SAPI是PHP内核为外部系统提供的接口,允许外部系统通过调用PHP的服务,如执行编译脚本或执行脚本等。常见的SAPI实现包括Cli和Fpm两种模式。

脚本执行

PHP脚本的执行流程包括以下几个阶段:首先,PHP解析器会读取源代码并将其转换为语言片段(Token)。接着,这些Token会被转换为更高层次的表达式,然后进一步转换为Zend虚拟机可识别的OPCODE。PHP共定义了173个OPCODE,这些 opcode在`zend_vm_opcodes.h`文件中得到实现。所有PHP语法的执行都依赖于这些 opcode的处理机制。

转载地址:http://yctfk.baihongyu.com/

你可能感兴趣的文章
ORACEL学习--理解over()函数
查看>>
Oracle GoldenGate Director安装和配置(无图)
查看>>
oracle script
查看>>
Oracle 写存储过程的一个模板还有一些基本的知识点
查看>>
oracle 创建字段自增长——两种实现方式汇总
查看>>
Oracle 升级10.2.0.5.4 OPatch 报错Patch 12419392 Optional component(s) missing 解决方法
查看>>
Oracle 递归
查看>>
oracle--用户,权限,角色的管理
查看>>
Oracle10g EM乱码之快速解决
查看>>
Oracle11G基本操作
查看>>
Oracle11g服务详细介绍及哪些服务是必须开启的?
查看>>
Oracle11g静默安装dbca,netca报错处理--直接跟换操作系统
查看>>
oracle12安装软件后安装数据库,然后需要自己配置监听
查看>>
Oracle——08PL/SQL简介,基本程序结构和语句
查看>>
Oracle——distinct的用法
查看>>
oracle下的OVER(PARTITION BY)函数介绍
查看>>
Oracle中DATE数据相减问题
查看>>
Oracle中merge into的使用
查看>>
oracle中sql查询上月、本月、上周、本周、昨天、今天的数据!
查看>>
oracle中sql的case语句运用--根据不同条件去排序!
查看>>