我经常会尝试运行PHP脚本,然后得到一个空白屏幕。没有错误信息;只有一个空屏幕。原因可能是一个简单的语法错误(错误的括号,缺少分号),或者函数调用失败,或者完全是其他原因。

很难找出哪里出了问题。我最终注释掉了代码,到处输入“echo”语句,等等,试图缩小问题的范围。但肯定有更好的办法,对吧?

是否有一种方法可以让PHP像Java那样产生有用的错误消息?


当前回答

要打开完整的错误报告,请在脚本中添加以下内容:

error_reporting(E_ALL);

这甚至会导致出现最小的警告。还有,以防万一:

ini_set('display_errors', '1');

将强制显示错误。这应该在生产服务器中关闭,但在开发时不可以。

其他回答

如果你是一个ubuntu用户,那么在你的终端上运行这个命令

sudo tail -50f /var/log/apache2/error.log

它将显示最近的50个错误。 apache2有一个错误文件error.log,用来记录所有错误。

我总是在php脚本的最顶部使用这种语法。

ini_set('error_reporting', E_ALL);
ini_set('display_errors', 'On');  //On or Off

如果错误是在PHP代码中,您可以在代码中使用error_reporting()函数来设置为报告所有。

但是,这并不能处理PHP崩溃的情况。这方面的信息只能在服务器日志中找到。也许你无法访问这些,但我合作过的许多托管提供商都有某种方式让你访问它。例如,我最喜欢的方法是在.php所在的当前目录中创建error_log文件。尝试在那里搜索或联系您的主机提供商。

打开php.ini, 确保它被设置为:

display_errors = On

重新启动服务器。

下面将启用所有错误:

ini_set('display_startup_errors', 1);
ini_set('display_errors', 1);
error_reporting(-1);

请参见以下链接

http://php.net/manual/en/errorfunc.configuration.php#ini.display-errors http://php.net/manual/en/errorfunc.configuration.php#ini.display-startup-errors http://php.net/manual/en/function.error-reporting.php