在没有php.ini的情况下设置display_errors = 0和log_errors = 1

时间:2012-03-15 22:15:09

标签: php error-handling

由于我无法控制的原因,我无法在生产服务器上的php.ini中设置display_errors = 0和log_errors = 1。我知道我可以设置error_reporting(0);来完全禁止所有错误消息,但这会影响日志错误和显示的错误。我希望在运行时设置display_errors = 0和log_errors = 1等效。这可能吗?感谢。

3 个答案:

答案 0 :(得分:12)

两者都是PHP_INI_ALL,因此您可以在运行时使用ini_set

ini_set('display_errors', 0);
ini_set('log_errors', 1);

请参阅http://php.net/manual/en/ini.list.php

答案 1 :(得分:3)

试试这个:

ini_set('display_errors', 0);
ini_set('log_errors', 1);

答案 2 :(得分:0)

如果您使用PHP作为模块并且不能使用php.ini主指令也不能覆盖所需文件夹上的php.ini,并且您不会在php文件上启用它,您可以尝试使用.htaccess habilities。< / p>

在包含应用程序的文件夹的顶部,输入.htaccess文件: php_flag display_errors 0

仅应用于php输出显示而非日志。

无论如何,有关ini_set()的解决方案仅适用于包含它的页面。 注意:如果包含,则display_error值在解析时将起作用。但如果你直接访问它将无法正常工作。