“跑呀跑呀跑呀跑呀,拼命努力着追上前面那个被目光期许的自己,生怕抓不住时光,只有和你一起的时候,才觉得不如就这样老了吧,也不算太辜负。”
### CGI
1 2 3 4 5 6 7 8 9
| CGI英文全程是 Command Gateway Interface,通常翻译为公共网关接口, 是HTTP服务器与机器上的其他程序进行通信的一个接口。 这个“其他程序”可以是使用任何计算机语言进行编 写,例如php,python,perl等等。 它通过CGI这个接口从HTTP服务器取得输入,然后把运行结果又通过CGI这个接口交给HTTP服务器, 而HTTP服务器把这个结果送给浏览器。
CGI 的出现让WEB从静态变为动态,随着web的越来越普及,很多的网站都需要有动态的页面, 以便与浏览者进行交互。CGI的缺点也越来越突出,因为HTTP 要生成一个动态页面, 系统就必须启动一个新的进程以运行CGI程序, 不断的fork是一项很消耗时间和资源的工作。
|
FastCGI
1 2 3 4 5 6 7 8
| FastCGIFastCGI是可伸缩架构的CGI开放扩展, 其主要行为是将CGI解释器进程保持在内存中并因此获得较高的性能。 传统的CGI 解释器的反复加载是CGI性能低下的主要原因, 如果CGI解释器保持在内存中并接受FastCGI进程管理器调度, 则可以提供良好的性能、伸缩性等 。在上述情况中,你可以想象 CGI通常有多慢。 每一个Web请求PHP都必须重新解析php.ini、重新载入全部扩展并重初始化全部数据结构。 使用FastCGI,所有这些 都只在进程启动时发生一次。一个额外的好处是, 持续数据库连接(Persistent database connection)可以工作。
|
mod_php
1 2 3 4 5 6 7 8 9 10 11 12
| 在lamp体系中,对于apache端的php的配置,我们最常用的就是mod_php, 它把php作为apache一个内置的模块.让apache http服务器本身能够支持php语言, 不需要每一个请求就启动php解释器来解释php.
和把webserver与php绑定起来的方式不同, fastcgi是http服务器与你的或其它机器上的程序进行“交谈”的一种工具, 相当于一 个程序接口。它可以接受来自web服务器的请求,解释输入信息, 将处理后的结果返回给服务器等。mod_fastcgi就是在apache下支持 fastcgi协议的模块。
在lamp体系中,mod_php是最常使用的工作方式。在这种模式下, php被编译为apache的一个内置模块,在启动加载的时候, 当有一个php请求过来,直接在httpd进程里完成了php的解释运行,将结果返回。
|
mod_fastcgi
1 2 3 4
| mod_fastcgi就是在apache下支持 fastcgi协议的模块。 fastcgi实例和apache分离开来,这两者可以分开来部署。 他们之间的通信通过tcp或者unix sock来完成。使用ext方式, fastcgi实例是独立运行的。
|
FPM
1 2 3
| FPM(FastCGI 进程管理器)用于替换 PHP FastCGI 的大部分附加功能, 对于高负载网站是非常有用的。
|
http://blog.shiliuvip.com/391.html
http://php.net/manual/zh/install.fpm.php