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

生产环境显示Nginx错误页而非Laravel错误页的解决咨询

LEMP环境下Laravel自定义错误页不显示的问题解决

是否为正常设计?

这不是正常设计。Laravel默认自带404、419等场景的自定义友好错误视图,出现Nginx原生错误页的原因是:Nginx优先捕获了这些HTTP状态码,没有将请求转发给Laravel处理。

修复步骤

1. 调整Nginx站点配置

编辑你的Laravel站点Nginx配置文件(通常位于/etc/nginx/sites-available/目录下),确保以下关键配置正确:

  • 确保try_files指令将所有未匹配到静态文件的请求转发给Laravel入口文件:
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
    
  • 添加错误页转发规则,让Nginx将404、419状态码的请求交给Laravel处理:
    error_page 404 419 /index.php;
    
  • 检查FastCGI配置,确保请求参数正确传递给PHP-FPM:
    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php8.2-fpm.sock; # 根据你的PHP版本修改路径
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param REQUEST_URI $request_uri;
        include fastcgi_params;
    }
    

2. 确保Laravel错误视图存在

如果你的项目中没有自定义错误视图,可通过Artisan命令生成Laravel默认的错误视图文件:

php artisan vendor:publish --tag=laravel-errors

生成的视图文件位于resources/views/errors/目录下,你可以根据需求修改这些文件的样式。

3. 验证Laravel环境配置

确保.env文件中的APP_DEBUG设置为false(生产环境):

APP_DEBUG=false

当APP_DEBUG=true时,Laravel会显示详细的调试错误页,而非自定义友好错误页。

4. 重启Nginx服务

修改配置后,重启Nginx使设置生效:

sudo systemctl restart nginx

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 12:12:08