php-fpm配置文件

## 配置php-fpm模板php

[root@localhost vhosts]# > /usr/local/php-fpm/etc/php-fpm.conf     #清空html

[root@localhost vhosts]# vim /usr/local/php-fpm/etc/php-fpm.confmysql

[global]nginx

pid = /usr/local/php-fpm/var/run/php-fpm.pidsql

error_log = /usr/local/php-fpm/var/log/php-fpm.logvim

[www]服务器

listen = /tmp/www.sock并发

user = php-fpmtcp

group = php-fpmide

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

[www1]

listen = /tmp/www1.sock

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

WEBRESOURCE90870aa34bcda303f224105024fe5

解释说明:

[global] 全局配置

pid = 进程id存放路径,必须写php所在路径

error_log = 错误日志路径,必须写php所在路径

 

[www] 资源池(支持多个池子,提供给不一样的nginx虚拟主机服务,资源平均分配)

listen = tcp、sock通讯方式(名字可自定义)

user = 用户必须存在

group = 组必须存在

;listen = 填写sock存在路径,使用.sock必须设置如下两行(/dev/shm/xxx.sock文件放入内存高并发会快)

;listen.owner = ↓

;listen.group = ↓

用来定义文件属主属组,由nginx配置文件中的user决定(为了.sock文件能够让nginx调用。不定义默认以root用户生成.sock文件,但运行时是由nginx设置的user运行,则会出现权限不够报502)

pm = dynamic 进程管理方式dynamic动态,随着访问量的增长而增长,减小而杀死空闲的进程

pm.max_children = 最大生成子进程数

pm.start_servers = 初始生成子进程数

pm.min_spare_servers = 最小空闲子进程数

pm.max_spare_servers = 最大空闲子进程数

pm.max_requests = 子进程接受php请求数,决定子进程的生命周期(最多接受的请求数,超出自动销毁,为了防止进程疲劳出现异常)

rlimit_files = 文件描述符限制

 

更加详细的解释:

动态、静态子进程pm = static/dynamic

若是选择static,则由pm.max_children指定固定的子进程数。

若是选择dynamic,则由如下参数决定:

pm.max_children ,子进程最大数

pm.start_servers ,启动时的进程数

pm.min_spare_servers ,保证空闲进程数最小值,若是空闲进程小于此值,则建立新的子进程

pm.max_spare_servers ,保证空闲进程数最大值,若是空闲进程大于此值,此进行清理

对于专用服务器,pm能够设置为static

## 检查语法

[root@localhost vhosts]# /usr/local/php-fpm/sbin/php-fpm -t

## 重启

[root@localhost vhosts]# /etc/init.d/php-fpm restart

## 查看进程

[root@localhost vhosts]# ps aux | grep php-fpm

WEBRESOURCE61b6cc685f91ee8a55960c14c0246

解释说明:

出来了两个pool,一个www,一个www1,那么默认启动20个,若是等一下子没有请求过来,空闲的话,它就会一点一点地去直接销毁、杀掉,到最后会变得愈来愈少。

启动多个池子做用:能够把不一样的域名对应不一样的池子。

## 引用php-fpm资源池

[root@localhost vhosts]# vim /usr/local/nginx/conf/vhosts/111.conf

server {

    listen 80;

    server_name 111.com;

    index index.html index.htm index.php;

    root /data/www;

 

    location ~ \.php$ {

        include fastcgi_params;

               fastcgi_pass unix:/tmp/www.sock;

        #fastcgi_pass  127.0.0.1:9000;

        fastcgi_index index.php;

        fastcgi_param SCRIPT_FILENAME /data/www$fastcgi_script_name;

    }

}

解释说明:

fastcgi_pass 上面php-fpm.conf里若是是sock,这就是sock文件,要一致,不然会502

注意:配置多个资源池listen不能相同,而且在虚拟主机解析.php文件的fastcgi_pass项配置

## 慢查询日志

mysql配置慢查询日志为了最总执行缓慢、效率低的sql语句,找到后能够针对性的调优优化;

php一样也有执行慢的程序,能够定位php脚本具体那一行执行效率慢;

[root@localhost vhosts]# vim /usr/local/php-fpm/etc/php-fpm.conf

[www]

slowlog = /usr/local/php-fpm/var/log/slow.log

request_slowlog_timeout = 1

解释说明:

在某个资源池中配置

slowlog = 慢查询日志追踪性能

request_slowlog_timeout = 配合slowlog设置过滤时间

## open_basedir

[root@localhost vhosts]# vim /usr/local/php-fpm/etc/php-fpm.conf

[www]

php_admin_value[open_basedir]=/data/www/:/tmp/

解释说明:

php_admin_value[open_basedir]=dir:dir 锁定站点访问目录,多目录用:分割

一样在某个资源池中进行配置,注意锁定目录时候请指定资源池对应的站点目录

相关文章
相关标签/搜索