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

yizhihongxing

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日

相关文章

  • PHP获取时间戳、获取天周月的起始时间、指定时间所在周、指定时间的各个周等相关函数

    一、时间戳和日期互相转换 // 获取时间戳 $date = time(); // 获取当前时间戳 $date = mktime(0, 0, 0, 10, 10, 2020); // 获取指定时间的时间戳 2020年10月10日0时0分0秒 // 日期转换为时间戳 $date = “2019-08-08 08:08:08”; $timestamp = strt…

    PHP 2023年5月4日
    00
  • PHP编程中八种常见的文件操作方式

    PHP编程中八种常见的文件操作方式 介绍 在PHP编程中,文件操作是一项至关重要的任务。PHP语言提供了多种方法和函数,方便程序员对文件进行读写、创建、删除和修改等操作。以下是八种常见的文件操作方式: 打开文件 读取文件内容 写入文件内容 关闭文件 创建文件 删除文件 修改文件权限 获取文件详细信息 打开文件 PHP提供了fopen()函数来打开文件,该函数…

    PHP 2023年5月23日
    00
  • PHP中使用gettext来支持多语言的方法

    当我们开发一个网站时,通常需要支持多语言,以满足国际化的需求。本文将介绍如何使用PHP中的gettext函数来支持多语言,包括使用步骤和具体应用。具体步骤如下: 1. 安装gettext扩展 首先需要确保服务器中安装了gettext扩展,在Linux中使用以下命令进行安装: sudo apt-get install php-gettext 2. 准备语言包 …

    PHP 2023年5月26日
    00
  • 无JS,完全php面向过程数据分页实现代码

    下面是无JS、完全php面向过程数据分页实现代码的攻略: 1. 概述 本文介绍如何使用完全php面向过程实现无JS的数据分页功能。在网页开发中,数据分页是一个非常基础且常用的功能,用于分页展示大量数据,提高用户的体验感。通常情况下,我们可以使用JavaScript等前端语言来实现数据分页功能。但是,如果我们想要实现纯后端的数据分页,则需要使用php等服务器端…

    PHP 2023年5月27日
    00
  • 深入了解PHP中的Array数组和foreach

    深入了解PHP中的Array数组和foreach 在PHP语言中,数组是一种非常有用的数据类型,它可以存储多个值,并通过单个变量访问这些值。对于PHP程序员来说,深入了解数组和foreach语句的使用是非常重要的。 数组的创建和基本操作 创建一个数组可以使用array()函数,也可以使用方括号[]表示法。例如: // 使用array()函数创建数组 $arr…

    PHP 2023年5月26日
    00
  • php.ini 配置心得(上传等限制)

    简介 在 PHP 中,php.ini 配置文件是非常重要的一个文件,它可以设置 PHP 各种参数、限制和扩展等。本文将为大家详细讲解 php.ini 配置文件中上传等限制的设置方法及其示例说明。 文件上传限制设置 在 php.ini 配置文件中,有三个参数与上传文件大小相关,分别是: upload_max_filesize:上传文件的最大限制,默认值为 2M…

    PHP 2023年5月27日
    00
  • php 的反射详解及示例代码

    PHP的反射(Reflection)是PHP自带的一个非常强大的功能,通过反射,我们可以实现动态获取信息、调用执行、重载、修改、继承等众多功能。反射机制需要我们对类或对象进行分析,以便获取它们的构造方法、属性、方法、常量等等信息。 反射的基础 反射主要涉及以下几个类: ReflectionClass:反射类。 ReflectionMethod:反射方法。 R…

    PHP 2023年5月30日
    00
  • php实现字符串反转输出的方法

    下面是详细讲解PHP实现字符串反转输出的方法的完整攻略。 标准解法 在PHP中,我们可以用内置函数 strrev() 来实现字符串的反转。 $str = "Hello World!"; $reversedStr = strrev($str); echo $reversedStr; // 输出 "!dlroW olleH&quot…

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