详解CGI、FastCGI、PHP-CGI、PHP-FPM
2018-04-21 本文已影响24人
10xjzheng
1. 什么是CGI和FastCGI
- CGI:
通用网关接口(Common Gateway Interface/CGI)是一种重要的互联网技术,可以让一个客户端,从网页浏览器向执行在网络服务器上的程序请求数据。CGI描述了服务器和请求处理程序之间传输数据的一种标准。 - FastCGI:
快速通用网关接口(Fast Common Gateway Interface/FastCGI)是一种让交互程序与Web服务器通信的协议。FastCGI是早期通用网关接口(CGI)的增强版本。
FastCGI致力于减少网页服务器与CGI程序之间互动的开销,从而使服务器可以同时处理更多的网页请求。 - 结论:CGI跟FastCGI都是协议、有别于CGI程序、FastCGI程序
2. 什么是PHP-CGI、PHP-FPM
-
PHP-CGI:
PHP-CGI是PHP自带的FastCGI管理器,也就是专门给PHP使用的FastCGI管理器
PHP-CGI的不足:
1、php-cgi变更php.ini配置后需重启php-cgi才能让新的php-ini生效,不可以平滑重启。
2、直接杀死php-cgi进程,php就不能运行了。(PHP-FPM和Spawn-FCGI就没有这个问题,守护进程会平滑从新生成新的子进程。) -
PHP-FPM:
因为PHP-CGI的不足,所以PHP-FPM诞生了,它解决了PHP-CGI的不足,同时还具备更多的功能,还表现在其他方面更表现强劲。
PHP-FPM 是对于 FastCGI 协议的具体实现,他负责管理一个进程池,来处理来自Web服务器的请求生成新的子进程。