关于php、php-fpm、fastcgi的理解

CGI为“通用网关接口”(Common Gateway Interface),而Fastcgi是CGI的升级版,一种语言无关的协议,用来沟通程序(如PHP, Python, Java)和Web服务器(Apache2, Nginx)。

程序和web服务器想要通信,这就需要Fastcgi,在这里Fastcgi相当于是一门语言,就好像中国人和美国人通过英语交流一样,Fastcgi就是英语,但除此之外还需要“翻译官”,对于php来说,它的翻译官就是php-fpm,而web服务器都有自己内置的“翻译官”,这样,通过Fastcgi,程序和web服务器得以交流。

PHP的解释器是php-cgi。php-cgi只是个CGI程序,它自己本身只能解析请求,返回结果,不会进程管理,所以就出现了一些能够调度php-cgi进程的程序php-fpm,同时,修改了php.ini配置文件后,没办法平滑重启,这也是php-fpm诞生的原因之一。

php-fpm 有两个功能:1.实现了一个支持fastcgi协议的server程序 2. 进程管理器   有了php-fpm,就可以把php脚本变成己内置的多进程模式,采用了Fastcgi协议的程序就可以和web服务器进行通信。

你可能感兴趣的:(关于php、php-fpm、fastcgi的理解)