Web server和php结合的三种模式

2023-05-28,

CGI(Common Gateway Interface)模式

当客户端请求web server中的动态内容的时候,动态文件需要通过cgi启动独立进程也就是php解释器进行处理,PHP解析器会解析php.ini文件,初始化执行环境,然后处理请求,再以CGI规定的格式返回处理后的结果,最后退出进程,web server再把结果返回给客户端。现在基本已经不用这种方式了,因为对于每个动态请求都要额外启动cgi进程,且每次都要解析一遍php.ini并初始化执行环境,处理完请求后销毁进程,这个过程大大降低了多请求处理性能

Module模块模式

在使用Apache为Web server的情况下,利用Apache的特性,DSO动态共享对象,将PHP作为Apache的模块,当需要解释php文件的时候,利用php_mod对动态文件进行解释,无需再启动额外的进程,缺点是进程内容复杂

Fastcgi模式

由于cgi性能上的缺陷,当请求到来时才新建进程,每次都要初始化执行环境,所以Fastcgi机制首先建立master进程,解析配置文件,初始化执行环境,之后再预先生成多个worker进程,当动态请求到来时,master将请求传递给其中的一个worker,再马上接收下一个请求,并动态地对worker进程数做调整,大大提高了性能。php5.4之后版本的内核已经集成了php-fpm( Fast php module)


《Web server和php结合的三种模式.doc》

下载本文的Word格式文档,以方便收藏与打印。