nginx不提示php错误如何解决
本篇内容主要讲解“nginx不提示php错误如何解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“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
相关内容
这些是最新的
热门排行
- THINKPHP5+GatewayWorker+Workerman 开发在线客服系统
- 在手机浏览器网页中点击链接跳转到微信界面的方法
- 尊云网站目录系统 ThinkPHP5网站分类目录程序 v2.2.221011
- CentOS 7安装shadowsock(一键安装脚本)
- AdminTemplate 基于LayUI 2.4.5实现的网站后台管理模板
- 用NW.js(node-webkit)开发多平台的桌面客户端
- PHP生成随机昵称/用户名
- THINKPHP5网站分类目录程序 尊云网站目录系统
- 织梦(DEDECMS)微信支付接口 微信插件
- 基于LayUI开发的 网站后台管理模板 BeginnerAdmin
- 响应式后台网站模板 - AMA.ADMIN
- layuiAdmin后台管理模板 Iframe版
- LayUI 1.0.9 升级 至 LayUI 2.1.4 方法
- 简洁清爽的会员中心模板
- jQuery幸运大转盘抽奖活动代码