自动检测 PHP-FPM 的错误并重启的 PHP 脚本

公司的 WEB 生产服务器使用 NGINX+PHP-FPM 构建。

近日 NGINX 频报 (110: Connection timed out) 以及 (11: Resource temporarily unavailable) 的错误,出错后后端的 PHP-FPM 几乎全部挂死,重启 PHP-FPM 后又能正常工作。

初步认定是 PHP-FPM 或系统参数配置有问题,优化了系统参数并重启服务器后,目前尚未发现问题。

但是依然比较担心意外情况发生,没人想在春节期间再来照看这些服务器,索性用 PHP 写了个脚本监控错误日志,监测到错误后自动重启 PHP-FPM。

脚本下载:
phpfpm_guarder

配置说明:
$bin_tail_path tail命令路径
$bin_cp_path cp命令路径
$log_path 错误日志文件路径
$error_logs 要检测的错误类型,可以检测多种
$restart_cmd 重启 PHP-FPM 的命令
$guide_period 检测周期,单位为秒
$max_error_cnt 在检测周期里面发现多少次错误后重启服务器

没几天就要过年了,祝各位新快乐,万事如意!

— EOF —

23 thoughts on “自动检测 PHP-FPM 的错误并重启的 PHP 脚本”

  1. 为什么我执行不了,而且DEBUG,是在 proc_open 这里无法返回一个 if(!is_resources($process)) 资源信息?

发表评论

电子邮件地址不会被公开。 必填项已用*标注