在修改了php的配置之后,需要重启才能够生效。之前我大部分都是直接restart进行重启操作。

重启有一个坑,就是必须保证当前应用没有用户或者业务在跑,否则进程会销毁终止。

除了restart之外还有一个reload的操作,一般来说reload相对于restart肯定是更能够达到平滑重启的要求的,但是也还是存在一些问题。

php-fpm.conf的文件中有一个参数:process_control_timeout

默认情况下是注释的。

; Time limit for child processes to wait for a reaction on signals from master.
; Available units: s(econds), m(inutes), h(ours), or d(ays)
; Default Unit: seconds
; Default Value: 0
;process_control_timeout = 0

这个值在注释的情况下没法保证php的平滑重启。必须设置一个合理的值,根据你的应用设置一个合适的值,再进行操作才有效,同时需要注意的是其值不能设置的过大,否则系统可能出现严重的请求堵塞问题。

参考文档70)