请求处理过程
客户端发起请求到web服务器
web服务器通过php-fpm把请求交给fastcgi进程
fastcgi进程调用服务器上的php程序完成处理,通过php引擎解释执行
fastcgi进程将处理结果返回客户端
备注:
fastcgi:是通用网关接口,用于初始化软件服务的接口。
php-fpm:是fastcgi的进程管理器(已加入内核无须扩展安装)。
PHP技术体系
Zend引擎
Zend是用c实现的,它将php代码翻译成可执行的opcode,它负责完成基本数据结构的实现、内存的分配和管理、提供api方法供外部调用。它是一切外功能实现的核心和基础。
PHP扩展
内置函数和标准库都是通过extension实现的,通过组件的方式对外提供各种基础服务。用户也可以根据需要实现自己的extension,以达到功能扩展、性能优化等目的。
Sapi
服务端的应用编程接口,通过一系列钩子函数使php可以和外交互数据,非常优雅和成功的设计,sapi成功将php与上层应用进行了解耦和隔离,php不用再考虑如何针对不同应用进行兼容。
上层应用
这就是我们平时编写的php程序,通过sapi实现了不同的应用模式,包括webserver实现web应用、在命令行下以脚本方式运行等。