iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >如何安装和配置PHP-FPM
  • 470
分享到

如何安装和配置PHP-FPM

2023-06-06 16:06:27 470人浏览 薄情痞子
摘要

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

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

php有什么用

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

作用

PHP-FPM(PHP FastCGI Process Manager)意: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有什么区别呢?

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

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

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

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

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

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

安装

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

全局配置

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

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

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

配置进程池

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

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

include=/etc/php7/php-fpm.d/*.conf

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

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

编辑保存,重启PHP-FPM主进程:

sudo systemctl restart php-fpm.service

PHP-FPM进程池的配置详情参见  http://php.net/manual/install.fpm.configuration.php

参考Company开发环境

测试环境的配置如下:

[www]user = nobody               #进程的发起用户和用户组,用户user是必须设置,group不是  nobody 任意用户group = nobodylisten = [::]:9000          #监听ip和端口,[::] 代表任意ipchdir = /app                #在程序启动时将会改变到指定的位置(这个是相对路径,相对当前路径或chroot后的“/”目录) pm = dynamic                #选择进程池管理器如何控制子进程的数量  static:  对于子进程的开启数路给定一个定的值(pm.max_children)   dynamic:  子进程的数目为动态的,它的数目基于下面的指令的值(以下为dynamic适用参数)pm.max_children = 16        #同一时刻能够存货的最大子进程的数量pm.start_servers = 4        #在启动时启动的子进程数量pm.min_spare_servers = 2    #处于空闲"idle"状态的最小子进程,如果空闲进程数量小于这个值,那么相应的子进程会被创建pm.max_spare_servers = 16   #最大空闲子进程数量,空闲子进程数量超过这个值,那么相应的子进程会被杀掉。catch_workers_output = Yes  #将worker的标准输出和错误输出重定向到主要的错误日志记录中,如果没有设置,根据FastCGI的指定,将会被重定向到/dev/null上

生产环境配置:

转发请求给PHP-FPM

nginx为例:

server {       listen       83;       server_name mobile.com;       root /app/mobile/web/;        error_page   500 502 503 504  /50x.html;        location = /50x.html {            root   /usr/share/nginx/html;        }        location / {                index  index.html index.htm index.php;                # Redirect everything that isn't a real file to index.php                try_files $uri $uri/ /index.php$is_args$args;        }        #把HTTP请求转发给PHP-FPM进程池处理        location ~ .*\.php                 include fastcgi_params;                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;                fastcgi_pass   192.168.33.30:9000;      #监听9000端口                fastcgi_index  index.php;                try_files $uri =404;                #include fastcgi.conf;        }        location ~ /\.(ht|svn|git) {                deny all;        }        access_log  /app/wwwlogs/access.log;        error_log   /app/wwwlogs/error.log;}

思考

PHP-FPM最大进程数、nginx并发数(nginx只是充当代理服务器的角色)、内存的占用、cpu的开销

服务器的QPS(每秒处理请求数) = 平均请求连接数*(1/响应时间);

并发量 = 有效时间*QPS;

  • 解决:

  1. 加机器分流

    • 根据并发量计算需加机器

  2. 增加单机新能

    • 开启php的opcache,增加内存空间

    • 缓存系统

    • sql优化

    • php优化
      ...

如果你能读到这里,小编希望你对“如何安装和配置PHP-FPM”这一关键问题有了从实践层面最深刻的体会,具体使用情况还需要大家自己动手实践使用过才能领会,如果想阅读更多相关内容的文章,欢迎关注编程网PHP编程频道!

--结束END--

本文标题: 如何安装和配置PHP-FPM

本文链接: https://www.lsjlt.com/news/247909.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何安装和配置PHP-FPM
    本文将为大家详细介绍“如何安装和配置PHP-FPM”,内容步骤清晰详细,细节处理妥当,而小编每天都会更新不同的知识点,希望这篇“如何安装和配置PHP-FPM”能够给你意想不到的收获,请大家跟着小编的思路慢慢深入,具体内容如下,一起去收获新知...
    99+
    2023-06-06
  • nginx+php-fpm的安装和配置
    环境         虚拟机:VMware 16.2.4         OS:centos 7.6         远程连接工具:Xshell 7         nginx版本: nginx-1.14.2         php版本:p...
    99+
    2023-09-12
    服务器 nginx php linux
  • nginx php-fpm安装配置
    nginx php-fpm安装配置 nginx本身不能处理PHP,它只是个web服务器,当接收到请求后,如果是php请求,则发给php解释器处理,并把结果返回给客户端。 nginx一般是把请求发fas...
    99+
    2023-09-02
    nginx php 运维
  • linux上如何安装php5.6和php-fpm
    本篇内容介绍了“linux上如何安装php5.6和php-fpm”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!先决条件在安装PHP 5.6和...
    99+
    2023-07-05
  • php如何安装fpm扩展
    这篇文章主要介绍“php如何安装fpm扩展”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“php如何安装fpm扩展”文章能帮助大家解决问题。php安装fpm扩展的方法:1、通过“wget”命令安装ph...
    99+
    2023-07-05
  • php7中php-fpm如何安装
    这篇文章主要讲解了“php7中php-fpm如何安装”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php7中php-fpm如何安装”吧!php7中php-fpm安装配置的方法:1、安装PHP...
    99+
    2023-06-22
  • 怎么配置nginx和php-fpm
    这篇文章主要讲解了“怎么配置nginx和php-fpm”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么配置nginx和php-fpm”吧!在php7中,最不可少的就是nginx和php-f...
    99+
    2023-06-20
  • 如何在nginx中安装 php-fpm
    如何在nginx中安装 php-fpm?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。   Linux下安装php环境并且配置Nginx支持p...
    99+
    2023-06-15
  • 详解如何安装和配置Apache和PHP
    Apache和PHP是Web开发中必不可少的两个关键组件,他们的安装配置非常重要。下面我们将详细讲解如何安装和配置Apache和PHP。一、Apache的安装配置Apache是一个开源的HTTP服务器软件,可以在多种操作系统上运行,如Win...
    99+
    2023-05-14
  • Lunix如何安装和配置PHP环境
    本篇内容主要讲解“Lunix如何安装和配置PHP环境”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Lunix如何安装和配置PHP环境”吧!步骤一:安装 Apache首先,你需要安装 Apache...
    99+
    2023-07-06
  • Centos7安装php-fpm
    目录 第一步:查看系统IP地址和网卡名称 第二步:更改网络配置模式 第三步、重启network 查看iptablies ,将第十行,十一行删除 第四步:关闭config 第五步:创建nginx 文件夹 查看目录下的文件 进入nginx文件夹...
    99+
    2023-10-18
    nginx php-fpm 环境搭建
  • Windows和Linux上如何配置安装php
    这篇文章主要介绍“Windows和Linux上如何配置安装php”,在日常操作中,相信很多人在Windows和Linux上如何配置安装php问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Windows和Lin...
    99+
    2023-07-05
  • Mac配置php-fpm
    环境 nginx:1.21.6 php:7.4.28 安装 安装nginx brew install nginx  nginx命令生效 vim ~/.bash_profile # 添加一行 export PATH="$(bre...
    99+
    2023-09-02
    php 开发语言 nginx macos
  • php5.6中php-fpm如何编译安装
    小编给大家分享一下php5.6中php-fpm如何编译安装,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!php5.6 php-fpm编译安装的方法:1、安装php...
    99+
    2023-06-22
  • 编译安装apache和php如何配置安装目录
    本篇内容介绍了“编译安装apache和php如何配置安装目录”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、前置条件在进行Apache与P...
    99+
    2023-07-05
  • linux如何使用yum安装php-fpm
    本文小编为大家详细介绍“linux如何使用yum安装php-fpm”,内容详细,步骤清晰,细节处理妥当,希望这篇“linux如何使用yum安装php-fpm”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。什么是PH...
    99+
    2023-07-05
  • Linux系统安装nginx和php-fpm
    Linux系统安装nginx和php-fpm 安装nginx 步骤 安装epel源 yum -y install epel-release 安装nginx yum -y install nginx 启...
    99+
    2023-09-04
    nginx 运维
  • php如何安装配置curl
    这篇文章主要介绍了php如何安装配置curl,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。首先将PHP安装目录下的php_curl.dll、libeay32.dll和ssle...
    99+
    2023-06-14
  • nginx、php-fpm和mysql的用户权限如何配置
    这篇文章主要介绍了nginx、php-fpm和mysql的用户权限如何配置的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇nginx、php-fpm和mysql的用户权限如何配置文章都会有所收获,下面我们一起来看...
    99+
    2023-07-02
  • windows下如何安装和配置php环境
    这篇文章主要讲解了“windows下如何安装和配置php环境”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“windows下如何安装和配置php环境”吧!下载PHP安装包首先,你需要从PHP官...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作