浏览器上没有PHP错误。什么配置导致无声失败?

时间:2011-12-24 17:25:48

标签: php

我试图在Amazon EC2上运行一个简单的PHP脚本。 当我在浏览器上出现空白屏幕时,开始在步骤之间添加一些垃圾语法或回声。然后我发现脚本失败没有任何错误。

如何禁用静默失败?

<?php

putenv('HOME=/root');
echo 'after env'; //displayed on browser
require_once('/home/ec2-user/AWSSDKforPHP/sdk.class.php'); 
//i believe this require step was failed 
echo 'after require'; // not displayed on browser
$ec2 = new AmazonEC2();
$response = $ec2->describe_availability_zones();
print_r($response);
echo 'hello';

?>

4 个答案:

答案 0 :(得分:7)

可能取决于您的php.ini设置,错误显示或错误报告可能已关闭。

将其添加到脚本的顶部:

ini_set('display_errors', 1);
error_reporting(E_ALL);

答案 1 :(得分:3)

你可以使用Wesley Murch的相同答案

将其添加到脚本的顶部:

ini_set('display_errors', 1);
error_reporting(E_ALL);

上面你不需要做任何事情,只需刷新你的php页面。

或编辑“/etc/php5/apache2/php.ini”中的php.ini文件 并添加或编辑该行

display_errors = On

如果编辑php.ini文件,则需要重启apache。 (有时它不起作用,然后你应该使用第一个/本地解决方案)

Ubuntu的:

sudo service apache2 restart

我希望它有效。

答案 2 :(得分:2)

请尝试以下方法之一:

// Turn off all error reporting
error_reporting(0);

// Report simple running errors
error_reporting(E_ERROR | E_WARNING | E_PARSE);

// Reporting E_NOTICE can be good too (to report uninitialized
// variables or catch variable name misspellings ...)
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

// Report all errors except E_NOTICE
// This is the default value set in php.ini
    error_reporting(E_ALL ^ E_NOTICE); # this is what you might want to try using

// Report all PHP errors (see changelog)
error_reporting(E_ALL);

// Report all PHP errors
error_reporting(-1);

// Same as error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);

答案 3 :(得分:0)

我遇到了这个问题并通过编辑/etc/php.ini来修复它以显示display_errors = On