61.[PHP]PHP 程序的运行方式
来源:互联网 发布:erp是什么软件 编辑:程序博客网 时间:2024/05/22 05:19
- SAPI
- CGI
- FastCGI
- CLI
- ISAPI
- mod_php
转载请注明原始链接:http://blog.csdn.net/a464057216/article/details/53455210
SAPI
Server Application Programming Interface服务端应用编程接口,对于PHP来说就是PHP与其它应用交互的接口,如通过Web服务器或直接在命令行下执行。常见的SAPI有:CGI、FastCGI、CLI、ISAPI、mod_php等。
CGI
Common Gateway Interface通用网关接口,Web服务器接受客户端请求之后会将指令传递给PHP执行程序,执行程序处理生成结果之后再返回给Web服务器最后响应给客户端。CGI可以看作Web服务器和执行程序之间的桥梁。
CGI方式遇到用户请求先要创建CGI子进程然后处理请求,处理完后结束子进程(fork-and-execute模式)。所以用CGI方式的服务器有多少连接请求就会有多少CGI子进程,子进程反复加载是CGI性能低下的主要原因。
FastCGI
FastCGI是CGI的升级版,是一个常驻(long-live)型的CGI。Apache可以以mod_fcgid的形式使用FastCGI,Nginx使用PHP-FPM(FastCGI Process Manager)的形式使用FastCGI。
FastCGI进程管理器会启动多个CGI解释器进程并等待来自Web服务器的连接。客户端请求到达Web服务器时,FastCGI进程管理器选择并连接到一个CGI解释器。Web服务器将CGI环境变量和标准输入发送到FastCGI子进程php-cgi,FastCGI子进程完成处理后将标准输出和错误信息从同一连接返回Web服务器并响应给客户端。当FastCGI子进程关闭连接时,请求处理完成,这个子进程并不会结束而是继续等待并处理来自FastCGI进程管理器的下一个任务。
CLI
以命令行模式运行PHP程序。比如:
ISAPI
Internet Server Application Program Interface,微软提供的一套面向WEB服务的API接口,在CGI基础上进行了扩展。ISAPI应用大多数以DLL动态库的形式使用,可以在被用户请求后执行,在处理完一个用户请求后不会马上消失,而是继续驻留在内存中等待处理别的用户输入。ISAPI的DLL应用程序和WEB服务器处于同一个进程中,效率要显著高于CGI。
mod_php
以Apache模块方式运行PHP,PHP解释器被“内嵌”在Apache的进程里。这种方式运行PHP的时候,哪怕Apache提供的仅仅是静态资源(如HTML),Apache的每个子进程也都会载入 mod_php,导致了比正常情况下更多的内存开销。并且这种方式使用PHP时,如果修改了php.ini,需要重启Apache重新加载配置。
如果觉得我的文章对您有帮助,欢迎关注我(CSDN:Mars Loo的博客)或者为这篇文章点赞,谢谢!
- 61.[PHP]PHP 程序的运行方式
- 4.PHP的运行方式
- php常见的运行方式
- PHP运行方式
- PHP运行方式
- php运行方式
- PHP的三种运行方式
- 本地运行php慢的解决方式
- php 判断当前脚本的运行方式
- php的4种常见运行方式
- 浅析 php 的几种运行方式
- php的四种常见运行方式
- php的4种常用运行方式
- php的4种常用运行方式
- php的4种常见运行方式
- 更好的方式运行php-fpm
- PHP中的VC6,VC9,TS,NTS,php的运行方式
- PHP 程序运行过程
- javaEE基础servlet之ServletConfig
- 类型信息之instanceof、isInstance与isAssignableFrom
- 初学构建小项目之仓库管理系统货物类型管理功能实现(三)
- 在switch语句中使用字符串以及实现原理
- 数据存储——文件存储
- 61.[PHP]PHP 程序的运行方式
- 第六十三篇:S32V234汽车电子应用功能挖掘的相关文章:双目立体、雷达视觉融合、ADAS集成
- Picasso加载圆角图片
- Matlab与线性代数 -- 矩阵的水平连接和垂直连接
- Hadoop伪分布环境部署之Hadoop
- 模块的内聚和耦合
- Angular2(三)--依赖注入
- 软件工程——软件设计
- 189. Rotate Array