网站403错误主因是www用户无访问权限:需执行chown -r www:www修复所有者,chmod 755修复目录权限(含执行位),并确认运行目录下存在小写index.html或index.php且路径大小写完全匹配。

宝塔面板建站成功但访问返回 403 Forbidden,八成不是配置写错了,而是网站目录压根没让 www 用户进门——权限、所有者、首页文件三者只要缺一个,Nginx 就直接拒之门外。
检查目录所有者是否为 www
Linux 下进程只能以指定用户身份读文件。宝塔默认用 www 用户跑 Nginx 和 PHP-FPM,如果目录属于 root 或其他用户,Nginx 连 opendir() 都失败,必然 403。
- 执行
ls -ld /www/wwwroot/your-domain.com,看输出第三、四列是不是www www - 如果不是,立刻运行
chown -R www:www /www/wwwroot/your-domain.com(-R不可省,否则只改了目录没改里面文件) - 别信“建站向导自动设好了”——手动核对一次比修半小时 rewrite 规则快得多
确认目录权限是否含执行位(x)
目录必须有执行权限(x),Nginx 才能进入它、遍历子目录、查找 index.php。设成 644 或 744 看似安全,实则等于锁死整个目录。
- 目录权限应为
755:所有者可读写执行,组和其他人可读可执行 - 运行
find /www/wwwroot/your-domain.com -type d -exec chmod 755 {} \;递归修复所有子目录 -
777不仅无效,还可能触发宝塔安全模块拦截或 SELinux 拒绝,别碰
验证默认首页文件是否存在且命名正确
Nginx/Apache 不会自动列出目录内容(除非显式开启 autoindex),它只按固定顺序找 index.html、index.htm、index.php。缺一个、拼错一个、大小写错一个,就 403。
- 进宝塔【文件】管理器,打开你设置的“运行目录”(不是根目录!),确认里面有且仅有小写的
index.html或index.php - 禁止使用
Index.html、index.PHP、首页.html、default.html—— 这些都不在默认索引列表里 - 如果用了 Laravel,确保
public/index.php是实际运行目录,且该文件权限是644、所有者是www:www
最容易被忽略的是“运行目录”和物理路径不一致:宝塔配置里写的是 /www/wwwroot/example.com,但实际目录名是 example_com 或 Example.com,Linux 路径严格区分大小写,Nginx 找不到就 fallback 到 403 —— 这类问题连日志都不报具体路径错误,只能手动 ls -d 对一遍。











