当前位置:Gxlcms > PHP教程 > 关于php中携带的php-fpm和php-cgi的理解纠正

关于php中携带的php-fpm和php-cgi的理解纠正

时间:2021-07-01 10:21:17 帮助过:32人阅读

一开始我认为这两者是不同的,后来经过查阅许多资料后发现,其实两者都是php的FastCGI管理器,都是用来管理php-cgi进程,php-cgi是php自带的管理器,而php-fpm是为php专门制作的FastCGI管理器(5.3之前是php的补丁功能,5.3之后加入到php中,替换了原先的php-cgi)。

PHP-CGIPHP-CGI是PHP自带的FastCGI管理器。

PHP-CGI的不足:

  • php-cgi变更php.ini配置后需重启php-cgi才能让新的php-ini生效,不可以平滑重启。
  • 直接杀死php-cgi进程,php就不能运行了。(PHP-FPM和Spawn-FCGI就没有这个问题,守护进程会平滑从新生成新的子进程。)
  • PHP-FPMPHP-FPM是一个PHP FastCGI管理器,是只用于PHP的,可以在 http://php-fpm.org/download下载得到。

    PHP-FPM其实是PHP源代码的一个补丁,旨在将FastCGI进程管理整合进PHP包中。必须将它patch到你的PHP源代码中,在编译安装PHP后才可以使用。

    现在我们可以在最新的PHP 5.3.2的源码树里下载得到直接整合了PHP-FPM的分支,据说下个版本会融合进PHP的主分支去。相对Spawn-FCGI,PHP-FPM在CPU和内存方面的控制都更胜一筹,而且前者很容易崩溃,必须用crontab进行监控,而PHP-FPM则没有这种烦恼。

    PHP5.3.3已经集成php-fpm了,不再是第三方的包了。PHP-FPM提供了更好的PHP进程管理方式,可以有效控制内存和进程、可以平滑重载PHP配置,比spawn-fcgi具有更多有点,所以被PHP官方收录了。在./configure的时候带 –enable-fpm参数即可开启PHP-FPM。

    具体可参考:什么是CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI?


    版权声明:本文为博主原创文章,未经博主允许不得转载。

    以上就介绍了关于php中携带的php-fpm和php-cgi的理解纠正,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

    人气教程排行