php-fpm

文章目录

        • php-fpm的pool
        • php-fpm的慢执行日志

  • php-fpm 的配置文件都放在/usr/local/php-fpm/etc/php-fpm php-fpm.conf内

php-fpm的pool

  • php-fpm pool是 php-fpm 的进程池,这个进程池中运行了多个子进程,用来并发处理所有连接的动态请求。为什么要配置多个 pool ?Nginx 接收到 php 动态请求会传给 php-fpm 处理,php-fpm 调用 pool 中的子进程来处理动态请求,如果这个 pool 资源耗尽,会导致其他站点无法访问资源,报 502 错误,因此有必要设置多个 php-fpm pool。
    Nginx可以配置多个主机,php-fpm也可以配置多个pool。
  • 首先对php-fpm.conf做一个修改
  • #vim /usr/local/php-fpm/etc/php-fpm.conf
    include = etc/php-fpm.d/*.conf
    在这里插入图片描述
    include这行比较特殊,后面路径必须写上etc目录
  • 然后创建配置文件目录和子配置文件:
  • #mkdir /usr/local/php-fpm/etc/php-fpm.d
  • #cd /usr/local/php-fpm/etc/php-fpm.d
  • #vim www.conf
    [www]
    listen = /tmp/php-fcgi.sock
    listen.mode = 666
    user = php-fpm
    group = php-fpm
    pm = dynamic
    pm.max_children = 50
    pm.start_servers = 20
    pm.min_spare_servers = 5
    pm.max_spare_servers = 35
    pm.max_requests = 500
    rlimit_files = 1024
  • //第一行定义php-fpm的子进程启动模式,dynamic为动态模式
    //第二行定义动态增加或减少的量不会超过设定的值
    //第三行是针对dynamic模式,他定义php-fpm服务在启动服务时产生的子进程数量
    //第四行是针对dynamic模式,他定义空闲时子进程数最少数量,若达到数值会派生新的子进程
    //第五行是针对dynamic模式,他定义空闲时子进程数最多数量,若高于数值会开始清理空闲的子进程
    //第六行是针对dynamic模式,他定义一个子进程最多处理的请求数,若达到数额会自动退出
  • 保存后再编辑另外的配置文件:
  • #vim aming.conf
    //写下如下内容
    [aming]
    listen = /tmp/aming.sock
    listen.mode = 666
    user = php-fpm
    group = php-fpm
    pm = dynamic
    pm.max_children = 50
    pm.start_servers = 20
    pm.min_spare_servers = 5
    pm.max_spare_servers = 35
    pm.max_requests = 500
    rlimit_files = 1024
  • 下面验证配置是否有问题
  • #/usr/local/php-fpm/sbin/php-fpm -t
  • #/etc/init.d/php-fpm restart
    然后来重启一下php-fpm服务
  • #ls /tmp/ * .sock
    再来查看一下/tmp/*.sock
    在这里插入图片描述
  • # ps aux |grep php
    php-fpm_第1张图片

php-fpm的慢执行日志

  • 通过慢执行日志,我们可以清晰地了解PHP脚本在哪里执行时间长,可以定位到行

  • 下面介绍如何开启和查看慢执行日志

  • #vim /usr/local/php-fpm/etc/php-fpm.d/www.conf
    request_slowlog_timeout = 1
    slowlog = /usr/local/php-fpm/var/log/www-slow.log
    //第一行定义超时时间,即超过一秒就会被记录日志
    //第二行定义慢执行日志的路径和名字

  • # /etc/init.d/php-fpm reload

  • # ls /usr/local/php-fpm/var/log/
    在这里插入图片描述

  • 模拟一个慢执行脚本

  • # vim /data/nginx/test.com/sleep.php

  • # curl -x127.0.0.1:80 test.com/sleep.php
  • # cat /usr/local/php-fpm/var/log/www-slow.log

php-fpm_第2张图片

你可能感兴趣的:(php-fpm)