PHP运行模式 以及分别的运行模式

(1).CGI模式:通用网关接口(Common Gateway Interface),它是一段程序,通俗的讲,CGI就像一座桥,把网页和WEB服务器中的执行程序连接起来,它把HTML接受的指令传递给服务器的执行程序,再把服务期执行程序的结果返回给HTML网页。

优点:跨平台性极佳,几乎可以在任何操作系统上实现。

缺点:每有一个用户请求,就会先创建CGI的子进程,然后处理请求,处理完后才结束这个子进程,当用户请求数量非常多的时候,会挤占大量系统的内存资源,CPU时间等,造成性能低下。

(2).FastCGI模式:是CGI的升级模式,像是一个常驻性的CGI。

FastCGI是一个可伸缩地、高速地在HTTP server和动态脚本语言之间通信的接口

FastCGI接口方式采用C/S结构,可以将HTTP服务器和脚本解释器服务器分开,同时在脚本解释服务器上启动一个或者多个脚本解析守护进程。

原理:

  1. Web Server 启动时,载入FastCGI进程管理器。
  2. FastCGI进程管理器自身初始化,启动多个CGI解释器进程,并等待来自Web Server的连接
  3. 当客户端请求到达Web Server时,FastCGI进程管理器选择并连接到一个CGI解释器。WEB SERVER将CGI环境变量和标准输入发送到FastCGI子进程php-cgi;
  4. FastCGI子进程完成处理好将标准输出和错误信息从同一连接返回Web Server.当FastCGI子进程关闭连接时,请求便告处理完成。

          优点:稳定性高、安全性高、性能高

          缺点:开发机器来说不太合适

(3).CLI模式:PHP-CLI是PHP Command Line Interface的简称,如同它名字的意思,就是PHP在命令行运行的接口,区别于在Web服务器上运行的PHP环境(PHP-CGI,ISAPI等)。 也就是说,PHP不单可以写前台网页,它还可以用来写后台的程序。 PHP的CLI Shell脚本适用于所有的PHP优势,使创建要么支持脚本或系统甚至与GUI应用程序的服务端,在Windows和Linux下都是支持PHP-CLI模式的。

1)使用多进程,子进程结束以后,内核会负责回收资源; 

2)使用多进程,子进程异常退出不会导致整个进程Thread退出,父进程还有机会重建流程; 

3)一个常驻主进程,只负责任务分发,逻辑更清楚。 

(4).模块模式:模块模式p5模块的形式集成,此时mod_php5模块的作用是接收Apache传递过来的PHP文件请求,并处理这些请求,然后将处理后的结果返回给Apache。如果我们在Apache启动前在其配置文件中配置好了PHP模块,(mod_php5), PHP模块通过注册apache2的ap_hook_post_config挂钩,在Apache启动的时候启动此模块以接受PHP文件的请求。 

该运行模式是我们以前在windows环境下使用apache服务器经常使用的,而在模块化(DLL)中,PHP是与Web服务器一起启动并运行的。(它是apache在CGI的基础上进行的一种扩展,加快PHP的运行效率)。

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

   PHP作为Apache模块,Apache服务器在系统启动后,预先生成多个进程副本驻留在内存中,一旦有请求出现,就立即使用这些空余的子进程进行处理,这样就不存在生成子进程造成的延迟了。这些服务器副本在处理完一次HTTP请求之后并不立即退出,而是停留在计算机中等待下次请求。对于客户浏览器的请求反应更快,性能较高。

  • 34
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值