nginx不提示php错误如何解决

后端开发   发布日期:2024年05月13日   浏览次数:301

本篇内容主要讲解“nginx不提示php错误如何解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“nginx不提示php错误如何解决”吧!

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

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

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

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

打开Nginx服务器的配置文件,一般为

  1. /etc/nginx/nginx.conf
,找到
  1. http{}
块,添加如下配置:

  1. server {
  2. # server settings
  3. ...
  4. # server block location rules
  5. ...
  6. # php-fpm status check
  7. location ~ ^/(status|ping)$ {
  8. access_log off;
  9. # php-fpm settings
  10. fastcgi_param PHP_VALUE "error_reporting=E_ALL";
  11. include fastcgi_params;
  12. fastcgi_pass unix:/run/php/php7.4-fpm.sock;
  13. }
  14. # php error logs
  15. location ~ .php$ {
  16. fastcgi_param PHP_VALUE "error_log=/var/log/nginx/php_error.log";
  17. include fastcgi_params;
  18. fastcgi_pass unix:/run/php/php7.4-fpm.sock;
  19. }
  20. # error pages
  21. error_page 404 /404.html;
  22. error_page 500 502 503 504 /50x.html;
  23. # static files
  24. location ~* .(jpg|jpeg|gif|png|css|js|ico)$ {
  25. expires 7d;
  26. access_log off;
  27. }
  28. # disable direct access to .ht files
  29. location ~ /.ht {
  30. deny all;
  31. }
  32. }

其中,

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

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

  1. sudo systemctl reload nginx

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

PHP的配置文件一般为

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

  1. error_reporting = E_ALL

然后找到

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

  1. display_errors = On

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

  1. sudo systemctl restart php7.4-fpm

以上就是nginx不提示php错误如何解决的详细内容,更多关于nginx不提示php错误如何解决的资料请关注九品源码其它相关文章!