要开启或关闭 PHP 的错误讯息有几种方法, 分别是在 php.ini 内设定, httpd.conf 及 .htaccess 设定, 或者在 PHP 程式内设定, 以下是各种方法的设定方法。
1. php.ini
在 php.ini 一般默认路径在 /etc/php.ini, 在 php.ini 内找到 display_errors, 设定为 On 是开启错误信息, Off 是关闭输出:
display_errors = On # 开启错误提示
display_errors = Off # 关闭错误提示
1
2
3
display_errors=On# 开启错误提示
display_errors=Off# 关闭错误提示
另一个可以设定的选项是 error_reporting, 它可以设定输出那些错误提示, 常用的设定有:
error_reporting E_ALL # 输出全部错误
error_reporting E_ALL & ~E_NOTICE # 除了 Notice 外,全部错误输出
error_reporting 0 # 不输出任何错误
1
2
3
4
5
error_reportingE_ALL# 输出全部错误
error_reportingE_ALL&~E_NOTICE# 除了 Notice 外,全部错误输出
error_reporting0# 不输出任何错误
修改 php.ini 后, 需要重新启动网页服务器, 设定才会生效:
# systemctl restart httpd
2. httpd.conf / .htaccess
另一种方法是透过 apache 的层面设定, 可以在 httpd.conf 及 .htaccess 设定, 好处是可以对个别虚拟主机或目录进行设定, 不用修改整台服务器的设定, CentOS 下 httpd.conf 的默认位置在 /etc/httpd/conf/httpd.conf
# vi /etc/httpd/conf/httpd.conf
在提定的目录或 VirtualHost 设定, 例如想在 /var/www/html/debug 设定输出全部错误, 可以这样:
php_flag display_errors On
php_flag error_reporting 32767
1
2
3
php_flagdisplay_errorsOn
php_flagerror_reporting32767
可以看到设定跟 php.ini 差不多, 只是在 php 选项前加入 php_flag 或 php_value 设定, 而在 httpd.conf 的设定, 需要重新启动网页服务器, 设定才会生效:
# systemctl restart httpd
以上语法如果放在 .htaccess 内同样适用, 而且不用重新启动网页服务器, 只要在设定的目录下建立 .htaccess, 加入以下语法即可:
php_flag display_errors On
php_flag error_reporting 32767
p.s. error_reporting 只可以用数值设定, 所有设定数值可以在 PHP 官网 取得。
3. PHP 程式
另一个方法是在 php 程式内设定, 分别可以用 ini_set() 及 error_reporting() 两个函式设定:
ini_set('display_errors','off'); # 关闭错误输出
ini_set('display_errors','on'); # 开启错误输出
error_reporting(E_ALL & ~E_NOTICE) # 设定输出错误类型
?>
1
2
3
4
5
6
7
ini_set('display_errors','off');# 关闭错误输出
ini_set('display_errors','on');# 开启错误输出
error_reporting(E_ALL&~E_NOTICE)# 设定输出错误类型
?>
你可能感兴趣的内容: