CGI PHP-CGIFASTCGIPHP-FPM

Posted 会学习的猪

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CGI PHP-CGIFASTCGIPHP-FPM相关的知识,希望对你有一定的参考价值。

CGI是干嘛的?

  CGI是为了保证web server传递过来的数据是标准格式的,方便CGI程序的编写者。web server(比如说nginx)只是内容的分发者。比如,如果请求的是/index/html,那么web server会去文件系统找到这个文件,发送给浏览器,这里分发的是静态数据。如果,请求的是/index.php,根据配置文件,nginx知道这不是一个静态文件,需要去找PHP解析器来处理,那么他会 把这个请求丢给PHP解释器,但是他如何跟PHP解释器进行沟通呢?CGI就是规定了他们之间沟通的协议。当PHP解析器处理完请求同理再以规定的CGUI格式返回处理后的结果,退出进程。web server 再将结果返回给浏览器。

 

PHP-CGI是什么呢?

  PHP-CGI是PHP自带的FastCGI管理器。已经弃用了,原因在于修改php.ini必须要重启才能生效,不支持平滑重启;另外一个原因在于,杀死php-cgi进程后,php就不能运行了。(PHP-FPM和Spawn-FCGI就没有这个问题,守护进程会平滑从新生成新的子进程。)

 

FASTCGI是什么?

  Fastcgi是用来提高CGI程序性能的。那么CGI程序的性能问题在哪呢?"PHP解析器会解析php.ini文件,初始化执行环境",就是这里了。标准的CGI对每个请求都会执行这些步骤,所以处理每个时间的时间会比较长。这明显不合理嘛!那么Fastcgi是怎么做的呢?其主要行为是将CGI解释器进程保持在内存中并因此获得较高的性能。

 

PHP-FPM是什么呢?

  PHP-FPM是一个PHP FASTCGI管理器,只能用于PHP。

以上是关于CGI PHP-CGIFASTCGIPHP-FPM的主要内容,如果未能解决你的问题,请参考以下文章

CGI

什么是CGI FastCGI PHP-CGI PHP-FPM Spawn-CGI?它们之间的关系

Ruby CGI Session

Cgi与php-Cgi以及Fast-Cgi与php-fpm的理解

CGI是啥?

CGI概念