PHP-CGI php-fpm区别

发布于 2022-10-15 05:23:49 字数 40 浏览 31 评论 0

我查了很多资料,我搞不懂它们两者之前本质区别在哪里,在我看来同样可以解析PHP。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

趁年轻赶紧闹 2022-10-22 05:23:49

一个是cgi 一个是fastcgi  这么说对么?

雨后彩虹 2022-10-22 05:23:49

php-cgi是被调用的进程,php-fpm是配置和管理进程的

流心雨 2022-10-22 05:23:49

关注,学习。。。

枉心 2022-10-22 05:23:49

cgi效率低,每次来了PHP请求,新建立一个PHP进程来解析,解析完毕进程销毁,再来请求再起进程。。。
fpm=fastcgi process manage,维持一定数量的进程数,供nginx调用,不用每次都新建进程,速度更快。原理上有点类似于数据库连接池吧。

開玄 2022-10-22 05:23:49

CGI 是用来接收HTTP请求的一个程序,例如[127.0.0.1/index.php?c=article&id=11,这个请求通过apahce、nginx等等过来,然后http服务器发送给php-cgi(就是php用来接收http的程序),这个玩意儿每次新建一个进程的时候都要读取和加载php.ini的一堆参数,然后才能开始接收请求,比较慢。
FASTCGI的工作原理是首先启动一个master,这个master加载了所有的配置信息等等,master会新建很多个worker,然后每次有请求的时候master负责把请求分配给相应的worker,这样避免了重复加载和启动,就是一个提交cgi程序效能的东西,fastcgi这个东西只是一个协议(你可以理解为是一个没实现的想法),并不是一个程序。
PHP-FPM就是实现这个想法的程序,CGI很蠢,不会管理进程,而PHP-FPM会根据实际情况,创建worker或者关掉worker进程,保持一定量的worker,请求多了,worker就多了,请求少了,worker就会被关掉一部分,你可以理解为它是一个高效CGI的进程管理器。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文