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 相关文章推荐
JS实现php的伪分页
May 25 PHP
php mysql数据库操作类
Jun 04 PHP
php 页面执行时间计算代码
Dec 04 PHP
php 判断访客是否为搜索引擎蜘蛛的函数代码
Jul 29 PHP
浅谈PHP强制类型转换,慎用!
Jun 06 PHP
解析php中的fopen()函数用打开文件模式说明
Jun 20 PHP
简单的php文件上传(实例)
Oct 27 PHP
php中使用websocket详解
Sep 23 PHP
PHP微信红包生成代码分享
Oct 06 PHP
php中get_magic_quotes_gpc()函数说明
Feb 06 PHP
简单实现php上传文件功能
Sep 21 PHP
深入浅析安装PhpStorm并激活的步骤详解
Sep 17 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截断标题且兼容utf8和gb2312编码
2013/09/22 PHP
PHP开发API接口签名生成及验证操作示例
2020/05/27 PHP
javascript下IE与FF兼容函数收集
2008/09/17 Javascript
为开发者准备的10款最好的jQuery日历插件
2014/02/04 Javascript
jQuery实现菜单感应鼠标滑动动画效果的方法
2015/02/28 Javascript
jQuery DOM插入节点操作指南
2015/03/03 Javascript
Bootstrap的Refresh Icon也spin起来
2016/07/13 Javascript
js 获取本地文件及目录的方法(推荐)
2016/11/10 Javascript
JS移动端/H5同时选择多张图片上传并使用canvas压缩图片
2017/06/20 Javascript
js案例之鼠标跟随jquery版(实例讲解)
2017/07/21 jQuery
javaScript封装的各种写法
2017/08/14 Javascript
浅谈express 中间件机制及实现原理
2017/08/31 Javascript
JavaScript惰性载入函数实例分析
2019/03/27 Javascript
微信小程序实现原生步骤条
2019/07/25 Javascript
vue 组件销毁并重置的实现
2020/01/13 Javascript
node创建Vue项目步骤详解
2020/03/06 Javascript
Vue项目打包编译优化方案
2020/09/16 Javascript
python绘图库Matplotlib的安装
2014/07/03 Python
Python脚本判断 Linux 是否运行在虚拟机上
2015/04/25 Python
Python中动态创建类实例的方法
2017/03/24 Python
详解Python logging调用Logger.info方法的处理过程
2019/02/12 Python
Python、 Pycharm、Django安装详细教程(图文)
2019/04/12 Python
值得收藏的10道python 面试题
2019/04/15 Python
Python异步编程之协程任务的调度操作实例分析
2020/02/01 Python
django 连接数据库出现1045错误的解决方式
2020/05/14 Python
如何在mac下配置python虚拟环境
2020/07/06 Python
通过css3的filter滤镜改变png图片的颜色的示例代码
2020/05/06 HTML / CSS
基于Canvas+Vue的弹幕组件的实现
2019/07/23 HTML / CSS
vue 中 get / delete 传递数组参数方法
2021/03/23 Vue.js
应届大学生的推荐信
2013/11/20 职场文书
学校食堂采购员岗位职责
2013/12/05 职场文书
大学毕业通用个人的求职信
2013/12/08 职场文书
导游词之新疆尼雅遗址
2019/10/16 职场文书
导游词之平津战役纪念馆
2019/11/04 职场文书
Vue.Draggable实现交换位置
2022/04/07 Vue.js
关于对TypeScript泛型参数的默认值理解
2022/07/15 Javascript