PHP 与 WebServer 交互:CGI、FastCGI,以及 PHP-FPM

本文介绍了PHP作为WebServer处理动态请求的工具,解析了CGI、FastCGI协议以及PHP-FPM的工作原理。通过比喻详细阐述了CGI的每次请求创建新进程的开销,以及FastCGI如何通过进程管理优化性能,特别是PHP-FPM如何在高并发场景下更有效地处理请求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在 PHP 官方文档中有一句话:“可以用 PHP 来完成任何其它的 CGI 程序能够完成的工作”,对 PHP 的最基本功能(作为服务器脚本)做了定义。常用的 PHP 的场景也是作为服务器端的脚本。

一、简单的理解为什么需要 PHP ,而不是 WebServer 直接处理动态脚本

        规定:WebServer 是用于处理客户端请求的静态资源的一种程序,如 HTML、CSS、纯文本、JavaScript、图片......其他的任何形式的文件它都无法处理,如 PHP 脚本。

        所以,要处理那些 WebServer 无法处理的请求,就需要其他的程序。

        再有,可能会考虑为什么不直接使用其他程序来处理各种包括静态和动态的请求,原则上说这样的考虑我觉得是正常的,但是可能会涉及更多的性能等考虑,而 WebServer 在处理请求的方向上有独天得厚的优势,同时在于其他程序的交互上也比较方便,大概因此并没有开发一种被广泛应用的结合了处理各种请求的程序吧。

二、WebServer 与 应用程序的交互方式

        既然 WebServer 处理不了动态请求,需要将其交给其他程序来处理,则他们之间肯定有一定的关联,有一定的条件进行连接。

        常见的 PHP 与 WebServer 交互的方式:

        ①:以模块的方式作为 WebServer(常见的如 Apache,IIS 等)的子模块。即此时 PHP 相当于这些服务器的一个模块,和 WebServer 集成在了一起,PHP 的调用是通过 WebServer 的进程实现的。

        比如:为了到达河对面,在没有其他工具的情况下,给人类安装了一双翅膀

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值