Debian Apache 故障排查步骤
一 快速定位与最小复现
二 常见症状与对应处理
| 症状 | 关键命令或位置 | 处理要点 |
|---|---|---|
| 服务无法启动 | systemctl status apache2、journalctl -xeu apache2、apache2ctl configtest | 先修语法,再按日志报错逐项处理(如模块缺失、指令拼写错误)。 |
| 端口被占用 | **ss -tulpen | grep ‘:80|:443’** |
| 配置语法错误 | apache2ctl configtest | 根据行号与提示修复;若报未知指令,多为模块未启用。 |
| 虚拟主机未生效 | a2ensite your-site.conf、a2dissite 000-default.conf、检查 /etc/apache2/sites-available/ 与 /etc/apache2/sites-enabled/ | 启用站点、禁用冲突默认站点,确保配置指向正确的 DocumentRoot 与日志。 |
| 权限被拒绝 | 检查站点目录属主与权限,Apache 用户通常为 www-data | 将目录属主设为 www-data:www-data,目录权限建议 755,文件 644;SELinux/AppArmor 场景下按需放行。 |
| 防火墙阻断 | ufw status、ufw allow 80,443/tcp | 放行 80/443/tcp,或临时关闭防火墙验证是否为阻断原因。 |
| SSL/HTTPS 异常 | apache2ctl configtest、证书路径、端口 443 | 确认 SSLEngine on、证书与链文件路径正确;证书缺失可用 certbot 自动申请与部署。 |
三 配置语法与站点启用检查
全站配置语法校验:sudo apache2ctl configtest。若提示如“Invalid command ‘SSLEngine’”,说明相关模块(如 mod_ssl)未启用,需先启用模块再测试。
虚拟主机与启用链路:
模块管理(常见场景):
四 日志与网络连通性验证
错误日志与访问日志是定位问题的第一现场:
外部连通性与端口可达性:
五 变更与回滚的安全做法