开发者社区> 余二五> 正文

php-fpm配置文件

简介:
+关注继续查看

说明:/usr/local/php/etc/php-fpm.conf   用于管理php服务

          /usr/local/php/etc/php.ini     php本身的全局配置文件


一、清空配置文件

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


二、编辑新的文件/usr/local/php/etc/php-fpm.conf

       说明:www表示pool的名字;新增的pool,除了名字和sock不能相同,其他可以一致;不同主机,可以在配置文件中指定不同的pool,即指定不同的监听方式:fastcgi_pass unix:/tmp/php-fcgi.sock


       内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
[global]
pid = /usr/local/php/var/run/php-fpm.pid
error_log = /usr/local/php/var/log/php-fpm.log
[www]
listen = /tmp/www.sock
user = php-fpm
group = php-fpm
listen.owner = nobody
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
slowlog = /tmp/www_slow.log
request_slowlog_timeout = 1
php_admin_value[open_basedir]=/data/www/:/tmp/
[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


解释: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
listen = /tmp/php-fcgi.sock #较多采用socket监听方式,名字可自定义,默认是127.0.0.1:9000
listen.owner = nobody #nginx中默认监听的socket文件权限是所有者只读,属组和其他用户没有任何权限。所以,nginx的启动用户(咱们配置的是nobody)就没有办法去读这个socket文件,最终可能会导致502;或者配置listen.mode = 0666 
 
listen.group = nobody
pm = dynamic #动态,管理pm子进程,如果写成static,则除了pm.max_children,其他不管用
pm.max_children = 50 #子进程最大50个,由于php是阻塞的,1个进程只能同时处理一个php请求,max_children设置高可以同时处理更多的请求,但也意味着会占用更多的服务器资源
pm.start_servers = 20 #一开始启动20个
pm.min_spare_servers = 5 #空闲时,最小为5个
pm.max_spare_servers = 35 #空闲时,最多为35个
pm.max_requests = 500 #一个子进程在生命周期内共处理多少个请求,自动销毁,可以解决php内存泄露的问题。但如果这个值设置太小,造成php频繁重启,也会对性能造成影响
rlimit_files = 1024 #每一个进程所使用的文件描述符限制
slowlog = /tmp/www_slow.log # 增加slow日志,当网络访问慢时,可以查看该日志
request_slowlog_timeout = 1 # 当脚本执行时间超过1秒钟,就记录
php_admin_value[open_basedir]=/data/www/:/tmp/ # 用于不同域名来限制访问目录


三、pool池的体现

       说明:根据配置文件,php-fpm可以启动多个pool池,分给不同的主机用,默认启动20个,如没有请求,则会一点一点损耗;不同的域名也可以使用相同的池子;分开的话,权限可以分开,一旦池子出现故障,可以避免其他网站同时挂掉










本文转自 huangzp168 51CTO博客,原文链接:http://blog.51cto.com/huangzp/1900631,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
php-fpm开启报错-ERROR: An another FPM instance seems to already listen on /tmp/php-cgi.sock
php-fpm开启报错-ERROR: An another FPM instance seems to already listen on /tmp/php-cgi.sock
210 0
php-fpm的重启方法
php-fpm的重启方法
671 0
重启php-fpm服务遇到问题如何解决
重启php-fpm服务遇到问题如何解决
129 0
zabbix php-fpm模板
启用php-fpm状态功能 [root@node1:~]# vim /usr/local/php-7.0.12_fpm/etc/php-fpm.conf pm.status_path = /status [root@node1:~]# cat /usr/local/php-7.0.12_fpm/etc/php-fpm.conf |grep status_path pm.status_path = /status 默认情况下为/status,当然也可以改成其他的,例如/chinasoft_status等等。
1053 0
关于对php-fpm的压力测试
以前公司网站架构一直都是nginx+apache,因为apache市场占有率还是很大,稳定性也很好,加上版本已经升级到2.4,因为公司业务访问量不是很大,所以一直没考虑更换,但最近因为测试人员用jmeter连续测压测3轮200并发反馈很多报错,而且响应时间也比较久,最终想试试php-fpm替代apache看看效果如何。
3729 0
+关注
余二五
文章
问答
视频
相关电子书
更多
复杂PHP系统性能瓶颈排查及优化
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
相关实验场景
更多