php提供的sapi有哪些?CGI、FastCGI、php-fpm、php-cgi解释

1、前言

一直对PHP的sapi是什么东西好奇,在网上一查都是各类说fpm cgi fastcgi php-cgiphp

直到看了鸟哥的这篇文章介绍戳这里,看到源码下的sapi目录才有所了解。html

2、sapi是什么

了解下PHP的架构体系会知道sapi是PHP提供的一种供其余程序调用的接口(感受接口这词好像不太准确,欢迎纠正),经过sapi其余程序就能够执行PHP脚本。git

具体提供的sapi有:github

  • apache2handler
  • cgi
  • cli
  • embed
  • fpm
  • litespeed
  • phpdbg

3、

cgi

本身认为的和这个连接里的差很少戳这里 ,CGI是一种web server和外部程序定好数据参数的协议,php-cgi恰好这样的CGI程序,每次请求过来都要启动;web

fastcgi

是由于每次都要启动CGI,要加载各类配置,初始化,因此出了fastcgi这种协议,能够不用每次启动CGI程序apache

php-fpm

php-fpm正是实现了fastcgi的一种sapi,看上面的sapi列表里的fpm就是了,在编译PHP时,有个segmentfault

'--enable-fpm'
引用百度百科对于PHP5.3.3以前来讲,是个补丁包,旨在将FastCGI进程管理整合进PHP包中,也就是说5.3.3以后已经自动编译进PHP里了

对PHP-FPM更深的源码解析在这儿api

php-cgi

理解了上面的CGI后,这个就是PHP实现CGI的程序(~~待定,并非很确信)php7

若有任何疑问,欢迎留言讨论!架构

相关文章
相关标签/搜索