服务器安全:display_errors为Off仍无效
如果你的服务器中php.ini中设置:display_errors为Off仍无效,仍然输出报错,可能会百思不得其解,按以下方法解决,可以奏效。
某台服务器php.ini的设置:
error_reporting = E_ALL & ~E_NOTICE
display_errors = Off
log_errors = On
error_log = /www/logs/php_error.log
按理说这样,错误信息是不会输出了,但是当PHP有错误时,会把报错提示显示在页面上。
搜索了下,发现有人说当log_errors开启时,如果error_log的路径不对,会导致报错显示。经查与此无关。
输出phpinfo(),查看到display_errors是On。在页面中指定:ini_set("DISPLAY_ERRORS",0),仍然无效!
最后发现php-fpm.conf里有句:
Additional php.ini defines, specific to this pool of workers.
<value name="php_defines">
<value name="sendmail_path">/usr/sbin/sendmail -t -i</value>
<value name="display_errors">1</value>
</value>
原来忘了修改这个地方的配置,display_errors被设置为1了!这里面也说明了在php_defines里可以额外指定某些php的参数。
直接将这两段注释掉,php-fpm reload后,报错提示不再显示到页面上了。
注释方法:
/*需要注释的代码段*/,或者改1为0即可。
转截请注明:文章来自 pc捍卫者 http://www.pchwz.com
本站发布此文为传递更多信息之目的,不表明pc捍卫者赞同其观点