博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2015/5/2 (一) 浅谈PHP的几个运行模式
阅读量:6713 次
发布时间:2019-06-25

本文共 1445 字,大约阅读时间需要 4 分钟。

hot3.png

CGI(common gateway interface)通用网关接口

    这个运行模式应该是很久以前了吧,不过我也没用过,只是从网上资料了解了下,书面上的解释就是:cgi是web服务器与机器上的其他程序进行通信的一个接口,其他程序可以是任何语言,它通过cgi这个接口从web服务器获得输入,然后把运行的结果通过cgi这个接口传输给web服务器,而web服务器把这个结果发送给浏览器.(这个解释好渣,还是看下面的好了)

    而在php上解释就是web server将用户请求以消息方式交给php独立进程;这些应该就是它的工作模式,具体的貌似我也说不清楚,下面是摘自百度的一段话:

它是一段程序,通俗的讲CGI就象是一座桥,把网页和WEB服务器中的执行程序连接起来,它把HTML接收的指令传递给服务器的执 行程序,再把服务器执行程序的结果返还给HTML页。CGI 的跨平台性能极佳,几乎可以在任何操作系统上实现。CGI方式在遇到连接请求(用户 请求)先要创建cgi的子进程,激活一个CGI进程,然后处理请求,处理完后结束这个子进程。这就是fork-and-execute模式。所以用cgi 方式的服务器有多少连接请求就会有多少cgi子进程,子进程反复加载是cgi性能低下的主要原因。都会当用户请求数量非常多时,会大量挤占系统的资源如内 存,CPU时间等,造成效能低下。

    我觉得更靠谱点的解释是:cgi就是Apache在遇到PHP脚本的时候会将PHP程序提交给CGI应用程序(php-cgi.exe)解释,解释之后的结果返回给Apache,然后再返回给相应的请求用户.

fast-cgi  

    以FastCGI的方式运行。这种形式是CGI的加强版本,CGI是单进程,多线程的运行方式,程序执行完成之后就会销毁,所以每次都需要加载配置和环境变量fork-and-execute(创建-执行)。而FastCGI则不同,FastCGI 像是一个常驻 (long-live) 型的 CGI,它可以一直执行着,只要激活后,不会每次都要花费时间去 fork 一次。FastCGI进程管理器自身初始化,启动多个CGI解释器进程 (在任务管理器中可见多个php-cgi.exe)并等待来自Web Server的连接。它还支持分布式的运算, 即 FastCGI 程序可以在网站服务器以外的主机上执行并且接受来自其它网站服务器来的请求。

ISAPI

    这个东西听说是微软自己搞出来的,真是够任性的。不过也没用过。摘下网上的解释:

ISAPI即Internet Server Application Program Interface,是微软提供的一套面向Internet服务的API接口一个ISAPI的DLL,可以在被用户请求激活后长驻内存,等待用户的另一个请求,还可以在一个DLL里设置多个用户请求处理函数,此外,ISAPI的DLL应用程序和WWW服务器处于同一个进程中,效率要显著高于CGI。(由于微软的排他性,只能运行于windows环境)

CLI

     这个是PHP的命令行执行模式,这个也没玩过 ==!不过 

php filaname

    哈哈,这个貌似也算是。嗯,这个运行模式对于现在来说没什么好解释的,先这样!

APACHE模块

    这个应该就是大家最常用的运行模式了吧,这个其实就是将PHP集成到APACHE服务器,同一个进程运行。

转载于:https://my.oschina.net/u/2002769/blog/409898

你可能感兴趣的文章
强化学习遭遇瓶颈!分层RL将成为突破的希望
查看>>
接口限流的常用算法汇总
查看>>
Kong 发布 Kong Brain 和 Kong Immunity,可进行智能自动化和适应性监控
查看>>
IBM推出实时跨境支付解决方案Blockchain World Wire
查看>>
IBM中国开发中心吉燕勇: 通过Cloud Data Services打造新型认知计算数据分析云平台...
查看>>
Hybrid App走向“轻混”,剖析WeX5开源高性能HTML5 App开发框架
查看>>
网易戏精ARCore短视频新玩法实践
查看>>
华泰证券:如何自研高效可靠的交易系统通信框架?
查看>>
使用Flutter之后,我们的CPU占用率降了50%
查看>>
我们究竟应不应该使用框架?
查看>>
如何基于Kubernetes构建完整的DevOps流水线
查看>>
Deis发布1.4版本,支持Microsoft Azure
查看>>
用于.NET Core的ORM
查看>>
慎用!BLEU评价NLP文本输出质量存在严重问题
查看>>
如何撰写好文档?精益文档的六个实践
查看>>
ArchSummit微课堂|蘑菇街DevOps实践及心路历程分享
查看>>
随手记统一监控平台Focus设计解析
查看>>
中国平安“豪赌”科技?从产险业务IT变形计聊起
查看>>
RSocket:一个面向反应式应用程序的新型应用网络协议
查看>>
ElasticSearchDsl
查看>>