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
四、常见问题排查
-
无错误显示:
-
检查PHP进程用户对日志文件的写权限
-
确认修改的是正确的php.ini(使用
php --ini
查找)
-
-
仅需日志不显示页面:
display_errors = Off log_errors = On
安全提示:生产环境务必关闭
display_errors
,避免暴露敏感信息