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

12.21 php-fpm的poolphp

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

以下图,咱们在这里只定义了一个pool程序员

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

添加多个pool方法:浏览器

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

而后咱们检查错误,curl

而后从新加载。tcp

而后咱们看一下pool,能够看到右侧多了一个aming.com的pool。php-fpm

那么咱们怎么使用它呢?网站

首先而后,把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,而后能够查看一下网站的进程数:

相关文章
相关标签/搜索