2015/5/2 (一) 浅谈PHP的几个运行模式

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

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

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

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

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


fast-cgi  

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


ISAPI

    这个东西据说是微软本身搞出来的,真是够任性的。不过也没用过。摘下网上的解释: 浏览器

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


CLI

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

php filaname

    哈哈,这个貌似也算是。嗯,这个运行模式对于如今来讲没什么好解释的,先这样! 多线程

APACHE模块

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

相关文章
相关标签/搜索