php-fpm的pool、php-fpm慢执行日志、open_basedir、php-fpm进程管理

11月30日任务php

12.21 php-fpm的poolnginx

12.22 php-fpm慢执行日志vim

12.23 open_basedircurl

12.24 php-fpm进程管理php-fpm

1.php-fom的pool测试

示例一:配置多个池子url

  • cd /usr/local/php-fpm/etc/
  • ls &&cat php-fpm.conf

  •  vim /usr/local/php/etc/php-fpm.conf//在[global]部分增长  
  • include = etc/php-fpm.d/*.conf  
  • mkdir /usr/local/php/etc/php-fpm.d/  
  • cd /usr/local/php/etc/php-fpm.d/  
  • vim www.conf //内容以下

[www]spa

listen = /tmp/www.sock3d

listen.mode=666unix

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

  • 继续编辑配置文件  
  • 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    重启php-fpm服务

 

2.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  定义日志存放位置

  • -t &&reload 测试语法并从新加载配置文件

  • cat 一下,看看日志文件是否生成

  • 配置nginx的虚拟主机test.com.conf,把unix:/tmp/php-fcgi.sock改成unix:/tmp/www.sock  从新加载nginx服务  

  • 作一个测试php文件
  • 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  查看一下日志

  • 定义的时候,最好定义为2秒,由于不少php的执行脚本都超过1秒,这样记录的日志就会少不少,通常定义为1~2秒。

示例二:拓展,若是语法报错,想看到详细错误内容的话,能够开启display_errors的一项功能

  • vim /usr/local/php-fpm/etc/php.ini 在它的配置文件里配置更改一下
  • /display_errors 搜索一下,以下,将它设置为on开启状态

  • reload 从新加载配置文件

  • 再次执行语法出错的文件
  • 就能够看到详细的日志错误信息

 

3.open_basedir

示例一:

  • vim /usr/local/php-fpm/etc/php-fpm.d/aming.conf//加入以下内容php_admin_value[open_basedir]=/data/wwwroot/aming.com:/tmp/  

  • /etc/init.d/php-fpm restart 重启一下php-fpm服务
  • 建立测试php脚本,进行测试  
  • 再次更改aming.conf,修改路径,再次测试  
  • 配置错误日志  
  • vi /usr/local/php-fpm/etc/php.ini  以下编辑

  • vi /usr/local/php-fpm/etc/php.ini  以下编辑

  • 手动建立日志生成文件,而且更改权限为777,而后重启一下php-fpm

  • 用curl再次测试  
  • 查看错误日志

 

4.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的子进程最多能够处理这么多请求,当达到这个数值时,它会自动退出。
相关文章
相关标签/搜索