php-cli 是php在系统执行的程序,直接执行php文件;
cgi和fast-cgi的区别
1.cgi和fast-cgi都是php解析协议,负责解析服务器分发过来的php动态文件;cgi程序就会去解析php.ini文件,初始化执行环境(启动一个进程),执行完请求之后(自动关闭),众所皆知开启进程和关闭进程对系统资源消耗很大
2.由于cgi的繁杂重复的操作会消耗过多的系统资源,那么fasst-cgi就是为了解决这不合理的工作而存在的;fast-cgi先是开启一个常驻进程(master),然后当web server分发一个请求过来,就会fork出一个子进程(worker)去处理相对应的操作,
这些子进程不会自动关闭,会在进程池里面等待下一个处理。这样就大大的节省 进程的启动和关闭 所消耗的资源;
3.php-fpm是fast-cgi进程管理器
上面说的好像cgi和fast-cgi很像个解析器,其实不是的,cgi和fast-cgi仍然只是个协议而已,而上面实现的操作需要php-fpm这样的进程管理器去辅助执行
(这是因为Fastcgi是一种协议,表述的时候更多的是从实现的角度出发说明的,就是实现Fastcgi协议的进程管理器基本都是这样运行,是一种抽象和概括性的描述)
cgi,fast-cgi,php-fpm,php-cgi,spawn-fcgi 区别和优缺点 http://www.mike.org.cn/articles/what-is-cgi-fastcgi-php-fpm-spawn-fcgi/