我试图关闭我网站上的所有错误.我已经按照不同的教程来了解如何执行此操作,但我不断阅读并打开错误消息.有什么我想念的吗?我在php.ini文件中尝试了以下内容:
;Error display
display_startup_errors = Off
display_errors = Off
html_errors = Off
docref_root = 0
docref_ext = 0
Run Code Online (Sandbox Code Playgroud)
出于某种原因,当我对不存在的文件执行fileopen()调用时,仍然会显示错误.出于显而易见的原因,这对于实时网站来说是不安全的.
谢谢
She*_*ock 29
我总是在配置文件中使用这样的东西:
// toggle this to change the setting
define('DEBUG', true);
// you want all errors to be triggered
error_reporting(E_ALL);
if(DEBUG == true)
{
// you're developing, so you want all errors to be shown
display_errors(true);
// logging is usually overkill during dev
log_errors(false);
}
else
{
// you don't want to display errors on a prod environment
display_errors(false);
// you definitely wanna log any occurring
log_errors(true);
}
Run Code Online (Sandbox Code Playgroud)
这样可以在调试设置之间轻松切换.您可以通过检查代码运行的服务器(开发,测试,验收,产品)并相应地更改您的设置来进一步改进.
请注意,如果将error_reporting设置为0,则不会记录任何错误,正如Korri巧妙地评论的那样.
Lev*_*ite 24
您应该考虑不显示错误消息!
设置ini_set('display_errors', 'Off');在您的PHP代码中(如果可能,直接进入您的ini),并保留error_reporting E_ALL或您希望在日志中找到的任何类型的消息.
这样,您可以在以后处理错误,而您的用户仍然看不到它们.
define('DEBUG', true);
error_reporting(E_ALL);
if (DEBUG)
{
ini_set('display_errors', 'On');
}
else
{
ini_set('display_errors', 'Off');
}
Run Code Online (Sandbox Code Playgroud)
define('DEBUG', true);
error_reporting(E_ALL);
ini_set('display_errors', DEBUG ? 'On' : 'Off');
Run Code Online (Sandbox Code Playgroud)
在php.ini评论中,
error_reporting = E_ALL & ~E_NOTICE
error_reporting = E_ALL & ~E_NOTICE | E_STRICT
error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ER… _ERROR
error_reporting = E_ALL & ~E_NOTICE
Run Code Online (Sandbox Code Playgroud)
放在它;前面(即像;error_reporting = E_ALL & ~E_NOTICE)
要在单个文件中禁用,请error_reporting(0);在打开php标记后放置.
让我快速总结一下这个参考:
error_reporting() 调整默认错误处理程序的当前活动设置.
编辑错误报告ini选项也会更改默认值.
在这里编辑正确的 php.ini版本是必要的- 它通常/etc/php5/fpm/php.ini在现代服务器上,/etc/php5/mod_php/php.ini或者; 而CLI版本有一个独特的版本.
或者,您可以根据SAPI使用:
.htaccess带php_flag选项php.ini.user.ini
像往常一样重新启动网络服务器.
如果您的代码不实用并且在运行时以某种方式将这些选项重置为其他选项,那么另一种快速方法是定义一个自定义错误处理程序,它只会扼杀所有通知/警告/错误:
set_error_handler(function(){});
Run Code Online (Sandbox Code Playgroud)
同样,这是不可取的,只是一种替代方案.
| 归档时间: |
|
| 查看次数: |
218795 次 |
| 最近记录: |