撰写时间:2019-03-04,整理时间:2023-01-30
一、概述
从源代码安装PHP的默认情况下,在运行代码时如果出现错误不提示任何错误信息,其实我们只有修改以下PHP的配置文件就可以让它显示错误信息了
二、环境
- Ubuntu 16.04 操作系统
- 从源码安装的 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);
如下图所示:
参数说明:
- 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_NOTICE
、 E_STRICT
、E_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