先说说php的五大模式:

1.CGI

2.FASTCGI

3.CLI,command line interface,命令行模式

4.mod_php5,apache嵌入php模块

5.isapi

php底层使用c语言,

在PHP生命周期的各个阶段,一些与服务相关的操作都是通过SAPI接口实现。这些内置实现的物理位置在PHP源码的SAPI目录。这个目录存放了PHP对各个服务器抽象层的代码,例如命令行程序的实现,Apache的mod_php模块实现以及fastcgi的实现等等

在各个服务器抽象层之间遵守着相同的约定,这里我们称之为SAPI接口。每个SAPI实现都是一个_sapi_module_struct结构体变量。(SAPI接口)。在PHP的源码中,当需要调用服务器相关信息时,全部通过SAPI接口中对应的方法调用实现,而这些方法在各个服务器抽象层实现时都会有各自的实现。由于很多操作的通用性,有很大一部分接口方法使用的是默认方法。下图为SPAI的简单示意图

php cgi sapi

SAPI是php与其他应用交互的接口,在其生命周期的各个阶段,一些与服务相关的操作都是通过SAPI接口实现 ,内置虚拟接口。

CGI规定了php与web server交流的规则,相当于执行了response = exec("php -f index.php -url=xxx -cookie=xxx -xxx=xxx"),CGI的实现符合SAPI规则。

nginx->socket fastcgi->cgi实现(SAPI启动入口函数)

相关文章:

  • 2021-06-25
  • 2021-06-08
  • 2021-09-18
  • 2021-04-07
  • 2021-06-17
  • 2021-10-19
猜你喜欢
  • 2021-08-01
  • 2022-12-23
  • 2021-05-19
  • 2022-12-23
  • 2021-04-01
相关资源
相似解决方案