网上对于FastCGI与mod_PHP的知识比较杂乱而不全面,故在此整理一下,以便入门学习者查阅方便
背景PHP最常用的方式是以模块的方式(mod_php)运行在Apache中,也是Apache运行PHP的默认方式;但在Nginx中,Nginx又使用的是PHP-FPM,但是PHP-FPM到底是个什么东东?跟PHP有什么关系?今天我们一起来探究一番
PHP处理器(PHPhandlers)首先需要记住的是,任何一种Web服务器(Apache、Nginx等)都是被设计成向用户发送html、图片等静态资源的,Web服务器自身并不能解释任何动态脚本(PHP、Python等)
PHP处理器就是用来解释Web应用中的PHP代码,并将它解释为HTML或其他静态资源,然后将解析的结果传给Web服务器,最后再由Web服务器发送给用户
大多数的Web服务器都不能解析PHP代码,因此它需要一个能解析PHP代码的程序,这就是PHP处理器
现在我们知道了,Apache与Nginx都需要PHP处理器来处理php代码,那么怎么连接上服务器与php处理器呢?也就是说服务器与PHP处理器如何通信?
答案是通过SAPI(ServerApplicationProgrammingInterface服务器端应用编程端口),简单来说,SAPI指的是PHP具体应用的编程接口,就像PC一样,无论安装哪些操作系统,只要满足了PC的接口规范都可以在PC上正常运行,PHP脚本要执行有很多种方式,通过Web服务器,或者直接在命令行下,也可以嵌入在其他程序中,有兴趣大家可以研究PHP内核
我们这里继续讨论PHP最常用的SAPI提供的种连接方法:mod_PHP和mod_fastcgi
mod_PHP模式咱们回顾一下,Apache是怎么能够识别PHP代码的?是不是Apache的配置文件河北治疗白癜风的医院怎么预防白癜风