Apache2服务器异常停机(AH00170)求助:Ubuntu22.04.1+PHP7.4环境
解决方案:Apache2 无诱因停机排查与修复
1. 清理恶意脚本并加固站点
从日志看有恶意IP尝试访问code-execution.php(典型webshell文件名),先处理这个风险:
- 列出上传目录所有文件,排查可疑项:
ls -la /var/www/html/wp-content/uploads/ - 删除已发现的恶意脚本:
rm -f /var/www/html/wp-content/uploads/code-execution.php - 禁止上传目录执行PHP,编辑站点Apache配置文件(如
/etc/apache2/sites-available/your-site.conf),添加:
重启Apache生效:<Directory /var/www/html/wp-content/uploads/> php_flag engine off Options -ExecCGI -Indexes AllowOverride None Require all granted </Directory>systemctl restart apache2
2. 排查进程778相关异常
日志出现Cannot kill process 778: Success!,需确认该进程的身份和相关任务:
- 搜索系统日志,查看进程778的历史活动:
grep 778 /var/log/syslog /var/log/auth.log - 检查cron定时任务、supervisor等进程管理工具,是否有异常脚本在尝试终止进程,导致连锁影响Apache
- 排查是否因内存耗尽触发OOM Killer:
dmesg | grep -i oom
3. 追踪SIGWINCH信号来源
Apache因收到SIGWINCH信号优雅关闭,该信号通常不是正常操作触发的,需定位发送源:
- 安装审计工具
auditd:apt update && apt install auditd -y - 添加规则监控发送给Apache主进程的SIGWINCH信号(替换
$(pgrep apache2 -o)为当前Apache主进程PID):auditctl -a exit,always -F arch=b64 -S kill -F sig=28 -F pid=$(pgrep apache2 -o) - 查看审计日志定位信号发送者:
ausearch -i -m signal
4. 优化Apache配置与系统环境
- 调整
mpm_prefork参数避免资源耗尽,编辑/etc/apache2/mods-available/mpm_prefork.conf:StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxRequestWorkers 150 MaxConnectionsPerChild 0 - 启用日志轮转避免日志膨胀,执行一次强制轮转:
logrotate -f /etc/logrotate.d/apache2 - 更新系统修复已知漏洞:
apt update && apt upgrade -y - 安装
fail2ban阻止恶意IP持续攻击:apt install fail2ban -y
内容的提问来源于stack exchange,提问作者Cristian Rodríguez
相关产品推荐
相关产品推荐

