什么是SAPI以及何时使用它?

jjm*_*rph 56 php sapi

我最近一直在学习PHP中的错误处理,并且遇到了这个error_log()函数.

在PHP手册中,它讨论了所有错误日志类型,我理解所有这些类型除了类型3之外,它指出错误消息直接发送到SAPI日志记录处理程序.我的问题是SAPI究竟是什么以及您何时想要使用它?

Ign*_*ams 48

SAPI代表"服务器API".它是控制"外部世界"和PHP/Zend引擎之间交互的机制.所以,你总是想要使用它.事实上,你不能不费力地使用它,因为即使CLI被认为是SAPI.

  • +0,需要详细说明. (36认同)
  • 那么如何在软件包维护者整齐地组装的运行配置中找出SAPI记录器的内容?(为了让它记录你迫切希望看到的消息:).) (3认同)

chr*_*yen 32

SAPI(服务器应用程序编程接口)也称为Microsoft的ISAPI(Internet服务器应用程序编程接口),Netscape的NSAPI(Netscape服务器应用程序编程接口).

API含义.

对于Web开发人员,您可以考虑使用REST,SOAP等API.您调用从服务器获取数据的链接.它允许您与Web服务器进行交互.

SAPI与REST或SOAP不同,SAPI是用于服务器的API(契约).

例如:通用网关接口是SAPI.如果Web服务器支持CGI和另一个可执行程序实现它,那么Web服务器可以交互并动态生成Web页面.

看下图:

SAPI apache和php

mod_php实现了一个apache和php可以互相理解的接口.

那么究竟什么是SAPI:它是Server(任何类型的服务器)和程序之间的契约.只需按照合同,他们不需要知道其他方面的细节.

  • 你能告诉我这张照片的拍摄地点吗?我正在寻找关于这个主题的一些材料,正是这种图解说明. (3认同)
  • 我记不太清楚了。经过一番寻找旧的东西。我找到了一个:http://www.slideshare.net/do_aki/php-and-sapi-and-zendengine2-and。希望有所帮助。 (2认同)

num*_*web 15

来自维基百科:

换句话说,SAPI实际上是Web服务器提供的应用程序编程接口(API),以帮助其他开发人员扩展Web服务器功能.

例如,PHP为不同的Web服务器提供了一个名为SAPI的直接模块接口; 在Windows 5上的PHP 5和Apache 2.0的情况下,它以一个名为php5apache2.dll的DLL文件的形式提供,该文件是一个模块,除了其他功能之外,还提供PHP和Web服务器之间的接口,以一种形式实现服务器理解.这种形式就是所谓的SAPI.

各种Web服务器扩展有不同种类的SAPI.例如,PHP语言的另外两个SAPI是通用网关接口(CGI)和命令行接口(CLI).


pro*_*sti 9

对于 PHP,可用的 SAPI 有:Apache2 (mod_php)、FPM、CGI、FastCGI 和 CLI。

有争议的是,如果 API 在服务器上运行,它可能被称为 SAPI。

让我提醒一下,FPM(FastCGI 进程管理器)非常接近 PHP FastCGI 实现,具有一些附加功能(大部分)对高负载站点有用。

今天,从速度和效率的角度来看,FPM 将是最先进的 SAPI。与其他提到的 SAPI 相比,Apache 或 Nginx 的性能会更好。

  • 这意味着 FPM 下的 Apache 或 Nginx 会表现更好等。 (2认同)