fastcgi和fpm有什么区别?

问题描述 投票:117回答:3

我正在尝试在macports上使用fpm安装php。我在某处读到fpm表示FastCGI进程管理器。这是否意味着fastcgi和fpm相同?如果它们是相同的,那么为什么我们有两个不同的Macports变种,分别是php“ php5 + fastcgi”“ php5 + fpm”

php macos fastcgi macports
3个回答
93
投票

FPM是一个进程管理器,用于管理PHP中的FastCGI SAPI(服务器API)。

[基本上,它代替了对SpawnFCGI之类的东西的需要。它自适应地生成FastCGI子级(意味着如果当前负载需要它,则启动更多)。

否则,它与FastCGI之间没有太多操作差异(从请求开始到结束的请求管道是相同的)。它只是在那里,使实现起来更容易。


56
投票

[安东尼说的是绝对正确的,但我想补充一点,您的经验可能会显示出更好的性能和效率(由于不是fpm -vs- fcgi,而是更多地是因为httpd ])。

例如,我有一台运行lighttpd + fcgi的四核计算机很好地嗡嗡作响。我升级到16核计算机以应对增长,两件事发生了爆炸:RAM使用率和段错误。我发现自己每30分钟重新启动一次lighttpd,以保持网站正常运行。

我切换到php-fpm和nginx,RAM的使用从> 20GB降至2GB。分段错误也消失了。经过研究后,我了解到lighttpd和fcgi在负载下的多核计算机上表现不佳,在某些情况下还存在内存泄漏问题。

这是由于php-fpm优于fcgi吗?并非完全如此,但是how钩住php-fpm似乎比通过fcgi进行服务的效率高了很多。


0
投票

将PHP作为CGI运行意味着您基本上告诉Web服务器PHP可执行文件的位置,并且服务器运行该可执行文件

whereas

PHP FastCGI进程管理器(PHP-FPM)是PHP的替代FastCGI守护程序,它允许网站处理繁重的负载。 PHP-FPM维护池(可以响应PHP请求的工作人员)来完成此任务。对于多用户PHP环境,PHP-FPM比传统的基于CGI的方法(例如SUPHP)要快。

但是,两者都有优点和缺点,应根据其特定的使用情况进行选择。

我在fastcgi vs fpm的此链接上找到了信息,有助于选择我的方案中使用的处理程序。

© www.soinside.com 2019 - 2024. All rights reserved.