在 Ubuntu 上用 Apache 出现 403 Forbidden,通常不是“权限不够”一个原因,而是多种配置叠加导致的。下面按最常见 → 较少见给你系统梳理。
Apache 运行用户通常是:
www-data
目录必须满足:
chmod 755 /var/www
chmod 755 /var/www/html
文件:
chmod 644 index.html
✅ 父目录 必须有执行权限(x)
如果你访问的是目录:
http://ip/
Apache 会找:
index.html
index.php
如果没有,而且没开目录浏览 → 403
✅ 解决:
ls /var/www/html
没有就创建:
echo "hello" > /var/www/html/index.html
检查 Apache 配置:
sudo nano /etc/apache2/apache2.conf
常见错误写法:
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all denied
</Directory>
✅ 必须改成:
Require all granted
然后重启:
sudo systemctl restart apache2
sudo nano /etc/apache2/sites-enabled/000-default.conf
确保有:
<Directory /var/www/html>
AllowOverride All
Require all granted
</Directory>
如果你放在:
/home/xxx/web
Apache 可能 无权访问
✅ 解决方式之一:
sudo chown -R www-data:www-data /home/xxx/web
chmod 755 /home/xxx
例如:
Deny from all
或:
Options -Indexes
都会触发 403
# 1. 看错误日志(最关键)
sudo tail -n 50 /var/log/apache2/error.log
# 2. 检查目录权限
namei -l /var/www/html/index.html
# 3. 检查配置
apache2ctl -t
# 4. 重启
sudo systemctl restart apache2
| 日志 | 原因 |
|---|---|
client denied by server configuration |
Directory 禁止 |
Permission denied |
文件/目录权限 |
No matching DirectoryIndex |
没首页 |
你可以直接贴:
/var/www/html 权限error.log 相关报错我可以 精准告诉你哪一行错了。