[root@nginx ~]# cat /etc/php-fpm.conf .... ;include=etc/fpm.d/*.conf .... #第⼆部分,全局配置 [root@nginx ~]# cat /etc/php-fpm.d/www.conf [global] ;pid = /var/log/php-fpm/php-fpm.pid #pid⽂件存放的位置 ;error_log = /var/log/php-fpm.log #错误⽇志存放的位置 ;log_level = error #⽇志级别, alert, error, warning, notice, debug rlimit_files = 65535 #php-fpm进程能够使⽤的⽂件描述符 #第三部分,进程池定义 [www] #池名称 user = www #进程运⾏的⽤户 group = www #进程运⾏的组 ;listen = /dev/shm/php-fpm.sock #监听在本地socket⽂件 listen = 127.0.0.1:9000 #监听在本地tcp的9000端⼝ ;listen.allowed_clients = 127.0.0.1 #允许访问FastCGI进程的IP,any不限制 pm = dynamic #动态调节php-fpm的进程数 pm.max_children = 512 #最⼤启动的php-fpm进程数 (峰值就到512个进程) pm.start_servers = 32 #初始启动的php-fpm进程数 pm.min_spare_servers = 32 #最少的空闲php-fpm进程数 pm.max_spare_servers = 64 #最⼤的空闲php-fpm进程数 pm.max_requests = 1500 #每⼀个进程能响应的请求数 pm.process_idle_timeout = 15s; #第四部分,⽇志相关 php_flag[display_errors] = off php_admin_value[error_log] = /var/log/phpfpm_error.log php_admin_flag[log_errors] = on #fpm慢⽇志 request_slowlog_timeout = 5s #php脚本执⾏超过5s的⽂件 slowlog = /var/log/php_slow.log #记录⾄该⽂件中
### 2 PHP监控模块
3.php-fpm监控模块,⽤于监控php-fpm状态使⽤
[root@nginx ~]# vim /etc/php-fpm.d/www.conf pm.status_path = /phpfpm_status #开启php的状态⻚⾯ #修改nginx配置 [root@nginx conf.d]# cat /etc/nginx/conf.d/fpm.conf server { listen 80; server_name php.bgx.com; location / { root /code; index index.php; } #新增如下配置 location /phpfpm_status { fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME fastcgi_script_name; include fastcgi_params; } location ~ .php{ fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAMEdocument_root$fastcgi_script_name; include fastcgi_params; } }
4.访问测试phpfpm\_status状态⻚⾯
[root@nginx ~]# curl http://127.0.0.1/phpfpm_status pool: www #fpm池名称,⼤多数为www process manager: dynamic #动态管理phpfpm进程 start time: 05/Jul/2016 #启动时间,如果重启会发⽣变化 start since: 409 #php-fpm运⾏时间 accepted conn: 22 #当前池接受的连接数 listen queue: 0 #请求等待队列,如果这个值不为0,那么需要增加FPM的进程数量 max listen queue: 0 #请求等待队列最⾼的数量 listen queue len: 128 #请求等待队列的⻓度 idle processes: 4 #php-fpm空闲的进程数量 active processes: 1 #php-fpm活跃的进程数量 total processes: 5 #php-fpm总的进程数量 max active processes: 2 #php-fpm最⼤活跃的进程数量(FPM启动开始计算) max children reached: 0 #进程最⼤数量限制的次数,如果数量不为0,则说明phpfpm最⼤进 程数量过⼩,可以适当调整。
### 3 PHP⽇志管理
php⽇志分为错误⽇志和慢⽇志。
## 1.通过 upstream\_response\_time 可以监控 Nginx 到 php 所消耗的时间
#Nginx在log_format中添加upstream_response_time #编写⼀个php代码,然后观察处理事件
## 2.php 的 error ⽇志说明。
#编写php代码测试
#注意:如果启⽤display_errors = On,会直接将错误显示⽹⻚上。
## 3.php-fpm的慢⽇志,php只要处理超过1s就会有记录
slowlog = /tmp/phpslow.log request_slowlog_timeout = 1s #编写php代码测试