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

解决全新Laravel 11安装中的403 Forbidden错误

CentOS+Aapanel+Nginx环境下Laravel 11 403 Forbidden错误解决方法

核心问题说明

你用的是Nginx服务器,.htaccess是Apache专属配置文件,修改它对Nginx完全无效,得从Nginx配置和Laravel部署规范入手解决。

具体修复步骤

  • 修正Nginx URL重写规则
    替换你当前的location /配置为以下内容:

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
    
    location ~ \.php$ {
        fastcgi_pass unix:/run/php-fpm/www.sock; # 可根据你的PHP版本调整路径,Aapanel默认一般为该路径
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
    

    原配置里的index.html会优先匹配静态文件,导致Laravel无法接管请求,且缺少?$query_string会丢失请求参数,修正后才能让Nginx正确将请求转发给Laravel处理。

  • 检查Laravel目录权限
    执行以下命令确保目录权限正确(替换/path/to/laravel-project为你的项目实际路径):

    chown -R www:www /path/to/laravel-project
    chmod -R 755 /path/to/laravel-project/storage
    chmod -R 755 /path/to/laravel-project/bootstrap/cache
    

    Aapanel的Nginx/php-fpm默认运行用户是www,必须让项目目录归该用户所有,否则Laravel无法写入日志和缓存文件,会触发403或500错误。

  • 确认站点根目录配置
    在Aapanel的站点管理中,将Laravel站点根目录设置为项目的public文件夹(比如/www/wwwroot/laravel-project/public),而非项目根目录。这是Laravel部署的强制规范,直接指向项目根目录会导致Nginx无法正确解析入口文件,同时暴露敏感配置文件。

  • 重启Nginx服务
    修改配置后,在Aapanel面板的「软件商店」-「已安装」中找到Nginx点击「重启」;或执行命令:

    systemctl restart nginx
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 07:02:43