结论:不能,重启 php-fpm 只是清掉当前进程状态,漏洞代码还在,攻击面并没有消除。
① PHP2Shell 这类问题通常出在 PHP 解释器或扩展的代码逻辑里,不是进程跑久了才产生的,重启后新拉起的 worker 依然带着同样的缺陷,攻击者照样能触发。
② 真正有效的做法是升级到官方修复版本,或者至少打上对应补丁;如果暂时没法升级,就在 php.ini 里关掉不必要的危险函数、限制 open_basedir,并在 Nginx 层加规则拦截异常请求参数。
③ 重启可以作为临时缓解手段之一,比如怀疑已经被打挂、进程状态异常时用来恢复服务,但要清楚它只是止血不是治病。
④ 升级前先在测试环境验证扩展兼容性,生产上建议滚动重启 php-fpm 并观察错误日志,确认没有新的报错再全量放开。