文档章节

12.21

脑洞老湿_
 脑洞老湿_
发布于 2017/08/17 09:00
字数 1574
阅读 0
收藏 0
点赞 0
评论 0

PHP的pool(配置pool的两种方法)

法1:直接编辑php-fpm.conf配置文件

[root@DasonCheng ~]# vim /usr/local/php-fpm/etc/php-fpm.conf

[global]
pid = /usr/local/php-fpm/var/run/php-fpm.pid
error_log = /usr/local/php-fpm/var/log/php-fpm.log
[www]
listen = /tmp/php-fcgi.sock
#listen = 192.168.60.11:9000
listen.mode = 666
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

[aming]    //添加这一部分,直接复制www,修改名字和sock即可!
listen = /tmp/aming.sock
listen.mode = 666
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

法2:增加php-fpm目录并添加编辑.conf文件(先删掉php-fpm.conf的pool)

[root@DasonCheng ~]#vim /usr/local/php/etc/php-fpm.conf    
include = etc/php-fpm.d/*.conf    //在[global]部分增加这一行
……
[root@DasonCheng ~]#mkdir /usr/local/php/etc/php-fpm.d/
[root@DasonCheng ~]#cd /usr/local/php/etc/php-fpm.d/
[root@DasonCheng ~]#vim www.conf //内容如下
[www]
listen = /tmp/www.sock
listen.mode=666
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
……
继续编辑配置文件
[root@DasonCheng ~]#vim aming.conf    //内容如下
[aming]
listen = /tmp/aming.sock
listen.mode=666
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
……
/usr/local/php/sbin/php-fpm –t
/etc/init.d/php-fpm restart     

测试结果:

[root@DasonCheng ~]# /usr/local/php-fpm/sbin/php-fpm -t
[root@DasonCheng ~]# /etc/init.d/php-fpm reload
……
php-fpm    3471  0.0  0.4 228756  4740 ?        S    08:59   0:00 php-fpm: pool aming
php-fpm    3472  0.0  0.4 228756  4740 ?        S    08:59   0:00 php-fpm: pool aming
php-fpm    3473  0.0  0.4 228756  4740 ?        S    08:59   0:00 php-fpm: pool aming
php-fpm    3474  0.0  0.4 228756  4736 ?        S    08:59   0:00 php-fpm: pool www
php-fpm    3475  0.0  0.4 228756  4736 ?        S    08:59   0:00 php-fpm: pool www
php-fpm    3476  0.0  0.4 228756  4736 ?        S    08:59   0:00 php-fpm: pool www
……

OK!

引用是啥子
这就是引用

12.22 php-fpm慢执行日志

vim /usr/local/php-fpm/etc/php-fpm.d/www.conf//加入如下内容
request_slowlog_timeout = 1
slowlog = /usr/local/php-fpm/var/log/www-slow.log
配置nginx的虚拟主机test.com.conf,把unix:/tmp/php-fcgi.sock改为unix:/tmp/www.sock
重新加载nginx服务
vim /data/wwwroot/test.com/sleep.php//写入如下内容
<?php echo “test slow log”;sleep(2);echo “done”;?>
curl -x127.0.0.1:80 test.com/sleep.php 
cat /usr/local/php-fpm/var/log/www-slow.log

500 internet server error 表示:语法错误!
有错误怎么办? 查看日志呗 -_-

1、编辑pool加入慢执行日志请求:

[root@DasonCheng ~]# vim /usr/local/php-fpm/etc/php-fpm.d/www.conf 
request_slowlog_timeout = 1
slowlog = /usr/local/php-fpm/var/log/www-slow.log

注意:vhost/test.conf虚拟主机配置文件:php编译部分,需要和pool池内容一致!

2、增加sleep慢页面:

[root@DasonCheng ~]# vim /data/wwwroot/test.com/sleep.php
<?php
echo "test slow log";
sleep(2);
echo "done";
?>

测试:

[root@DasonCheng ~]# curl -x127.0.0.1:80 test.com/sleep.php  //这里停顿了2秒;
test slow logdone[root@DasonCheng ~]# 

查看日志:

[root@DasonCheng ~]# cat /usr/local/php-fpm/var/log/www-slow.log 

[17-Aug-2017 10:08:59]  [pool www] pid 3762
script_filename = /data/wwwroot/test.com/sleep.php
[0x00007f857d7052e0] sleep() /data/wwwroot/test.com/sleep.php:3  //显示了这个页面的第三行,导致慢日志!

另一种测试:在浏览器访问页面的时候及时反馈报错!(线上是需要Off的)

[root@DasonCheng ~]# vim /usr/local/php-fpm/etc/php.ini
; Production Value: Off
; http://php.net/display-errors
display_errors = On   //开启这个错误日志;
……
[root@DasonCheng ~]# /usr/local/php-fpm/sbin/php-fpm -t
[17-Aug-2017 10:14:40] NOTICE: configuration file /usr/local/php-fpm/etc/php-fpm.conf test is successful
[root@DasonCheng ~]# /etc/init.d/php-fpm reload
Reload service php-fpm  done
[root@DasonCheng ~]# curl -x127.0.0.1:80 test.com/sleep.php    //直接报页面语法错误:
<br />
<b>Parse error</b>:  syntax error, unexpected ';' (T_STRING), expecting ',' or ';' in <b>/data/wwwroot/test.com/sleep.php</b> on line <b>4</b><br />

12.23 php定义open_basedir

open_basedir 作用:将用户可操作的文件限制在某目录下;

 vim /usr/local/php-fpm/etc/php-fpm.d/aming.conf//加入如下内容
php_admin_value[open_basedir]=/data/wwwroot/aming.com:/tmp/
 创建测试php脚本,进行测试
 再次更改aming.conf,修改路径,再次测试
 配置错误日志!!
 再次测试
 查看错误日志

1、编辑.conf配置文件:

[root@DasonCheng ~]# vim /usr/local/php-fpm/etc/php-fpm.d/www.conf 
……
php_admin_value[open_basedir]=/data/wwwroot/aming.com:/tmp/    //加入这一行;路径故意写错了

2、创建测试脚本:

[root@DasonCheng ~]# vim /data/wwwroot/test.com/1.php
<?php
echo "test ok!";
?>

3、测试:(先重新加载)

[root@DasonCheng ~]# /usr/local/php-fpm/sbin/php-fpm -t
[17-Aug-2017 10:43:00] NOTICE: configuration file /usr/local/php-fpm/etc/php-fpm.conf test is successful
[root@DasonCheng ~]# /etc/init.d/php-fpm reload
Reload service php-fpm  done

[root@DasonCheng ~]# curl -x127.0.0.1:80 test.com/1.php 
 //open_basedir路径定义错误 报错了,我们接下来配置一些日志!
No input file specified.
[root@DasonCheng ~]# curl -x127.0.0.1:80 test.com/1.php -i
HTTP/1.1 404 Not Found
Server: nginx/1.12.1
Date: Thu, 17 Aug 2017 02:43:53 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
X-Powered-By: PHP/5.6.30

No input file specified.
[root@DasonCheng ~]# 

4、配置错误日志:

display_errors = Off
……
log_errors = On    //保证log_errors是on开启状态;1
……
;error_log = php_errors.log
; Log errors to syslog (Event Log on Windows).
;error_log = syslog
error_log=/usr/local/php-fpm/var/log/php_errors.log    //定义错误日志文件;2
……
; http://php.net/error-reporting
;error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT   //注释掉这行;
error_reporting = E_ALL    //定义reporting日志级别!3
……

重新加载

[root@DasonCheng ~]# /usr/local/php-fpm/sbin/php-fpm -t
[17-Aug-2017 10:54:20] NOTICE: configuration file /usr/local/php-fpm/etc/php-fpm.conf test is successful
[root@DasonCheng ~]# /etc/init.d/php-fpm reload
Reload service php-fpm  done

[root@DasonCheng ~]# ll /usr/local/php-fpm/var/log/    
总用量 16
-rw-r--r--. 1 root root  256 8月  17 10:54 php_errors.log
-rw-------. 1 root root 8107 8月  17 10:54 php-fpm.log
-rw-------. 1 root root  640 8月  17 10:19 www-slow.log
[root@DasonCheng ~]# chmod 777 /usr/local/php-fpm/var/log/php_errors.log   
//重新加载的时候已经自动创建了php_errors.log但权限不够,我们赋予777;


5、查看错误日志:

[root@DasonCheng ~]# curl -x127.0.0.1:80 test.com/1.php
No input file specified.
[root@DasonCheng ~]# cat /usr/local/php-fpm/var/log/php_errors.log 
[17-Aug-2017 02:54:20 UTC] PHP Deprecated:  Comments starting with '#' are deprecated in Unknown on line 1 in Unknown on line 0
[17-Aug-2017 02:54:26 UTC] PHP Deprecated:  Comments starting with '#' are deprecated in Unknown on line 1 in Unknown on line 0
[17-Aug-2017 03:02:35 UTC] PHP Warning:  Unknown: open_basedir restriction in effect. File(/data/wwwroot/test.com/1.php) is not within the allowed path(s): (/data/wwwroot/aming.com:/tmp/) in Unknown on line 0    
//貌似是路径的问题,我们将aming.com修改为test.com!
[17-Aug-2017 03:02:35 UTC] PHP Warning:  Unknown: failed to open stream: Operation not permitted in Unknown on line 0

[root@DasonCheng ~]# vim /usr/local/php-fpm/etc/php-fpm.d/www.conf 
……
php_admin_value[open_basedir]=/data/wwwroot/test.com:/tmp/
[root@DasonCheng ~]# /etc/init.d/php-fpm reload   //重新加载;
[root@DasonCheng ~]# curl -x127.0.0.1:80 test.com/1.php
test ok![root@DasonCheng ~]# 

OK!访问成功!

12.24 php-fpm进程管理

 pm = dynamic  //动态进程管理,也可以是static
 pm.max_children = 50 //最大子进程数,ps aux可以查看
 pm.start_servers = 20 //启动服务时会启动的进程数
 pm.min_spare_servers = 5 //定义在空闲时段,子进程数的最少数量,如果达到这个数值时,php-fpm服务会自动派生新的子进程。
 pm.max_spare_servers = 35 //定义在空闲时段,子进程数的最大值,如果高于这个数值就开始清理空闲的子进程。
 pm.max_requests = 500  //定义一个子进程最多处理的请求数,也就是说在一个php-fpm的子进程最多可以处理这么多请求,当达到这个数值时,它会自动退出。

© 著作权归作者所有

共有 人打赏支持
脑洞老湿_
粉丝 2
博文 148
码字总数 124412
作品 0
荆州
腾讯云代金券 2015年终大促 12.21服务器50%优惠码

阿里云风风火火的双11、双12大促销并且取得了很大的成绩,腾讯云也坐不住了,自己自创了一个特殊的大促12.21大促(月份和日子的阿拉伯数字是颠倒的:)),活动已经开始,到12.21结束。 前去...

ZS1F ⋅ 2015/12/15 ⋅ 3

开源基站控制器--OpenBSC

OpenBSC 是一个开源的基站控制器(Base Station Controller),部分实现了 A-bis 协议,以及 GSM 技术规范 08.5x 和 12.21,该项目的目的是: 提供一个基础,实验和安全研究的GSM网络 文件,...

匿名 ⋅ 2009/08/17 ⋅ 1

12.21 php-fpm的pool 12.22 php-fpm慢执行日志 12.23 open_b

12.21 php-fpm的pool 12.22 php-fpm慢执行日志 vim /usr/local/php-fpm/etc/php-fpm.d/www.conf requestslowlogtimeout = 1 slowlog = /usr/local/php-fpm/var/log/www-slow.log touch /usr......

martin20162018 ⋅ 03/20 ⋅ 0

51CTO首页周末博客头条记录(2012年)

12.28 [一探究竟,项目为什么会失败?][2012精彩无末日,重生展望2013] [有话跟老板说吗?发给我吧][ 12.21 [奋斗与快乐共享][会的多,会的精,你选择哪个?] [Hadoop的虚拟化之恋][IT女孩的...

懒小米 ⋅ 2012/11/19 ⋅ 0

6月13日任务php-fpm的pool php-fpm慢执行日志 open_basedir 进程管理

12.21 php-fpm的pool 1. vim /usr/local/php-fpm/etc/php-fpm.conf 2. 加入 [lxy] listen = 127.0.0.1:9001 listen.mode=666 user = php-fpm group = php-fpm pm = dynamic pm.max_children ......

吕湘颖 ⋅ 05/21 ⋅ 0

第十二章 Shell脚本编写及常见面试题(三)

本章目录: 12.21 FTP下载文件 #!/bin/bashif [ $# -ne 1 ]; then echo "Usage: $0 filename"fidir=$(dirname $1)file=$(basename $1)ftp -n -v << EOF # -n 自动登录open 192.168.1.10user......

李振良OK ⋅ 2017/05/31 ⋅ 0

2018-3-19 13周1次课 php-fpm的pool、慢日志、进程、open_basedir

12.21 php-fpm的pool php-fpm支持定义多个pool,每个pool可以监听不同的socket或者不同的tcp/ip; 如果nginx有多个不同的站点,那么每个站点都可以使用一个pool; 如果所有网站都使用了同一个...

alexis7gunner ⋅ 03/19 ⋅ 0

ArrayList:可变数组

数组用于定义长度不变的集合,但是在实际的处理过程中,我们往往对集合的大小并不确定,因此在实际的开发工作中,我们更多的需要处理集合元素。ArrayList是一个可变数组,其变在于两点: 集合...

彭博 ⋅ 2012/03/09 ⋅ 0

day6(12.21)函数表达式

函数表达式的特征 使用函数表达式递归 使用闭包定义私有变量 定义函数的方式有两种:函数声明,类似变量声明用var,函数声明用function,如 function fun1(arg0,arg1){ } 同样类似于变量声明...

王海洋有棵树 ⋅ 2017/12/20 ⋅ 0

12.21- linux引号系列区别及命令行快捷键

12.21 linux引号系列区别及命令行快捷键 内容: 1. 单引号双引号反引号区别 2. 命令行快捷键 3. 查看22号端口是否开启(5种方法) 4. yum安装常用工具 5. find -iname 6. lrzsz 第1章 单引号...

千古东风 ⋅ 2017/12/28 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

笔试题之Java基础部分【简】【一】

基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语法,集合的语法,io 的语法,虚拟机方面的语法,其他 1.length、length()和size() length针对...

anlve ⋅ 14分钟前 ⋅ 1

table eg

user_id user_name full_name 1 zhangsan 张三 2 lisi 李四 `` ™ [========] 2018-06-18 09:42:06 星期一½ gdsgagagagdsgasgagadsgdasgagsa...

qwfys ⋅ 38分钟前 ⋅ 0

一个有趣的Java问题

先来看看源码: public class TestDemo { public static void main(String[] args) { Integer a = 10; Integer b = 20; swap(a, b); System.out......

linxyz ⋅ 43分钟前 ⋅ 0

十五周二次课

十五周二次课 17.1mysql主从介绍 17.2准备工作 17.3配置主 17.4配置从 17.5测试主从同步 17.1mysql主从介绍 MySQL主从介绍 MySQL主从又叫做Replication、AB复制。简单讲就是A和B两台机器做主...

河图再现 ⋅ 今天 ⋅ 0

docker安装snmp rrdtool环境

以Ubuntu16:04作为基础版本 docker pull ubuntu:16.04 启动一个容器 docker run -d -i -t --name flow_mete ubuntu:16.04 bash 进入容器 docker exec -it flow_mete bash cd ~ 安装基本软件 ......

messud4312 ⋅ 今天 ⋅ 0

OSChina 周一乱弹 —— 快别开心了,你还没有女友呢。

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @莱布妮子 :分享吴彤的单曲《好春光》 《好春光》- 吴彤 手机党少年们想听歌,请使劲儿戳(这里) @clouddyy :小萝莉街上乱跑,误把我认错成...

小小编辑 ⋅ 今天 ⋅ 8

Java 开发者不容错过的 12 种高效工具

Java 开发者常常都会想办法如何更快地编写 Java 代码,让编程变得更加轻松。目前,市面上涌现出越来越多的高效编程工具。所以,以下总结了一系列工具列表,其中包含了大多数开发人员已经使用...

jason_kiss ⋅ 昨天 ⋅ 0

Linux下php访问远程ms sqlserver

1、安装freetds(略,安装在/opt/local/freetds 下) 2、cd /path/to/php-5.6.36/ 进入PHP源码目录 3、cd ext/mssql进入MSSQL模块源码目录 4、/opt/php/bin/phpize生成编译配置文件 5、 . ./...

wangxuwei ⋅ 昨天 ⋅ 0

如何成为技术专家

文章来源于 -- 时间的朋友 拥有良好的心态。首先要有空杯心态,用欣赏的眼光发现并学习别人的长处,包括但不限于工具的使用,工作方法,解决问题以及规划未来的能力等。向别人学习的同时要注...

长安一梦 ⋅ 昨天 ⋅ 0

Linux vmstat命令实战详解

vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix最喜爱的命令...

刘祖鹏 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部