nginx不提示php错误如何解决

一、理解错误报告及搜集方法

在部署服务器的过程中,我们习惯性地关闭了PHP的错误输出,这是因为PHP的错误信息可能会导致安全隐患暴露,或导致信息泄露。但是在开发过程中,我们需要这些错误信息来定位问题和调试程序。

解决这一问题的方法之一是打开PHP的错误输出。在PHP中我们可以设置错误日志级别或者即时报告错误。我们可以在Nginx的配置文件中添加一些选项,以显示PHP错误信息。

二、Nginx 配置文件中的 PHP 错误设置

立即学习“PHP免费学习笔记(深入)”;

打开Nginx服务器的配置文件,一般为/etc/nginx/nginx.conf,找到http{}块,添加如下配置:

server {    # server settings    ...        # server block location rules    ...    # php-fpm status check    location ~ ^/(status|ping)$ {        access_log off;        # php-fpm settings        fastcgi_param PHP_VALUE "error_reporting=E_ALL";        include fastcgi_params;        fastcgi_pass unix:/run/php/php7.4-fpm.sock;    }    # php error logs    location ~ \.php$ {        fastcgi_param PHP_VALUE "error_log=/var/log/nginx/php_error.log";        include fastcgi_params;        fastcgi_pass unix:/run/php/php7.4-fpm.sock;    }    # error pages    error_page 404 /404.html;    error_page 500 502 503 504 /50x.html;    # static files    location ~* \.(jpg|jpeg|gif|png|css|js|ico)$ {        expires 7d;        access_log off;    }    # disable direct access to .ht files    location ~ /\.ht {        deny all;    }}

登录后复制

其中,fastcgi_param PHP_VALUE用于向Nginx服务器请求的PHP进程传递错误信息。 error_reporting=E_ALL表示输出所有错误级别的信息。fastcgi_param PHP_VALUE “error_log=/var/log/nginx/php_error.log”;表示将PHP错误信息输出到/var/log/nginx/php_error.log文件中。

更改完配置文件后,重新加载Nginx服务器:

sudo systemctl reload nginx

登录后复制

三、PHP 配置文件中的错误设置

PHP的配置文件一般为/etc/php/7.4/fpm/php.ini,找到error_reporting这一行,将其设置为显示所有的错误信息:

error_reporting = E_ALL

登录后复制

然后找到display_errors这一行,将其设置为On,这样就可以在网页上显示所有的PHP错误信息了:

display_errors = On

登录后复制

然后保存文件并重启PHP-FPM:

sudo systemctl restart php7.4-fpm

登录后复制

以上就是nginx不提示php错误如何解决的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/3239879.html

(0)
上一篇 2025年4月2日 05:30:02
下一篇 2025年4月2日 05:30:11

AD推荐 黄金广告位招租... 更多推荐

相关推荐

发表回复

登录后才能评论