一直对PHP的sapi是什么东西好奇,在网上一查都是各类说fpm cgi fastcgi php-cgiphp
直到看了鸟哥的这篇文章介绍戳这里,看到源码下的sapi目录才有所了解。html
了解下PHP的架构体系会知道sapi是PHP提供的一种供其余程序调用的接口(感受接口这词好像不太准确,欢迎纠正),经过sapi其余程序就能够执行PHP脚本。git
具体提供的sapi有:github
本身认为的和这个连接里的差很少戳这里 ,CGI是一种web server和外部程序定好数据参数的协议,php-cgi恰好这样的CGI程序,每次请求过来都要启动;web
是由于每次都要启动CGI,要加载各类配置,初始化,因此出了fastcgi这种协议,能够不用每次启动CGI程序apache
php-fpm正是实现了fastcgi的一种sapi,看上面的sapi列表里的fpm就是了,在编译PHP时,有个segmentfault
'--enable-fpm' 引用百度百科对于PHP5.3.3以前来讲,是个补丁包,旨在将FastCGI进程管理整合进PHP包中,也就是说5.3.3以后已经自动编译进PHP里了
对PHP-FPM更深的源码解析在这儿戳api
理解了上面的CGI后,这个就是PHP实现CGI的程序(~~待定,并非很确信)php7
若有任何疑问,欢迎留言讨论!架构