您好,欢迎访问一九零五行业门户网

nginx不提示php错误怎么解决

在日常的网站开发中,我们经常会使用nginx作为web服务器,并配合php作为后端语言。然而有时候我们会发现,即使php中存在错误,nginx也不会提示任何信息,这让我们调试程序非常困难。本文将介绍一些解决方法,使nginx能够提示php错误信息。
一、理解错误报告及搜集方法
在部署服务器的过程中,我们习惯性地关闭了php的错误输出,这是因为php的错误信息可能会导致安全隐患暴露,或导致信息泄露。但是在开发过程中,我们需要这些错误信息来定位问题和调试程序。
解决这一问题的方法之一是打开php的错误输出。在php中我们可以设置错误日志级别或者即时报告错误。同时,我们也可以在nginx的配置文件中添加一些选项来显示php错误信息。
二、nginx 配置文件中的 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 web服务器提示php错误信息隐藏的技巧在于,从nginx服务器和php进程两个方面来设置。这可以帮助开发者快速找出代码中的错误,有助于快速修复问题并提高代码质量。
以上就是nginx不提示php错误怎么解决的详细内容。
其它类似信息

推荐信息