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 相关文章推荐
Snoopy类使用小例子
Apr 15 PHP
php chr() ord()中文截取乱码问题解决方法
Sep 08 PHP
PHP高级对象构建 工厂模式的使用
Feb 05 PHP
比较简单的百度网盘文件直链PHP代码
Mar 24 PHP
ThinkPHP 表单自动验证运用示例
Oct 13 PHP
PHP模拟QQ登录的方法
Jul 29 PHP
PHP类型约束用法示例
Sep 28 PHP
PHP+Ajax 检测网络是否正常实例详解
Dec 16 PHP
PHP实现在windows下配置sendmail并通过mail()函数发送邮件的方法
Jun 20 PHP
详细对比php中类继承和接口继承
Oct 11 PHP
ThinkPHP3.2.3框架实现执行原生SQL语句的方法示例
Apr 03 PHP
PHP时间类完整代码实例
Feb 26 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开发中常用的8个小技巧
2008/08/27 PHP
dedecms系统的广告设置代码 基础版本
2010/04/09 PHP
深入研究PHP中的preg_replace和代码执行
2018/08/15 PHP
setInterval 和 setTimeout会产生内存溢出
2008/02/15 Javascript
理清apply(),call()的区别和关系
2011/08/14 Javascript
几种延迟加载JS代码的方法加快网页的访问速度
2013/10/12 Javascript
jQuery获取选中内容及设置元素属性的方法
2014/07/09 Javascript
javascript实现数组内值索引随机化及创建随机数组的方法
2015/08/10 Javascript
原生JS实现美图瀑布流布局赏析
2015/09/07 Javascript
详解maxlength属性在textarea里奇怪的表现
2015/12/27 Javascript
微信小程序 LOL 英雄介绍开发实例
2016/09/30 Javascript
js实现上传图片预览方法
2016/10/25 Javascript
解决前端跨域问题方案汇总
2016/11/20 Javascript
canvas实现绘制吃豆鱼效果
2017/01/12 Javascript
Angular.js基础学习之初始化
2017/03/10 Javascript
Angular 4.0学习教程之架构详解
2017/09/12 Javascript
微信小程序项目实践之验证码倒计时功能
2018/07/18 Javascript
vue实现固定位置显示功能
2019/05/30 Javascript
vue进入页面时不在顶部,检测滚动返回顶部按钮问题及解决方法
2019/10/30 Javascript
python使用cStringIO实现临时内存文件访问的方法
2015/03/26 Python
Python利用Beautiful Soup模块修改内容方法示例
2017/03/27 Python
Python使用flask框架操作sqlite3的两种方式
2018/01/31 Python
python文本数据处理学习笔记详解
2019/06/17 Python
django框架实现模板中获取request 的各种信息示例
2019/07/01 Python
Python concurrent.futures模块使用实例
2019/12/24 Python
配置python的编程环境之Anaconda + VSCode的教程
2020/03/29 Python
Python PyQt5模块实现窗口GUI界面代码实例
2020/05/12 Python
详细分析Python可变对象和不可变对象
2020/07/09 Python
css3编写浏览器背景渐变背景色的方法
2018/03/05 HTML / CSS
html5 canvas实现跟随鼠标旋转的箭头
2016/03/11 HTML / CSS
越南电子产品购物网站:FPT Shop
2017/12/02 全球购物
生物技术专业研究生自荐信
2013/09/22 职场文书
办公室年终个人自我评价
2013/10/28 职场文书
大学班长的职责
2014/01/27 职场文书
原料仓仓管员岗位职责
2014/07/08 职场文书
新课程改革心得体会
2016/01/22 职场文书