PHP-FPM 设置多pool及配置文件重写操作示例


Posted in PHP onOctober 02, 2019

本文实例讲述了PHP-FPM 设置多pool及配置文件重写操作。分享给大家供大家参考,具体如下:

重写配置文件

1、清空php配置文件

命令:> /usr/local/php/etc/php-fpm.conf

2、重新写入php-fpm配置

命令:vim /usr/local/php/etc/php-fpm.con

配置文件

# 全局配置
[global]
# PID、可以不填
pid = /usr/local/php/var/run/php-fpm.pid
# 错误日志路径、可以不填
error_log = /usr/local/php/var/log/php-fpm.log
# www虚拟主机配置、可写多个
# pool命名:www
[www]
# 监听socket方式
# 可以写成listen = 127.0.0.1:9000
listen = /tmp/php-fcgi.sock
# 开启php-fpm的执行用户
user = php-fpm
# 开启php-fpm的所属组
group = php-fpm
# 监听listen的用户,和后面的nginx的一致
listen.owner = nobody
# 监听listen的组,和后面的nginx的一致
listen.group = nobody
# 怎样的形式启用进程
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

3、测试配置文件

# 测试配置文件
/usr/local/php/sbin/php-fpm -t

测试成功:

[30-Jan-2018 23:43:32] NOTICE: configuration file /usr/local/php/etc/php-fpm.conf test is successful

4、重启动php-fpm

命令:/etc/init.d/php-fpm start

5、查看启动状况

查看启动进程

ps -aux | grep php-fpm
root   1530 0.0 0.5 32036 2928 ?    Ss  23:45  0:00 php-fpm: master process (/usr/local/php/etc/php-fpm.conf)
php-fpm  1531 0.0 0.4 32036 2512 ?    S  23:45  0:00 php-fpm: pool www
php-fpm  1532 0.0 0.4 32036 2512 ?    S  23:45  0:00 php-fpm: pool www
php-fpm  1533 0.0 0.4 32036 2512 ?    S  23:45  0:00 php-fpm: pool www
php-fpm  1534 0.0 0.4 32036 2512 ?    S  23:45  0:00 php-fpm: pool www

查看监听是否为nobody用户

ls -l /tmp/php-fcgi.sock
srw-rw-rw-. 1 nobody nobody 0 1月 30 23:45 /tmp/php-fcgi.sock

注:权限都需要有读写,nginx才可以访问到socket。

查看nginx是否调用了nobody

ps aux | grep nginx
root   1606 0.0 0.1  5352  640 ?    Ss  02:46  0:00 nginx: master process /usr/local/nginx/sbin/nginx
nobody  1607 0.0 0.3  6164 1568 ?    S  02:46  0:00 nginx: worker process
root   1609 0.0 0.1  5980  744 pts/0  S+  02:46  0:00 grep nginx

设置多个pool

需求:置两个pool,www1,www2

注:pool对应一个nginx的站点,这样可以提高安全,如同站点切割。

1、主配置文件下配置两个pool。

配置文件

# 全局配置
[global]
# PID、可以不填
pid = /usr/local/php/var/run/php-fpm.pid
# 错误日志路径、可以不填
error_log = /usr/local/php/var/log/php-fpm.log
# www虚拟主机配置、可写多个
[www1]
# 监听socket方式 可以写成127.0.0.1:9000 TCP的。
listen = /tmp/php-fcgi1.sock
# 开启php-fpm的执行用户
user = php-fpm
# 开启php-fpm的所属组
group = php-fpm
# 监听listen的用户,和后面的nginx的一致
listen.owner = nobody
# 监听listen的组,和后面的nginx的一致
listen.group = nobody
# 怎样的形式启用进程、static static静态、pm dynamic动态
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
# 定义慢日志
slowlog = /tmp/xxx_slow.log
# 处理延迟多少秒记录一次慢日志
request_slowlog_timeout = 1
# 配置隔离网站
php_admin_value[open_basedir]=/usr/local/url1:/usr/local/url2
# www虚拟主机配置、可写多个
[www2]
# 监听socket方式 可以写成127.0.0.1:9000 TCP的。
listen = /tmp/php-fcgi2.sock
# 开启php-fpm的执行用户
user = test
# 怎样的形式启用进程、static static静态、pm dynamic动态
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
# 定义慢日志
slowlog = /tmp/xxx2_slow.log
# 处理延迟多少秒记录一次慢日志
request_slowlog_timeout = 1
# 配置隔离网站
php_admin_value[open_basedir]=/usr/local/url1:/usr/local/url2

2、查看两个pool的启动进程

查看进程

ps -aux | grep php-rpm
root   2486 0.4 0.6 32240 3136 ?    Ss  09:31  0:00 php-fpm: master process (/usr/local/php/etc/php-fpm.conf)
php-fpm  2487 0.0 0.4 32036 2532 ?    S  09:31  0:00 php-fpm: pool www1
php-fpm  2488 0.0 0.4 32036 2532 ?    S  09:31  0:00 php-fpm: pool www1
php-fpm  2489 0.0 0.4 32036 2532 ?    S  09:31  0:00 php-fpm: pool www1
php-fpm  2490 0.0 0.4 32036 2532 ?    S  09:31  0:00 php-fpm: pool www1
php-fpm  2491 0.0 0.4 32036 2532 ?    S  09:31  0:00 php-fpm: pool www1
php-fpm  2492 0.0 0.4 32036 2532 ?    S  09:31  0:00 php-fpm: pool www1
test   2507 0.0 0.4 32036 2536 ?    S  09:31  0:00 php-fpm: pool www2
test   2508 0.0 0.4 32036 2536 ?    S  09:31  0:00 php-fpm: pool www2
test   2509 0.0 0.4 32036 2536 ?    S  09:31  0:00 php-fpm: pool www2
test   2510 0.0 0.4 32036 2536 ?    S  09:31  0:00 php-fpm: pool www2
test   2511 0.0 0.4 32036 2536 ?    S  09:31  0:00 php-fpm: pool www2
test   2512 0.0 0.4 32036 2536 ?    S  09:31  0:00 php-fpm: pool www2

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP中的session永不过期的解决思路及实现方法分享
Apr 20 PHP
php计算十二星座的函数代码
Aug 21 PHP
PHP命名空间(Namespace)的使用详解
May 04 PHP
php限制ip地址范围的方法
Mar 31 PHP
php筛选不存在的图片资源
Apr 28 PHP
php获取从百度、谷歌等搜索引擎进入网站关键词的方法
Jul 08 PHP
学习php设计模式 php实现状态模式
Dec 07 PHP
学习php设计模式 php实现模板方法模式
Dec 08 PHP
php接口技术实例详解
Dec 07 PHP
Yii2中hasOne、hasMany及多对多关联查询的用法详解
Feb 15 PHP
PHP读取CSV大文件导入数据库的实例
Jul 24 PHP
浅谈PHP之ThinkPHP框架使用详解
Jul 21 PHP
php实现大文件断点续传下载实例代码
Oct 01 #PHP
使用composer安装使用thinkphp6.0框架问题【视频教程】
Oct 01 #PHP
基于Laravel-admin 后台的自定义页面用法详解
Sep 30 #PHP
Laravel-admin之修改操作日志的方法
Sep 30 #PHP
laravel 字段格式化 modle 字段类型转换方法
Sep 30 #PHP
laravel-admin解决表单select联动时,编辑默认没选上的问题
Sep 30 #PHP
laravel-admin的图片删除实例
Sep 30 #PHP
You might like
php抽象类使用要点与注意事项分析
2015/02/09 PHP
Codeigniter的dom类用法实例
2015/06/26 PHP
php实现数组中索引关联数据转换成json对象的方法
2015/07/08 PHP
Thinkphp实现自动验证和自动完成
2015/12/19 PHP
在laravel5.2中实现点击用户头像更改头像的方法
2019/10/14 PHP
Yii框架安装简明教程
2020/05/15 PHP
JS 动态获取节点代码innerHTML分析 [IE,FF]
2009/11/30 Javascript
JavaScript去掉空格的方法集合
2010/12/28 Javascript
javascript 日期时间 转换的方法
2013/02/21 Javascript
详解jquery uploadify 上传文件
2013/11/09 Javascript
javaScript中两个等于号和三个等于号之间的区别介绍
2014/06/27 Javascript
深入理解requestAnimationFrame的动画循环
2016/09/20 Javascript
解决JS外部文件中文注释出现乱码问题
2017/07/09 Javascript
BootStrap中的模态框(modal,弹出层)功能示例代码
2018/11/02 Javascript
vue组件之间通信方式实例总结【8种方式】
2019/02/22 Javascript
聊聊Vue中provide/inject的应用详解
2019/11/10 Javascript
js String.prototype.trim字符去前后空格的扩展
2020/08/23 Javascript
使用python 获取进程pid号的方法
2014/03/10 Python
Win7下搭建python开发环境图文教程(安装Python、pip、解释器)
2016/05/17 Python
Flask框架的学习指南之开发环境搭建
2016/11/20 Python
python机器学习实战之K均值聚类
2017/12/20 Python
python排序函数sort()与sorted()的区别
2018/09/18 Python
Python解析Excle文件中的数据方法
2018/10/23 Python
python ChainMap 合并字典的实现步骤
2019/06/11 Python
pyqt5与matplotlib的完美结合实例
2019/06/21 Python
解决Python列表字符不区分大小写的问题
2019/12/19 Python
Python 高效编程技巧分享
2020/09/10 Python
python3访问字典里的值实例方法
2020/11/18 Python
Selenium 配置启动项参数的方法
2020/12/04 Python
html5本地存储之localstorage 、本地数据库、sessionStorage简单使用示例
2014/05/08 HTML / CSS
Free People中国官网:波西米亚风格女装服饰
2016/08/30 全球购物
高三自我鉴定范文
2013/10/19 职场文书
选秀节目策划方案
2014/06/06 职场文书
营运督导岗位职责
2015/04/10 职场文书
开学第一周总结
2015/07/16 职场文书
2016春季幼儿园大班开学寄语
2015/12/03 职场文书