ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

CGI,FastCGI和PHP-FPM之间的关系和区别。

2021-07-06 10:57:11  阅读:231  来源: 互联网

标签:CGI web FPM server 进程 PHP FastCGI


什么是CGI?
早期的web server只可以处理简单的静态web文件,但是随着技术的发展出现动态语言如PHP,Python。PHP语言交给PHP解析器进行处理,但是处理之后如何和web server进行通信呢?
为了解决不同的语言处理器与web server之间的通讯,出现了CGI协议。只要按照CGI协议编写程序,就可以实现与语言解析器与web server之间的通讯。
CGI协议虽然解决了语言解析器和seb server之间通讯的问题,但是它的效率很低。因为web server每收到一个请求都会创建一个CGI进程,PHP解析器都会解析php.ini文件,初始化环境,请求结束的时候再关闭进程。对于每一个创建的CGI进程都会执行这些操作。所以效率很低。

什么是FastCGI?
FastCGI是用来提高CGI性能的,FastCGI每次处理完请求之后不会关闭掉进程。而是保留这个进程,使这个进程可以处理多个请求。这样的话每个请求都不用再重新创建一个进程了。大大提升了处理效率。

什么是PHP-FPM?
PHP-FPM(FastCGI Process Manager:FastCGI进程管理器)是一个实现了Fastcgi的程序,并且提供进程管理的功能。进程包括master进程和worker进程。master进程只有一个,负责监听端口,接受来自web server的请求。worker进程一般会有多个,每个进程中会嵌入一个PHP解析器,进程PHP代码的处理。

 

标签:CGI,web,FPM,server,进程,PHP,FastCGI
来源: https://blog.51cto.com/u_15294355/2986924

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有