You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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),添加:
    <Directory /var/www/html/wp-content/uploads/>
        php_flag engine off
        Options -ExecCGI -Indexes
        AllowOverride None
        Require all granted
    </Directory>
    
    重启Apache生效:
    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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 05:25:27