如何为单个脚本打开PHP错误报告


How to turn on PHP error reporting for a single script?

我的任务是在一些旧的生产服务器上上传一个脚本,正如预期的那样,很多东西都不起作用。

我想知道是否有可能在没有访问实际的php.ini文件的情况下为单个脚本打开错误报告。

我试过这个:PHP生产服务器-打开错误消息,使用:

ini_set('display_errors', 'On');
ini_set('display_errors', 1);
ini_set('display_errors', '1');

但是这在这个服务器上不起作用。如果我触发一个错误,例如:

public static funtion myfunc() { … }

或者我尝试使用未定义的函数,例如:

password_verify();

我最后盯着一个空白的屏幕。我也无法访问任何(有用的)日志。我也试过这个:如何在PHP中获得有用的错误消息?,但是我也不能访问任何.htaccess文件。

是否有其他方法来启用此功能?或者捕获严重错误并以编程方式显示其信息是可能的吗?服务器的PHP版本是5.3 (5.3.28)

从你发布的链接,你有没有尝试改变

ini_set('display_errors', 'On');

ini_set('display_errors', 1)

欢呼

一个老问题,但是我在一个客户的服务器上偶然发现了这个问题,当时负责Apache的人在一个非常不同的时区,我不想等8个小时。如果将代码放入try catch块中,如下所示:

try {
   //your test code here
}
catch (Exception $e)
{
   echo $e->getMessage();
}

这应该能解决你的很多问题。

如果服务器在apache配置中配置了带有'php_admin_value'标志的display_errors,那么您可能不走运。这可以防止用htaccess或ini_set函数重写。http://www.php.net/manual/en/configuration.changes.php

您可以使用自己的错误处理函数set_error_handler获取错误,但它也有一些限制。它只能捕获警告和用户定义的错误。http://www.php.net/manual/en/function.set-error-handler.php