Nginx不提示php错误如何解决- 不二云
基础教程 2025-05-28 22:59 108

Nginx下PHP错误显示解决方案

一、核心配置步骤

1. Nginx配置修改

server {
    location ~ \.php$ {
        # 开启PHP错误日志
        fastcgi_param PHP_VALUE "error_log=/var/log/nginx/php_errors.log";
        
        # 开启所有错误报告(开发环境)
        fastcgi_param PHP_VALUE "error_reporting=E_ALL";
        
        include fastcgi_params;
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;
    }
}

▸ 执行重载:sudo nginx -s reload

2. PHP配置修改

编辑 /etc/php/8.1/fpm/php.ini

; 开启错误显示
display_errors = On

; 设置错误报告级别
error_reporting = E_ALL

 重启PHP:sudo systemctl restart php8.1-fpm

二、按环境区分配置(推荐)

环境 display_errors error_log 安全建议
开发环境 On /dev/stderr 仅内网访问
生产环境 Off /var/log/php_errors.log 定期清理日志

三、验证配置效果

创建测试文件 info.php

<?php
// 触发警告错误
echo $undefinedVar;

访问页面应显示:

Warning: Undefined variable $undefinedVar in /path/to/info.php on line 3

四、常见问题排查

  1. 无错误显示

    • 检查PHP进程用户对日志文件的写权限

    • 确认修改的是正确的php.ini(使用php --ini查找)

  2. 仅需日志不显示页面

    display_errors = Off
    log_errors = On

    安全提示:生产环境务必关闭display_errors,避免暴露敏感信息

Powered by ©IDCSMART