在 Ubuntu 上检查 Apache2 配置 通常包括:语法检查、模块状态、虚拟主机配置、端口监听、日志排查等。下面按常用场景给你一个完整清单。
sudo apache2ctl configtest
或
sudo apache2ctl -t
✅ 正常输出:
Syntax OK
❌ 常见错误示例:
AH00526: Syntax error on line 12 of /etc/apache2/sites-enabled/xxx.conf
Ubuntu 的 Apache2 配置目录:
/etc/apache2/
主要文件/目录:
/etc/apache2/
├── apache2.conf # 主配置文件
├── ports.conf # 监听端口
├── sites-available/ # 可用站点
├── sites-enabled/ # 已启用站点(软链接)
├── mods-available/ # 可用模块
├── mods-enabled/ # 已启用模块
├── conf-available/
├── conf-enabled/
ls /etc/apache2/sites-enabled/
apache2ctl -S
示例输出:
VirtualHost configuration:
*:80 is a NameVirtualHost
default server localhost (/etc/apache2/sites-enabled/000-default.conf:1)
可看到:
sudo netstat -tlnp | grep apache
或
sudo ss -tlnp | grep apache
常见端口:
80(HTTP)443(HTTPS)sudo systemctl status apache2
sudo systemctl start apache2
sudo systemctl restart apache2
sudo systemctl stop apache2
apache2ctl -M
sudo a2enmod rewrite
sudo a2dismod rewrite
常用模块:
rewrite(URL 重写)sslproxyheaderssudo tail -f /var/log/apache2/error.log
sudo tail -f /var/log/apache2/access.log
<Directory /var/www/html>
AllowOverride All
</Directory>
rewrite 模块已启用:sudo a2enmod rewrite
sudo systemctl restart apache2
sudo apache2ctl configtest
sudo systemctl status apache2
sudo tail -n 50 /var/log/apache2/error.log
apache2ctl -S
| 问题 | 原因 |
|---|---|
| AH00558 | ServerName 未设置 |
| AH00072 | 端口被占用 |
| 403 Forbidden | 目录权限 / AllowOverride |
| 404 | DocumentRoot 错误 |
| 500 | .htaccess 语法错误 |
如果你愿意,可以把 具体报错信息 / 配置文件内容 发出来,我可以直接帮你精确定位问题。