温馨提示×

ubuntu lamp为何报错403

小樊
35
2026-10-15 17:37:13
栏目: 智能运维

在 Ubuntu 上搭建 LAMP(Linux + Apache + MySQL + PHP) 环境时,访问网页出现 403 Forbidden 是非常常见的问题。下面按最常见原因 → 排查方法 → 解决办法给你总结一下。


一、最常见原因汇总

1️⃣ Apache 目录权限不足(最常见)

Apache 默认以 www-data 用户运行,如果网站目录没有给它读权限,就会 403。

检查:

ls -l /var/www/html

解决:

sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/html

2️⃣ 没有 index 文件(DirectoryIndex 问题)

如果目录里没有 index.html 或 index.php,且未开启目录浏览,就会 403。

解决:

sudo apt install libapache2-mod-php

确保有:

/var/www/html/index.php

或修改 Apache 配置:

DirectoryIndex index.php index.html

3️⃣ Apache 配置中 Require 限制了访问

Ubuntu 的 Apache 默认配置中可能有:

<Directory /var/www/html>
    Require all granted
</Directory>

如果是:

Require local

或

Require ip 127.0.0.1

远程访问就会 403。

解决:

sudo nano /etc/apache2/apache2.conf

修改:

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

然后:

sudo systemctl restart apache2

4️⃣ .htaccess 或 AllowOverride 问题

如果你用了 .htaccess,但 Apache 没开 AllowOverride:

AllowOverride None

会导致 403。

解决:

AllowOverride All

5️⃣ SELinux(Ubuntu 一般没有,但值得提一句)

Ubuntu 默认 不用 SELinux,用 AppArmor,所以一般不是这个问题。


6️⃣ 访问的是子目录但无权限

例如:

http://ip/test/

但 /var/www/html/test 权限不对。

解决:

sudo chmod 755 /var/www/html/test

7️⃣ 虚拟主机配置错误

如果是自定义 vhost:

sudo nano /etc/apache2/sites-available/xxx.conf

确认:

DocumentRoot /var/www/html
<Directory /var/www/html>
    Require all granted
</Directory>

启用:

sudo a2ensite xxx.conf
sudo systemctl reload apache2

二、快速排查流程(推荐)

# 1. 看 Apache 错误日志
sudo tail -n 50 /var/log/apache2/error.log

# 2. 看权限
ls -l /var/www/html

# 3. 看配置
sudo apache2ctl configtest

三、如果你愿意,我可以直接帮你定位

你可以把下面信息发我:

  1. Ubuntu 版本
  2. Apache 版本
  3. 访问的 URL
  4. /var/log/apache2/error.log 中的报错内容
  5. 是否是虚拟主机

我可以直接告诉你是哪一条导致的 403。

0 踩