php配置php-fpm启动参数及配置详解

PHP配置php-fpm启动参数及配置详解

php-fpm是什么?

PHP-FPM(FastCGI Process Manager for PHP)是 PHP 官方针对 FastCGI 协议的 PHP 处理程序管理器,是基于 FastCGI 的进程管理器,可以独立于 Web 服务器(如 nginxapache)运行。PHP-FPM 可以更好的管理 PHP 请求,提高服务器处理并发能力,是 PHP 处理程序的重要选择。

php-fpm常见配置项解析

pool配置参数

php-fpm 可以配置多个 pool,每个 pool 都有自己的配置,以下是常见的配置项:

  • listen:监听地址(默认 ip:port 或者是 socket 形式)
  • listen.allowed_clients:允许访问的 IP 地址白名单
  • user:执行进程的用户
  • group:执行进程的用户组
  • pm:php-fpm 管理工作进程的方式

以下是 pm 值的不同取值:

  • dynamic:动态管理,由 pm.max_children、pm.start_servers 等参数控制
  • ondemand:按需管理,由 pm.process_idle_timeout、pm.max_requests 等参数控制
  • static:静态,由 pm.max_children 单独控制

其他相关配置:

  • pm.max_children:子进程的最大数量
  • pm.start_servers:在启动时,通常 pm.min_spare_servers 子进程被创建,并且一直运行到有空闲池中的空间为止(默认值:5),用于动态模式。
  • pm.min_spare_servers:保证有空闲进程可用于立即处理请求,防止启动子进程时等待较长时间(默认值:2),用于动态模式。
  • pm.max_spare_servers:保证有空闲进程可用于立即处理请求,但是限制最多可以创建多少个进程(默认值:8),用于动态模式。
  • pm.process_idle_timeout:在 static 和 ondemand 模式下使用,控制终止空闲进程的时间(默认值:10s)
  • pm.max_requests:每个子进程相对应的请求数,达到该值会杀掉该子进程,然后由管理进程创建一个新的子进程(默认值:0,表示不限制)

全局配置参数

php-fpm 运行在特定用户权限下,这个用户需要具备执行 PHP 脚本的权限,在环境变量和进程切换时进行 ,可以对全局配置进行调整,例如:

  • pid:进程文件存放路径(默认值:/run/php-fpm/php-fpm.pid)
  • error_log:错误日志输出路径
  • syslog.facility:通过 syslog 输出的日志的 facility(默认是 daemon)
  • syslog.ident:syslog 标识符(默认是 php-fpm 开头)

更多配置项

在 php.ini 文件中可以设置许多 PHP 程序运行的详细配置项,可以对与实现 PHP 的 Web 服务器进行修改,例如:

  • memory_limit:控制 PHP 程序使用内存的上限
  • post_max_size:POST 数据的最大值
  • upload_max_filesize:上传文件的最大值
  • max_execution_time:单个 PHP 页面的超时时间

示例1:创建一个名为 test 的 PHP pool

以下为示例配置:

[test]
listen=/run/php-fpm/test.sock
user=webuser
group=webusergroup
pm=dynamic
pm.max_children=50
pm.start_servers=5
pm.min_spare_servers=2
pm.max_spare_servers=8
pm.process_idle_timeout=10s
pm.max_requests=0
  • 将该文件保存为 /etc/php-fpm.d/test.conf
  • 确保监听地址处于 listen.allowed_clients 白名单范围内。
  • 重启 PHP-FPM 进程。

示例说明:

该示例中我们创建了一个名为 test 的 PHP pool 并定义了以下参数:

  • 用 socket 形式监听的地址:/run/php-fpm/test.sock
  • 运行 PHP 代码的操作系统用户为 webuser,操作系统组为 webusergroup
  • 使用动态管理方式,最多有 50 个子进程,启动时创建 5 个子进程。
  • 最少保证至少有 2 个空闲进程可用于处理请求,并限制最大空闲进程数量为 8 个。
  • 在 10 秒内没有请求时,杀死空闲进程,可用于 ondemand 模式。
  • 不限制子进程请求数量(0)。

示例2:修改 upload_max_filesize 配置

php.ini 文件中修改以下变量:

upload_max_filesize=20M

示例说明:

该示例中我们将 upload_max_filesize 的值更改为 20M。这表示客户端上传到 Web 服务器的文件大小不能超过 20MB。

结语

以上就是关于 PHP 配置 php-fpm 启动参数及配置详解的攻略。PHP-FPM 是我们优化 PHP 性能的一个重要手段,掌握了这些配置项的含义和使用,可以帮助我们更高效、更稳定地运行 PHP 应用程序。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:php配置php-fpm启动参数及配置详解 - Python技术站

(0)
上一篇 2023年5月24日
下一篇 2023年5月24日

相关文章

  • golang与php实现计算两个经纬度之间距离的方法

    当我们需要计算两个经纬度之间的距离时,有多种编程语言和算法可以选择,其中Go和PHP都提供了比较简便的方法,下面我会详细讲解它们的实现方法。 Go语言实现 Go语言没有提供直接计算经纬度距离的函数,但它有一个内置的 math 包,提供了一个函数 math.Sin(),可以帮助我们计算一个角度的正弦值,而这个值可以根据地球半径和纬度差、经度差来计算出两点之间的…

    PHP 2023年5月26日
    00
  • php mb_substr()函数截取中文字符串应用示例

    PHP mb_substr()函数截取中文字符串应用示例 介绍 mb_substr() 函数用于截取多字节字符串的一部分。其语法如下: mb_substr(string $str, int $start, int|null $length=null, string $encoding=null): string|false $str:要截取一部分的字符串。 …

    PHP 2023年5月26日
    00
  • 微信小程序-form表单提交代码实例

    微信小程序-form表单提交代码实例攻略 在微信小程序中,我们可以使用form表单来收集用户的信息,并将其提交到指定的接口进行处理。本文将详细讲解如何创建和使用form表单,在提交数据时如何处理和验证数据,以及如何处理提交的结果。 创建form表单 要创建一个form表单,我们需要在wxml文件中使用form标签,例如: <form bindsubmi…

    PHP 2023年5月23日
    00
  • win7 64位系统 配置php最新版开发环境(php+Apache+mysql)

    本文将为大家详细讲解“win7 64位系统 配置php最新版开发环境(php+Apache+mysql)”的完整攻略。 前置条件 在开始配置前,需要确保你已经安装了以下两个软件: Microsoft Visual C++ Redistributable for Visual Studio。下载时请根据你的操作系统版本和位数选择合适的版本。 Microsoft…

    PHP 2023年5月24日
    00
  • 让KYLIN2.1默认自带的APACHE支持PHP

    要让 Kylin2.1 默认自带的 Apache 支持 PHP,需要进行以下步骤: 安装 PHP 在终端中输入以下命令: sudo apt-get install php php-common libapache2-mod-php 该命令会安装最新版的 PHP 和 Apache 的 PHP 模块。 配置 Apache 在终端中输入以下命令: sudo nan…

    PHP 2023年5月30日
    00
  • 在CentOS服务器上安装配置LEMP的详细教程

    下面给您详细讲解在CentOS服务器上安装配置LEMP的详细教程。 安装Nginx 更新yum软件包列表:sudo yum update 安装nginx:sudo yum install nginx 启动nginx服务:sudo systemctl start nginx 示例说明:例如您想要将一个简单的HTML网站部署到CentOS服务器上,可以将HTML…

    PHP 2023年5月24日
    00
  • php删除数组指定元素实现代码

    下面我就来详细讲解一下“php删除数组指定元素实现代码”的完整攻略。 一、php删除数组指定元素的实现方法 1. 使用unset函数删除数组指定元素 在php中,我们可以使用unset函数来删除数组中的指定元素。unset函数可以接受一个或多个参数,每个参数可以是字符串、变量名或数组元素。若参数是一个数组元素,那么该元素会被删除掉。 以下是使用unset函数…

    PHP 2023年5月26日
    00
  • php让图片可以下载的代码第1/2页

    下面是关于“php让图片可以下载的代码第1/2页”的完整攻略: 1. 确定下载图片的URL 首先,你需要确定要下载图片的URL。可以通过获取用户上传的文件名、路径来确定,也可以直接在后台管理系统中手动输入URL。 2. 使用PHP编写文件下载代码 要使用PHP编写文件下载代码,首先需要发送文件类型的头信息,以告诉浏览器将要下载的文件是什么类型的文件。接着,通…

    PHP 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部