1、CGI
web server (比如 Nginx) 和 PHP、Python等通信的协议
1、Nginx 接收到php请求;
2、php解析器解析 php.ini, 初始化执行环境;
3、返回结果给浏览器;
2、Fastcgi
高性能的CGI ( 通过减少解析php.ini的次数 , 提高性能)
1、Nginx 接收到php请求;
2、Fastcgi 启动 master, 解析php.ini, 初始化执行环境;
3、启动 worker;
4、返回结果给浏览器;
3、php-cgi
php解析器
4、php-fpm
调度php-cgi
当php.ini被修改后, php-cgi进程的确是没办法平滑重启的。
php-fpm对此的处理机制是新的worker用新的配置,已经存在的worker处理完手上的活就可以歇着了,通过这种机制来平滑过度。