我的任务是在一些旧的生产服务器上上传一个脚本,正如预期的那样,很多东西都不起作用。
我想知道是否有可能在没有访问实际的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