php-fpm.conf 配置详解

简单介绍下 php-fpm 配置意思,并不做任何优化相关建议。
[php 官方手册关于 php-fpm 的介绍](http://php.net/manual/zh/install.fpm.configuration.

pid设置,该文件存放 php7.0-fpm 的进程 id
pid = /run/php/php7.0-fpm.pid

错误日志的位置
error_log = /var/log/php7.0-fpm.log

系统日志的调用类型,如下默认为 damon

  1. auth /* security/authorization messages */
  2. authpriv /* security/authorization messages (private) */
  3. cron /* clock daemon */
  4. daemon /* system daemons */
  5. ftp /* ftp daemon */
  6. kern /* kernel messages */
  7. lpr /* line printer subsystem */
  8. mail /* mail system */
  9. mark /* INTERNAL */
  10. news /* network news subsystem */
  11. security /* DEPRECATED */
  12. syslog /* messages generated internally by syslogd */
  13. user /* random user-level messages */
  14. uucp /* UUCP subsystem */

;syslog.facility = dameon

syslog_ident 会被添加到每条日志消息的前面,通常设置为记录该日志程序的名字
;syslog.ident = php-fpm

错误级别. php-fpm.log纪录的等级。可用级别为: alert(必须立即处理), error(错误情况), warning(警告情况), notice(一般重要信息), debug(调试信息). 默认: notice.
log_level = notice

emergency_restart_interval所设值内出现SIGSEGV或者SIGBUS错误的php-cgi进程数如果超过 emergency_restart_threshold个,php-fpm就会优雅重启。这两个选项一般保持默认值。0 表示 '关闭该功能'. 默认值: 0 (关闭).
SIGSEGV 无效的内存引用,可能是内存地址和合法导致的;SIGBUS通常是由 内存地址未对齐导致的(可以通过man 7 signal可以查看所有信号)

;emergency_restart_threshold = 0
;emergency_restart_interval = 0

设置子进程接受主进程复用信号的超时时间. 可用单位: s(秒), m(分), h(小时), 或者 d(天) 默认单位: s(秒). 默认值: 0.
;process_control_timeout = 0

动态方式下开启的php-fpm进程的最大数量
;process.max = 128

处理nice(2)的进程优先级别-19(最高)到20(最低)
;process.priority = -19

设置 fpm 在后台运行
daemonize = yes

设置主进程文件描述符rlimit的数量
;rlimit_files = 1024

设置主进程文件描述符rlimit最大核数
;rlimit_core = 0

处理 event 事件的机制,默认会自动选择
;events.mechanism = epoll

fpm 健康检查间隔
;systemd_interval = 10

如果没有制定,将用全局 prefix 替代
;prefix = /path/to/pools/$pool 如果没有制定,将使用全局prefix替代

启动进程的用户和用户组,FPM 进程运行的Unix用户, 必须要设置

user = www-data
group = www-data

接受 FatCGI 请求的地址
listen = /run/php/php7.0-fpm.sock

当有客户端(比如nginx)有请求时,空闲子进程会自己去accept,如果子进程全部处于忙碌状态,新进的待accept的连接会被master放进队列里,等待fpm子进程空闲;这个存放待accept的半连接的队列有多长,就是由这个参数设置的
;listen.backlog = -1

监听进程的用户和组

listen.owner = www-data
listen.group = www-data
;listen.mode = 0660

允许监听的客户端 ip
listen.allowed_clients = 127.0.0.1

php-fpm进程启动模式,pm可以设置为static和dynamic和ondemand
static:对于子进程的开启数路给定一个锁定的值(pm.max_children)
dynamic:子进程的数目为动态的,它的数目基于下面的指令的值
pm.max_children: 同一时刻能够存货的最大子进程的数量
pm.start_servers: 在启动时启动的子进程数量
pm.min_spare_servers: 处于空闲"idle"状态的最小子进程,如果空闲进程数量小于这个值,那么相应的子进程会被创建
pm.max_spare_servers: 最大空闲子进程数量,空闲子进程数量超过这个值,那么相应的子进程会被杀掉。
ondemand: 在启动时不会创建,只有当发起请求链接时才会创建(pm.max_children,pm.process_idle_timeout)

pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
pm.process_idle_timeout = 10s #ondemand 空闲进程超市时间
pm.max_requests = 500  #在派生新的子进程之前,每个子进程应该处理的请求数目

配置一个URI,以便查看fpm状态页
状态页描述:
  accepted conn: 该进程池接受的请求数量
  pool: 进程池的名字
  process manager: 进程管理,就是配置中pm指令,可以选择值static,dynamic,ondemand
  idle processes: 空闲进程数量
  active processes: 当前活跃的进程数量
  total processes: 总的进程数量=idle+active
  max children reached: 达到最大子进程的次数,达到进程的限制,当pm试图开启更多的子进程的时候(仅当pm工作在dynamic时)
;pm.status_path = /status

FPM 监控页面的ping网址。可以用于外部检测 fpm 是否存活并且可以相应请求,必须以斜线(/)开头。
ping.path = /ping

用于定义 ping 请求的返回相应,返回 http 200 的格式文本
ping.response = pong

请求的访问日志
access.log = log/$pool.access.log

设定访问日志的格式,相对比于nginx 的 access.log,此日志记录的信息更利于做性能上的分析,可以记录 cpu, memory,time 
access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%"

用于记录慢请求
;slowlog = log/$pool.log.slow

慢日志请求超时时间
;request_slowlog_timeout = 0

终止请求超时时间,在 worker 进程杀掉之后,提供单个请求的超时时间
;request_terminate_timeout = 0

设置文件打开描述符的rlimit限制. 默认值: 系统定义值默认可打开句柄是1024
;rlimit_files = 1024

设置内核对资源的使用限制,用于内核转储
;rlimit_core = 0

启动时的chroot目录. 所定义的目录需要是绝对路径. 如果没有设置, 则chroot不被使用.
更改linux系统的根 (root) 目录,系统读取到的目录和文件将不在是旧系统根下,而是新根下,那么这样就可以增强系统的安全性
;chroot =

设置启动目录,启动时会自动chdir到该目录. 所定义的目录需要是绝对路径. 默认值: 当前目录,或者/目录(chroot时)
;chdir = /var/www

重定向运行过程中的stdout和stderr到主要的错误日志文件中. 如果没有设置, stdout 和 stderr 将会根据FastCGI的规则被重定向到 /dev/null
;catch_workers_output = yes

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容