PHP错误未在浏览器中显示

9
我遇到了一个奇怪的问题。我在php.ini文件中设置了所有内容,但是浏览器中没有显示任何错误信息。我在谷歌上搜索了如何设置.ini文件并完成了所有必要的步骤。但是我仍然无法在浏览器中显示错误消息。我的PHP ini设置:
display_errors = On
display_startup_errors = On
error_reporting = E_ALL | E_STRICT
log_errors = On
track_errors = On

我尝试了以下代码以查看错误消息:

<?php
      require_once("sample.php");
 ?>

实际上,这个样本文件并不可用。因此,它必须显示致命错误。但它正在显示一个空白页面。

您能指出如何修复这个问题吗?我不知道我在这里漏掉了什么。


1
尝试重新启动Apache,否则这些更改将不会生效! - fire
谁说他在使用Apache :) - Damien Overeem
@fire 我正在使用 Apache 并且已经重新启动了很多次,但是没有任何效果。 - Edwin Alex
4个回答

7

您还可以向您的PHP代码添加自定义错误报告并进行测试:

<?php
    error_reporting( E_ALL );
    ini_set( "display_errors", 1 );
    require_once( "sample.php" );
?>

如果你遇到致命错误,那么可能是php.ini配置有问题(也许你有多个php.ini文件?)。如果仍然没有任何反应,那么可能是php找不到文件(也许你设置了一些重定向?也许安装了一些奇怪的扩展?)

这是一个很好的解决方案,特别是如果您无法访问php.ini。 - user3143218

2

我找到了问题所在。实际上,PHP已经安装了XDebug扩展。所以问题出在这个扩展上。因为之前这个系统是被别人使用的,我并不知道这一点。我卸载了它,然后重新安装了一个新的支持版本。现在它可以正常工作了。感谢大家的帮助,对于给你们带来的不便我深感抱歉。


2
请在您的php.ini文件中查找以下单词:

display_errors
error_reporting

display_errors的默认值从Off更改为On
error_reporting的默认值从XXXX更改为E_ERROR | E_PARSE

重新启动Apache服务器。
请注意,它将始终显示错误。


0

我知道这是一个老旧的帖子,但如果有人在安装php8时遇到相同的问题,请使用以下方法。

    <?php

      phpinfo() 

    ?>` 

你可以在 phpinfo() 页面 找到 php.ini 的位置,当我安装 php8 时,在 /etc/php/ 目录下有三个文件夹,分别是 7.2、8.0 和 8.1。我使用的是 ubuntu 18.04。运行以下命令查找 php.ini 的位置 php -i | grep "php.ini"。尝试编辑显示的位置中的 php.ini,如果不起作用,请按照 phpinfo() 页面的说明查找 php.ini 的位置。

如果您已添加以下脚本

       <?php

       error_reporting( E_ALL );
       ini_set( "display_errors", 1 );      
       require_once("sample.php");
      
       ?>

如果您能看到错误,那么意味着某些内容正在覆盖php.ini文件。在这种情况下,php.ini文件的位置很可能不同。您可能编辑了错误的php.ini文件。我必须编辑位于/etc/php/8.0/apache2位置的php.ini文件。在php.ini文件中将display_errors指令更改为on


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接