首页 怎样让PHP提示错误信息
文章
取消

怎样让PHP提示错误信息

撰写时间:2019-03-04,整理时间:2023-01-30

一、概述

从源代码安装PHP的默认情况下,在运行代码时如果出现错误不提示任何错误信息,其实我们只有修改以下PHP的配置文件就可以让它显示错误信息了

二、环境

    1. Ubuntu 16.04 操作系统
    1. 从源码安装的 PHP 7.2.7

三、解决步骤

首先使用编辑工具打开 php 配置文件,我的php安装目录是/usr/local/php,配置文件的目录在该目录下的/etc目录

1
vim /usr/local/php/etc/php.ini

在php配置文件的头部添加以下几行代码

1
2
3
4
# ini_set函数作用:为一个配置选项设置值,
ini_set("display_errors", "stderr");
# error_reporting是设置错误报告内容,E_ALL代表显示所有错误
error_reporting(E_ALL);

如下图所示:

深度截图_20190304083611.png

参数说明:

  • display_errors

在php的配置文件中,”display_errors”选项设置作用是:是否将错误信息作为输出的一部分显示到屏幕,或者对用户隐藏而不显示。设置 “stderr” 表示发送到 stderr 而不是 stdout。 “stderr”从 PHP 5.2.4 开始可用。在以前的版本中,该配置值的类型为 boolean。

stdout(标准输出),输出方式是行缓冲。输出的字符会先存放在缓冲区,等按下回车键时才进行实际的I/O操作。

stderr(标准出错),是不带缓冲的,这使得出错信息可以直接尽快地显示出来。

尽管 display_errors 也可以在运行时设置 (使用 ini_set()), 但是脚本出现致命错误时任何运行时的设置都是无效的。 因为在这种情况下预期运行的操作不会被执行。

  • error_reporting

设置错误报告的级别。该参数可以是一个任意的表示二进制位字段的整数,或者常数名称。错误级别和常数是在 预定义常量定义的。

在 PHP5.3 及以上版本中,默认值为 E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED。 该设置不会显示 E_NOTICEE_STRICTE_DEPRECATED 级错误提示。

在 PHP 5.3.0 以前版本中,默认值是 E_ALL & ~E_NOTICE & ~E_STRICT

在 PHP 4 中,默认值是 E_ALL & ~E_NOTICE

四、重启服务器

重启Apache服务器或者PHP-FPM之后,即可看到运行错误代码时会提示错误信息

参考php官方文档:http://php.net/manual/zh/errorfunc.configuration.php#ini.display-errors

本文由作者按照 CC BY 4.0 进行授权

Linux下php安装curl扩展

怎样利用钩子实现git仓库的PHP代码自动部署?