You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Debian VPS部署Laravel遇403权限禁止访问问题求助

问题排查与解决方案

核心问题分析

你遇到的403禁止访问问题,主要源于三个关键错误:

  1. Apache虚拟主机的DocumentRoot指向错误:Laravel的Web入口文件在public目录,而非项目根目录
  2. 权限命令完全搞反:目录需要执行权限才能进入,文件仅需读取权限,你的设置完全颠倒
  3. Apache权限指令冲突:Apache 2.4版本下,旧版Order/Allow指令与新版Require指令混用会导致权限规则混乱

具体修复步骤

1. 修正Apache虚拟主机配置(/etc/apache2/sites-enabled/laravel.conf)

将配置修改为以下内容,重点调整DocumentRoot和清理冲突指令:

<VirtualHost *:80>
    ServerAdmin admin@example.com
    # 指向Laravel的public目录(核心修正)
    DocumentRoot /var/www/html/laravel_app/public
    <Directory /var/www/html/laravel_app/public>
        DirectoryIndex index.php
        Options Indexes FollowSymLinks
        AllowOverride All
        # 仅保留Apache 2.4标准权限指令
        Require all granted
    </Directory>
    LogLevel debug
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

备注:如果没有用到3000端口,直接移除*:3000,避免不必要的端口监听

2. 重置并修正项目权限

执行以下命令修复权限问题:

# 重置所有目录权限为755(允许进入目录)
sudo find /var/www/html/laravel_app -type d -exec chmod 755 {} \;
# 重置所有文件权限为644(允许读取文件)
sudo find /var/www/html/laravel_app -type f -exec chmod 644 {} \;
# 给Laravel必须的可写目录赋予Apache用户权限
sudo chown -R www-data:www-data /var/www/html/laravel_app/storage /var/www/html/laravel_app/bootstrap/cache
sudo chmod -R 775 /var/www/html/laravel_app/storage /var/www/html/laravel_app/bootstrap/cache

3. 确保Apache重写模块启用

sudo a2enmod rewrite

4. 重启Apache服务使配置生效

sudo systemctl restart apache2

修复逻辑说明

  • 指向public目录是Laravel标准部署要求:既保证入口文件正确识别,也避免.env等敏感文件暴露
  • 正确的权限设置确保Apache(www-data用户)能正常读取文件、进入目录,同时拥有storage目录的写入权限(Laravel需此存储日志、缓存等)
  • 清理冲突的Apache指令,避免权限规则互相覆盖导致的访问限制

内容的提问来源于stack exchange,提问作者user10659018

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 15:01:31