我最近一直在学习PHP中的错误处理,并且遇到了这个error_log()
函数.
在PHP手册中,它讨论了所有错误日志类型,我理解所有这些类型除了类型3之外,它指出错误消息直接发送到SAPI日志记录处理程序.我的问题是SAPI究竟是什么以及您何时想要使用它?
Ign*_*ams 48
SAPI代表"服务器API".它是控制"外部世界"和PHP/Zend引擎之间交互的机制.所以,你总是想要使用它.事实上,你不能不费力地使用它,因为即使CLI被认为是SAPI.
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页面.
看下图:
mod_php实现了一个apache和php可以互相理解的接口.
那么究竟什么是SAPI:它是Server(任何类型的服务器)和程序之间的契约.只需按照合同,他们不需要知道其他方面的细节.
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).
对于 PHP,可用的 SAPI 有:Apache2 (mod_php)、FPM、CGI、FastCGI 和 CLI。
有争议的是,如果 API 在服务器上运行,它可能被称为 SAPI。
让我提醒一下,FPM(FastCGI 进程管理器)非常接近 PHP FastCGI 实现,具有一些附加功能(大部分)对高负载站点有用。
今天,从速度和效率的角度来看,FPM 将是最先进的 SAPI。与其他提到的 SAPI 相比,Apache 或 Nginx 的性能会更好。
归档时间: |
|
查看次数: |
31442 次 |
最近记录: |