PHP-FPM发展史(大厂必问)

本文介绍了CGI的由来及其工作原理,然后探讨了PHP-CGI的局限性,进而引出FastCGI的高效解决方案。接着,文章详细阐述了Apache的mod_php模块和FastCGI的运作方式。最后,重点讲解了PHP-FPM(FastCGI进程管理器)的工作机制,包括其如何解决PHP-CGI的问题并提高性能。
摘要由CSDN通过智能技术生成

CGI的由来

早期的web服务器,只能响应浏览器发来的HTTP静态资源的请求。随着Web技术的发展,逐渐出现了动态技术,但是Web服务器并不能够直接运行动态脚本,为了解决Web服务器与外部应用程序(CGI程序)之间数据互通,于是出现了CGI(Common Gateway Interface)通用网关接口。

什么是CGI

CGI只是一个接口规范或协议,它的实现则与具体的编程语言相关。

CGI的工作原理

Web服务器一般只用来处理静态文件请求,当碰到动态脚本请求时,Web服务器主进程就会创建一个新的进程来启动CGI程序,也就是将动态脚本交给CGI程序来处理。启动CGI程序需要一个过程,如读取配置文件,加载扩展,初始化环境等。CGI解析完动态脚本后将结果返回给服务器,最后Web服务器将结果返回给客户端,之前创建的进程也随之关闭。

这样每次用户请求动态脚本,Web服务器都要重新去创建一个新进程去启动CGI程序,读取配置文件,初始化环境等重复性操作,CGI程序处理完动态脚本后又会随之关闭,这样周而复始,其效率是非常低下的。于是便出现了FastCGI。

PHP-CGI

PHP-CGI就是CGI协议的php版本实现。除了协议本身的问题还有一些其他问题
比如

  • PHP-CGI变成php.ini配置后,需要重启php-cgi才能让新的配置生效,不可以平滑重启。

  • 直接杀死PHP-CGI进程,php就不能运行了。
    而后来的PHP-FPM则完美解决了这两个问题并且其

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值