如何安装和配置PHP-FPM

  介绍

本文将为大家详细介绍”如何安装和配置PHP-FPM”,内容步骤清晰详细,细节处理妥当,而小编每天都会更新不同的知识点,希望这篇“如何安装和配置PHP-FPM”能够给你意想不到的收获,请大家跟着小编的思路慢慢深入,具体内容如下,一起去收获新知识吧。

php有什么用

php是一个嵌套的缩写名称,是英文超级文本预处理语言,它的语法混合了C、Java、Perl以及php自创新的语法,主要用来做网站开发,许多小型网站都用php开发,因为php是开源的,从而使php经得久不衰。

<强>作用

PHP-FPM (php FastCGI程序经理)意:php FastCGI进程管理器,用于管理php进程池的软件,用于接受web服务器的请求。
PHP-FPM提供了更好的php进程管理方式,可以有效控制内存和进程,可以平滑重载php配置。

(1)。为什么会出现php-fpm

fpm的出现全部因为php-fastcgi出现。为了很好的管理php-fastcgi而实现的一个程序

(2)。什么是php-fastcgi

php-fastcgi只是一个cgi程序,只会解析php请求,并且返回结果,不会管理(因此才出现的php-fpm)。

(3)为什么不叫php-cgi

其实在php-fastcgi出现之前是有一个php-cgi存在的,只是它的执行效率低下,因此被php-fastcgi取代。

(4)那fastcgi和cgi有什么区别呢?

亲们,这区别就大了,当一个服务的网络服务器(nginx)分发过来请求的时候,通过匹配后缀知道该请求是个动态的php请求,会把这个请求转给php。

在cgi的年代,思想比较保守,总是一个请求过来后,去读取php . ini中里的基础配置信息,初始化执行环境,每次都要不停的去创建一个进程,读取配置,初始化环境,返回数据,退出进程,久而久之,启动进程的工作变的乏味无趣特别累。

当php来到了5的时代,大家对这种工作方式特别反感,想偷懒的人就拼命的想,我可不可以让cgi一次启动一个主进程(主),让他只读取一次配置,然后在启动多个工作进程(工人),当一个请求来的时候,通过大师传递给工人这样就可以避免重复劳动了。于是就产生了fastcgi。

(5) fastcgi这么好,启动的工人用完怎么办?
当工人不够的时候,主人会通过配置里的信息,动态启动工人,等空闲的时候可以收回工人

(6)到现在还是没明白php-fpm是个什么东西?
就是来管理启动一个主进程和多个工人进程的程序。

PHP-FPM会创建一个主进程,控制何时以及如何将HTTP请求转发给一个或多个子进程处理.PHP-FPM主进程还控制着什
么时候创建(处理网络应用更多的流量)和销毁(子进程运行时间太久或不再需要了)
PHP子进程.PHP-FPM进程池中的每个进程存在的时间都比单个HTTP请求长,可以处
理10,50100500年或更多的HTTP请求。

<强>安装

PHP在5.3.3之后已经把PHP-FPM并入到PHP的核心代码中了。所以PHP-FPM不需要单独的下载安装。
要想PHP支持PHP-FPM,只需要在编译PHP源码的时候带上——enable-fpm就可以了。

<强>全局配置

在Centos中,PHP-FPM的主配置文件是/etc/php7/php-fpm.参看。

指定一段时间内有指定个子进程失效了,PHP-FPM重启:

#在指定的一段时间内,如果失效的PHP-FPM子进程数超过这个值,PHP-FPM主进程将优雅重启。   emergency_restart_threshold =10      #设定emergency_restart_interval 设置采用的时间跨度。   emergency_restart_interval =, 1 m

<强>配置进程池

PHP-FPM配置文件其余的内容是一个名为池定义的区域。这个区域里的配置用户设置每个PHP-FPM进程池.PHP-FPM进程池中是一系列相关的PHP子进程。<标记>通常一个PHP应用有自己一个进程池

Centos在PHP-FPM主配置文件的顶部引入进程池定义文件:

包括=/etc/php7/php-fpm.d/* . conf

www.conf是PHP-FPM进程池的默认配置文件。

用户=,没人   #拥有这个,PHP-FPM进程池中子进程的系统用户。要把这个设置的值设用的非根用户的用户名。      group =没人   #拥有这个,PHP-FPM进程池中子进程的系统用户组。要把这个设置的值设应用的非根用户所属的用户组名。      听=[:]]:9000   # PHP-FPM进程池监听的IP地址和端口号,让,PHP-FPM只接受,nginx从这里传入的请求。      只听allowed  clients =127.0.0.1   #可以向这个,PHP-FPM进程池发送请求的IP地址(一个或多个)。      pm.max  children =51   #这个设置设定任何时间点,PHP-FPM进程池中最多能有多少个进程。这个设置没有绝对正确的值,你应该测试你的PHP应用,确定每个PHP进程需要使用多少内存,然后把这个设置设为设备可用内存能容纳的PHP进程总数。对大多数中小型PHP应用来说,每个PHP进程要使用5 ~ 15 mb内存(具体用量可能有差异)只假设我们使用设备为这个PHP-FPM进程池分配了512 mb可用内存,那么可以把这个设置设为512 mb(总内存)/(每个进程使用10 mb),=, 51个进程。      …

如何安装和配置PHP-FPM