php-fpm参数详解

                                          php-fpm参数详解

欢迎关注我的公众号《pencil带你玩转Linux》,回复“Linux学习资料”获取视频教程哦。

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

pid = /var/run/php-fpm/php-fpm.pid                                       #设置pid文件的位置,默认目录路径 /usr/local/php/var

error_log = /var/log/php-fpm/php-fpm.log                             #设置错误日志文件存放路径 ,默认目录路径 /usr/local/php/var

;syslog.facility = daemon                                                      #用于指定什么类型的程序日志消息。

;syslog.ident = php-fpm                                             #用于FPM多实例甄别

log_level = warning                                                              #记录日志的等级,默认notice,可取值alert, error, warning, notice,                                                                                                    debug

;emergency_restart_threshold = 0                                   # 如果子进程在这个时间段内带有IGSEGVSIGBUS退出,则重启 fpm,默认0表示关闭这个功能       

;emergency_restart_interval = 0                                    #设置时间间隔来决定服务的初始化时间(默认单位:s秒),可选s秒,m分,h时,d天

;process_control_timeout = 0                                     #子进程等待master进程对信号的回应(默认单位:s秒),可选s秒,m分,h时,d天

 ; process.max = 128                                      #控制最大进程数,使用时需谨慎

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

;daemonize = yes                                    #将fpm转至后台运行,如果设置为“no”,那么fpm会运行在前台

;rlimit_files = 1024                         #设置主进程文件描述符rlimit的数量
;rlimit_core = 0                           #设置主进程rlimit最大核数
events.mechanism = epoll                       #使用处理event事件的机制, epool进程多路复用

;systemd_interval = 10                                                      #使用 systemd 集成的 FPM 时,设置间歇秒数,报告健在通知给 systemd。 设置为 0 表示禁用。默认值:10。

[www]

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

user = www                               # 进程的发起用户和用户组,用户user是必须设置,group不是
group = www
listen = 127.0.0.1:9000                       #监听ip和端口
;listen = /dev/shm/php-fpm.sock                    #设置接受 FastCGI 请求的地址。可用格式                                                   为:'ip:port','port','/path/to/unix/socket'。每个进程池都需要设置。
listen.backlog = 8192                         #设置listen(2)函数backlog,默认65535

listen.owner = www                                                             #如果使用了 Unix 套接字,表示它的权限。在 Linux 中必须设置读/写                                                                                                 权限,以便用于 WEB 服务器连接。 在很多 BSD 派生的系统中可以                                                                                                 忽略权限允许自由连接。 默认值:运行所使用的用户和组,权限为                                                                                                  0660。

listen.group = www                                                           #参见 listen.owner

;listen.mode=0660                                                             #参见 listen.owner

;listen.acl_users =                                                          #当系统支持 POSIX ACL(Access Control Lists)时,可以设置使用此选项。 当设置了的时候,将会忽略 listen.owner 和 listen.group。 值是逗号分割的用户名列表。 PHP 5.6.5 起可用。

;listen.acl_groups =                                                         #参见 listen.acl_users。 值是逗号分割的用户组名称列表。 PHP 5.6.5 起可用。

;listen.allowed_clients = 127.0.0.1                                        #允许FastCGI客户端连接的IPv4地址,多个地址用','分隔,为空则允许任何地址发来链接请求 ;

;process.priority = -19

pm = static                                      #选择进程池管理器如何控制子进程的数量   static:  对于子进程的开启数路给定一个锁定的值(pm.max_children)   dynamic:  子进程的数目为动态的,它的数目基于下面的指令的值(以下为dynamic适用参数)

pm.max_children  = 300                                                #同一时刻能够存货的最大子进程的数量,ps -ef | grep php-fpm | grep -v 'grep' | grep -v 'master' ,将会看到300个php-fpm进程

pm.start_servers = 50                            #在启动时启动的子进程数量
pm.min_spare_servers = 50                        #处于空闲"idle"状态的最小子进程,如果空闲进程数量小于这个值,那么相应的子进程会被创建
pm.max_spare_servers =                           #50 最大空闲子进程数量,空闲子进程数量超过这个值,那么相应的子进程会被杀掉。
;pm.process_idle_timeout = 10s;                #空闲进程超时时间
;pm.max_requests = 10240                     #在派生新的子进程前,每一个子进程应该处理的请求数目,在第三方库中解决内存溢出很有用,设置为0则不会限制,默认500
;pm.status_path = /ping        配置一个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时)
;ping.response = pong                         #用于定制平请求的响应,响应的格式text/plain(对200响应代码)
;access.log = log/$pool.access.log
;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%"

slowlog = /var/log/php-fpm/$pool.log.slow                  #用于记录慢查询的日志

request_slowlog_timeout = 5                               # 慢日志请求超时时间,对一个php程序进行跟踪。 request_terminate_timeout = 0                         #终止请求超时时间,在worker进程被杀掉之后,提供单个请求的超时间隔。由于某种原因不停止脚本执行时,应该使用该选项,0表示关闭不启用   (在php.ini中,max_execution_time 一般设置为30,表示每一个脚本的最大执行时间)

;rlimit_files = 1024                    #设置打开文件描述符的限制
;rlimit_core = 0                       #设置内核对资源的使用限制,用于内核转储
;chroot =                          #设置chroot路径,程序一启动就将其chroot放置到指定的目录下,该指令值必须是一个绝对路径
;chdir = /var/www                      #在程序启动时将会改变到指定的位置(这个是相对路径,相对当前路径或chroot后的“/”目录)    
;catch_workers_output = yes                 #将worker的标准输出和错误输出重定向到主要的错误日志记录中,如果没有设置,根据FastCGI的指定,将会被重定向到/dev/null上
;clear_env = no                         #清理环境
;security.limit_extensions = .php .php3 .php4 .php5 #限制FPM执行解析的扩展名

还可以在为一个运行池传递附加的环境变量,或者更新 PHP 的配置值。可以在进程池配置文件中如下面的配置参数来做到:

Example #1 给运行池传递环境变量和设置 PHP 的配置值

;env[HOSTNAME] = $HOSTNAME
;env[PATH] = /usr/local/bin:/usr/bin:/bin
;env[TMP] = /tmp
;env[TMPDIR] = /tmp
;env[TEMP] = /tmp
;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com
;php_flag[display_errors] = off
;php_admin_value[error_log] = /var/log/fpm-php.www.log
;php_admin_flag[log_errors] = on
;php_admin_value[memory_limit] = 32M

PHP配置值通过 php_value 或者 php_flag 设置,并且会覆盖以前的值。请注意 disable_functions 或者 disable_classes 在 php.ini 之中定义的值不会被覆盖掉,但是会将新的设置附加在原有值的后面。

使用 php_admin_value 或者 php_admin_flag 定义的值,不能被 PHP 代码中的 ini_set() 覆盖。

详情请参考php-fpm官方文档:https://www.php.net/manual/zh/install.fpm.configuration.php

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值