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中通过加号合并数组的一个简单方法分享
Jan 27 PHP
解析如何屏蔽php中的phpinfo()函数
Jun 06 PHP
php删除数组元素示例分享
Feb 17 PHP
PHP针对常规模板引擎中与CSS/JSON冲突的解决方法
Aug 19 PHP
Yii2中如何使用modal弹窗(基本使用)
May 30 PHP
php操作路径的经典方法(必看篇)
Oct 04 PHP
PHP随机获取未被微信屏蔽的域名(微信域名检测)
Mar 19 PHP
PHP实现webshell扫描文件木马的方法
Jul 31 PHP
PHP Class SoapClient not found解决方法
Jan 20 PHP
PHP各种常见经典算法总结【排序、查找、翻转等】
Aug 05 PHP
Laravel 5.1 框架Blade模板引擎用法实例分析
Jan 04 PHP
基于PHP实现用户在线状态检测
Nov 10 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
收音机另类DIY - 纸巾盒做外壳
2021/03/02 无线电
php中iconv函数使用方法
2008/05/24 PHP
简单的JS多重继承示例
2008/03/13 Javascript
javascript 自动填写表单的实现方法
2010/04/09 Javascript
原生javascript实现获取指定元素下所有后代元素的方法
2014/10/28 Javascript
Angular 理解module和injector,即依赖注入
2016/09/07 Javascript
Bootstrap表格使用方法详解
2017/02/17 Javascript
浅谈vue.js导入css库(elementUi)的方法
2018/03/09 Javascript
node 使用 async 控制并发的方法
2018/05/07 Javascript
一个Vue视频媒体多段裁剪组件的实现示例
2018/08/09 Javascript
vue--点击当前增加class,其他删除class的方法
2018/09/15 Javascript
基于vue2.0的活动倒计时组件countdown(附源码下载)
2018/10/09 Javascript
在vue里使用codemirror遇到的问题
2018/11/01 Javascript
Vue+Element UI+vue-quill-editor富文本编辑器及插入图片自定义
2019/08/20 Javascript
jquery中attr、prop、data区别与用法分析
2019/09/25 jQuery
vue + axios get下载文件功能
2019/09/25 Javascript
JS中的继承操作实例总结
2020/06/06 Javascript
vue任意关系组件通信与跨组件监听状态vue-communication
2020/10/18 Javascript
详解vue-cli项目在IE浏览器打开报错解决方法
2020/12/10 Vue.js
[02:42]DOTA2城市挑战赛收官在即 四强之争风起云涌
2018/06/05 DOTA
Tornado Web服务器多进程启动的2个方法
2014/08/04 Python
python获取从命令行输入数字的方法
2015/04/29 Python
Django框架用户注销功能实现方法分析
2019/05/28 Python
Python封装成可带参数的EXE安装包实例
2019/08/24 Python
opencv python在视屏上截图功能的实现
2020/03/05 Python
Python unittest框架操作实例解析
2020/04/13 Python
Python3 ffmpeg视频转换工具使用方法解析
2020/08/10 Python
Python使用正则表达式实现爬虫数据抽取
2020/08/17 Python
HTML5不支持frameset的两种解决方法
2016/11/14 HTML / CSS
什么是Rollback Segment
2013/04/22 面试题
WINDOWS域的具体实现方式是什么
2014/02/20 面试题
Java Servlet的主要功能和作用是什么
2014/02/14 面试题
项目合作意向书范本
2014/04/01 职场文书
初中学生评语大全
2014/04/24 职场文书
农业项目投资意向书
2015/05/09 职场文书
《中国机长》观后感:敬畏生命,敬畏职责
2019/11/12 职场文书