12.21 php-fpm的pool 12.22 php-fpm慢执行日志 12.23 open_basedir 12.24 php-fpm进程管理

Posted 淡淡!!!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了12.21 php-fpm的pool 12.22 php-fpm慢执行日志 12.23 open_basedir 12.24 php-fpm进程管理相关的知识,希望对你有一定的参考价值。

12.21 php-fpm的pool

php-fpm有一个概念叫pool,就是使用psaux看到的右侧的那一列,也就是它的池子,

如下图,我们在这里只定义了一个pool

技术分享图片

其实他是支持定义多个池子的,每一个池子我们可以监听不同的sock,或者不同的tcpip,这样的话如果我们的nginx有好几个站点每个站点都可以使用不同pool,这样做的好处就是其中一个php502了,其他站点不收影响,(502很有可能是php资源不够了)如果你所有的网站都使用了同一个池子的话,其中一个网站发生了故障,比如程序员写的代码有问题把php资源耗尽了,那么其他几个也会502,所以我们有必要把网站隔离开来,每个站点使用单独的pool。

添加多个pool方法:

可以在如上图中的文件中继续添加,如再添加一个叫aming.com的pool就在文件内容后面添加如下一段。

技术分享图片

然后我们技术分享图片检查错误,

然后技术分享图片重新加载。

然后我们技术分享图片看一下pool,可以看到右侧多了一个aming.com的pool。

技术分享图片

那么我们怎么使用它呢?

首先技术分享图片然后技术分享图片,把test.com.conf定义成php-fcgi.sock

技术分享图片

然后把另一个aaa.com.conf定义成aming.sock,(如果里面没有这一段那么就从test.com.conf里拷贝一下)

技术分享图片

这样两个网站就隔离开了。

当然php-fpm也是支持include,

技术分享图片

然后技术分享图片,之后进入到这个目录里技术分享图片,然后把php-fpm.conf里的www一段剪切到www.conf里,然后再技术分享图片把php-fpm.conf里的aming.com一段剪切到里面。

 

然后我们技术分享图片检查错误,

然后技术分享图片重新加载。这个效果是和第一种一样的。

 

12.22 php-fpm慢执行日志

技术分享图片

我们首先技术分享图片

技术分享图片意思是超过一秒钟就要记录日志(如果在真实场景下我们建议是两秒,应该很多脚本执行都会超过一秒),然后放在第二行的地址里。

然后检查错误重新加载,之后我们可以看一下这个目录里有没有生成日志文件。有的话我们可以看看里面有没有内容。里面应该是空的,因为我们还没有任何超过一秒的php执行的过程,所以我们需要模拟一个慢执行的php。

那么我们就来写一个脚本,因为php-fcgi是被test.com用的,所以我们需要在这个站点下做操作。

我们做一个脚本故意让它执行休眠2秒

技术分享图片

在里面写入技术分享图片我们可以把它分成三行

然后我们运行一下试试技术分享图片(如果没有任何输出就说明有错误)

技术分享图片里面有一行技术分享图片我们把它打开后,也就是改成on后,我们就可以在浏览器或者curl里显示错误。然后我们再运行,如下图提示我们语法错误

技术分享图片

这里应该是我们的sleep.php标点符号写的是中文的标点,我们给它改成英文即可,然后我们再次运行,可以看出它执行过程是停顿了两秒的。

然后我们在看日志技术分享图片

现在里面就会有内容了,如下图

技术分享图片

第二行告诉我们sleep.php脚本慢了,第三行说是这个脚本的第3行慢了。

我们可以看一下这个脚本的第三行是什么,如下图正是我们设定的休眠2秒。

技术分享图片

12.23 open_basedir

技术分享图片

open_basedir之前我们也介绍过,如果服务器有多个网站,那么在php.ini里定义就不合适了,所以要么在apache虚拟主机配置文件里定义,要么在php-fpm里定义,那么我们可以针对每一个池子定义open_basedir,

定义方法只要在www(也可以是其他池子)池子文件里加上技术分享图片,然后另起一行(这里的网站一定要写www这个文件对应的网站,上图并不是标准答案),如在技术分享图片加上它。然后检查错误之后重新加载,然后技术分享图片就可以访问了。

我们也可以看一下它的错误日志,我们先把技术分享图片技术分享图片改成off关掉,(正常都是关闭的,因为不能让别人通过浏览器看到错误信息)然后我们定义一下错误日志路径,(把原来的注释一下,然后另起一行)

技术分享图片

还要定义日志级别(这里我们定义成所有,我们把原来的注释一下,然后另起一行)

技术分享图片

然后创建一下指定的错误日志路径文件技术分享图片

然后我们故意把在www.conf里定义的技术分享图片后面的网站改成其他网站

技术分享图片

然后检查错误重新加载,然后访问一下技术分享图片就生成了错误日志,然后我们可以看一下错误日志

技术分享图片

12.24 php-fpm进程管理

技术分享图片

php-fpm进程管理就是php-fpm配置文件里,如www.conf里选中的几行。

技术分享图片

第一行表示你的进程以什么样的形式启动,dynamic是动态,只有是动态的时候下面的全部参数才生效,如果改成static那么只有下面一条生效,也就是说启动的时候就一下生成50个。

dynamic动态时,下面20结尾的一行意思是默认启动20个,请求多的时候会增多,但是空闲的时候多于35会自动减少,下面5结尾的一行意思是最低不少于5个,500的一行意思是每一个子进程处理的请求数是500次,达到这个值就会自动退出。

当然这些参数后面的数字都是可以改的。

我们可以改一下,然后重新加载php-fpm,然后可以查看一下网站的进程数:技术分享图片

以上是关于12.21 php-fpm的pool 12.22 php-fpm慢执行日志 12.23 open_basedir 12.24 php-fpm进程管理的主要内容,如果未能解决你的问题,请参考以下文章

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

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

12.21 php-fpm的pool 12.22 php-fpm慢执行日志 12.23 open_basedir 12.24 php-fpm进程管理

2018-6-13

十三周一次课

2018.3.19 13周1次课